aboutsummaryrefslogtreecommitdiffstats
path: root/lib/pico-sdk/rp2350/hardware/regs/xosc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pico-sdk/rp2350/hardware/regs/xosc.h')
-rw-r--r--lib/pico-sdk/rp2350/hardware/regs/xosc.h175
1 files changed, 175 insertions, 0 deletions
diff --git a/lib/pico-sdk/rp2350/hardware/regs/xosc.h b/lib/pico-sdk/rp2350/hardware/regs/xosc.h
new file mode 100644
index 00000000..782c30ca
--- /dev/null
+++ b/lib/pico-sdk/rp2350/hardware/regs/xosc.h
@@ -0,0 +1,175 @@
+// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT
+
+/**
+ * Copyright (c) 2024 Raspberry Pi Ltd.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+// =============================================================================
+// Register block : XOSC
+// Version : 1
+// Bus type : apb
+// Description : Controls the crystal oscillator
+// =============================================================================
+#ifndef _HARDWARE_REGS_XOSC_H
+#define _HARDWARE_REGS_XOSC_H
+// =============================================================================
+// Register : XOSC_CTRL
+// Description : Crystal Oscillator Control
+#define XOSC_CTRL_OFFSET _u(0x00000000)
+#define XOSC_CTRL_BITS _u(0x00ffffff)
+#define XOSC_CTRL_RESET _u(0x00000000)
+// -----------------------------------------------------------------------------
+// Field : XOSC_CTRL_ENABLE
+// Description : On power-up this field is initialised to DISABLE and the chip
+// runs from the ROSC.
+// If the chip has subsequently been programmed to run from the
+// XOSC then setting this field to DISABLE may lock-up the chip.
+// If this is a concern then run the clk_ref from the ROSC and
+// enable the clk_sys RESUS feature.
+// The 12-bit code is intended to give some protection against
+// accidental writes. An invalid setting will retain the previous
+// value. The actual value being used can be read from
+// STATUS_ENABLED
+// 0xd1e -> DISABLE
+// 0xfab -> ENABLE
+#define XOSC_CTRL_ENABLE_RESET "-"
+#define XOSC_CTRL_ENABLE_BITS _u(0x00fff000)
+#define XOSC_CTRL_ENABLE_MSB _u(23)
+#define XOSC_CTRL_ENABLE_LSB _u(12)
+#define XOSC_CTRL_ENABLE_ACCESS "RW"
+#define XOSC_CTRL_ENABLE_VALUE_DISABLE _u(0xd1e)
+#define XOSC_CTRL_ENABLE_VALUE_ENABLE _u(0xfab)
+// -----------------------------------------------------------------------------
+// Field : XOSC_CTRL_FREQ_RANGE
+// Description : The 12-bit code is intended to give some protection against
+// accidental writes. An invalid setting will retain the previous
+// value. The actual value being used can be read from
+// STATUS_FREQ_RANGE
+// 0xaa0 -> 1_15MHZ
+// 0xaa1 -> 10_30MHZ
+// 0xaa2 -> 25_60MHZ
+// 0xaa3 -> 40_100MHZ
+#define XOSC_CTRL_FREQ_RANGE_RESET "-"
+#define XOSC_CTRL_FREQ_RANGE_BITS _u(0x00000fff)
+#define XOSC_CTRL_FREQ_RANGE_MSB _u(11)
+#define XOSC_CTRL_FREQ_RANGE_LSB _u(0)
+#define XOSC_CTRL_FREQ_RANGE_ACCESS "RW"
+#define XOSC_CTRL_FREQ_RANGE_VALUE_1_15MHZ _u(0xaa0)
+#define XOSC_CTRL_FREQ_RANGE_VALUE_10_30MHZ _u(0xaa1)
+#define XOSC_CTRL_FREQ_RANGE_VALUE_25_60MHZ _u(0xaa2)
+#define XOSC_CTRL_FREQ_RANGE_VALUE_40_100MHZ _u(0xaa3)
+// =============================================================================
+// Register : XOSC_STATUS
+// Description : Crystal Oscillator Status
+#define XOSC_STATUS_OFFSET _u(0x00000004)
+#define XOSC_STATUS_BITS _u(0x81001003)
+#define XOSC_STATUS_RESET _u(0x00000000)
+// -----------------------------------------------------------------------------
+// Field : XOSC_STATUS_STABLE
+// Description : Oscillator is running and stable
+#define XOSC_STATUS_STABLE_RESET _u(0x0)
+#define XOSC_STATUS_STABLE_BITS _u(0x80000000)
+#define XOSC_STATUS_STABLE_MSB _u(31)
+#define XOSC_STATUS_STABLE_LSB _u(31)
+#define XOSC_STATUS_STABLE_ACCESS "RO"
+// -----------------------------------------------------------------------------
+// Field : XOSC_STATUS_BADWRITE
+// Description : An invalid value has been written to CTRL_ENABLE or
+// CTRL_FREQ_RANGE or DORMANT
+#define XOSC_STATUS_BADWRITE_RESET _u(0x0)
+#define XOSC_STATUS_BADWRITE_BITS _u(0x01000000)
+#define XOSC_STATUS_BADWRITE_MSB _u(24)
+#define XOSC_STATUS_BADWRITE_LSB _u(24)
+#define XOSC_STATUS_BADWRITE_ACCESS "WC"
+// -----------------------------------------------------------------------------
+// Field : XOSC_STATUS_ENABLED
+// Description : Oscillator is enabled but not necessarily running and stable,
+// resets to 0
+#define XOSC_STATUS_ENABLED_RESET "-"
+#define XOSC_STATUS_ENABLED_BITS _u(0x00001000)
+#define XOSC_STATUS_ENABLED_MSB _u(12)
+#define XOSC_STATUS_ENABLED_LSB _u(12)
+#define XOSC_STATUS_ENABLED_ACCESS "RO"
+// -----------------------------------------------------------------------------
+// Field : XOSC_STATUS_FREQ_RANGE
+// Description : The current frequency range setting
+// 0x0 -> 1_15MHZ
+// 0x1 -> 10_30MHZ
+// 0x2 -> 25_60MHZ
+// 0x3 -> 40_100MHZ
+#define XOSC_STATUS_FREQ_RANGE_RESET "-"
+#define XOSC_STATUS_FREQ_RANGE_BITS _u(0x00000003)
+#define XOSC_STATUS_FREQ_RANGE_MSB _u(1)
+#define XOSC_STATUS_FREQ_RANGE_LSB _u(0)
+#define XOSC_STATUS_FREQ_RANGE_ACCESS "RO"
+#define XOSC_STATUS_FREQ_RANGE_VALUE_1_15MHZ _u(0x0)
+#define XOSC_STATUS_FREQ_RANGE_VALUE_10_30MHZ _u(0x1)
+#define XOSC_STATUS_FREQ_RANGE_VALUE_25_60MHZ _u(0x2)
+#define XOSC_STATUS_FREQ_RANGE_VALUE_40_100MHZ _u(0x3)
+// =============================================================================
+// Register : XOSC_DORMANT
+// Description : Crystal Oscillator pause control
+// This is used to save power by pausing the XOSC
+// On power-up this field is initialised to WAKE
+// An invalid write will also select WAKE
+// Warning: stop the PLLs before selecting dormant mode
+// Warning: setup the irq before selecting dormant mode
+// 0x636f6d61 -> dormant
+// 0x77616b65 -> WAKE
+#define XOSC_DORMANT_OFFSET _u(0x00000008)
+#define XOSC_DORMANT_BITS _u(0xffffffff)
+#define XOSC_DORMANT_RESET "-"
+#define XOSC_DORMANT_MSB _u(31)
+#define XOSC_DORMANT_LSB _u(0)
+#define XOSC_DORMANT_ACCESS "RW"
+#define XOSC_DORMANT_VALUE_DORMANT _u(0x636f6d61)
+#define XOSC_DORMANT_VALUE_WAKE _u(0x77616b65)
+// =============================================================================
+// Register : XOSC_STARTUP
+// Description : Controls the startup delay
+#define XOSC_STARTUP_OFFSET _u(0x0000000c)
+#define XOSC_STARTUP_BITS _u(0x00103fff)
+#define XOSC_STARTUP_RESET _u(0x00000000)
+// -----------------------------------------------------------------------------
+// Field : XOSC_STARTUP_X4
+// Description : Multiplies the startup_delay by 4, just in case. The reset
+// value is controlled by a mask-programmable tiecell and is
+// provided in case we are booting from XOSC and the default
+// startup delay is insufficient. The reset value is 0x0.
+#define XOSC_STARTUP_X4_RESET "-"
+#define XOSC_STARTUP_X4_BITS _u(0x00100000)
+#define XOSC_STARTUP_X4_MSB _u(20)
+#define XOSC_STARTUP_X4_LSB _u(20)
+#define XOSC_STARTUP_X4_ACCESS "RW"
+// -----------------------------------------------------------------------------
+// Field : XOSC_STARTUP_DELAY
+// Description : in multiples of 256*xtal_period. The reset value of 0xc4
+// corresponds to approx 50 000 cycles.
+#define XOSC_STARTUP_DELAY_RESET "-"
+#define XOSC_STARTUP_DELAY_BITS _u(0x00003fff)
+#define XOSC_STARTUP_DELAY_MSB _u(13)
+#define XOSC_STARTUP_DELAY_LSB _u(0)
+#define XOSC_STARTUP_DELAY_ACCESS "RW"
+// =============================================================================
+// Register : XOSC_COUNT
+// Description : A down counter running at the xosc frequency which counts to
+// zero and stops.
+// Can be used for short software pauses when setting up time
+// sensitive hardware.
+// To start the counter, write a non-zero value. Reads will return
+// 1 while the count is running and 0 when it has finished.
+// Minimum count value is 4. Count values <4 will be treated as
+// count value =4.
+// Note that synchronisation to the register clock domain costs 2
+// register clock cycles and the counter cannot compensate for
+// that.
+#define XOSC_COUNT_OFFSET _u(0x00000010)
+#define XOSC_COUNT_BITS _u(0x0000ffff)
+#define XOSC_COUNT_RESET _u(0x00000000)
+#define XOSC_COUNT_MSB _u(15)
+#define XOSC_COUNT_LSB _u(0)
+#define XOSC_COUNT_ACCESS "RW"
+// =============================================================================
+#endif // _HARDWARE_REGS_XOSC_H
+