// 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#defineXOSC_CTRL_OFFSET_u(0x00000000)#defineXOSC_CTRL_BITS_u(0x00ffffff)#defineXOSC_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#defineXOSC_CTRL_ENABLE_RESET"-"#defineXOSC_CTRL_ENABLE_BITS_u(0x00fff000)#defineXOSC_CTRL_ENABLE_MSB_u(23)#defineXOSC_CTRL_ENABLE_LSB_u(12)#defineXOSC_CTRL_ENABLE_ACCESS"RW"#defineXOSC_CTRL_ENABLE_VALUE_DISABLE_u(0xd1e)#defineXOSC_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#defineXOSC_CTRL_FREQ_RANGE_RESET"-"#defineXOSC_CTRL_FREQ_RANGE_BITS_u(0x00000fff)#defineXOSC_CTRL_FREQ_RANGE_MSB_u(11)#defineXOSC_CTRL_FREQ_RANGE_LSB_u(0)#defineXOSC_CTRL_FREQ_RANGE_ACCESS"RW"#defineXOSC_CTRL_FREQ_RANGE_VALUE_1_15MHZ_u(0xaa0)#defineXOSC_CTRL_FREQ_RANGE_VALUE_10_30MHZ_u(0xaa1)#defineXOSC_CTRL_FREQ_RANGE_VALUE_25_60MHZ_u(0xaa2)#defineXOSC_CTRL_FREQ_RANGE_VALUE_40_100MHZ_u(0xaa3)// =============================================================================// Register : XOSC_STATUS// Description : Crystal Oscillator Status#defineXOSC_STATUS_OFFSET_u(0x00000004)#defineXOSC_STATUS_BITS_u(0x81001003)#defineXOSC_STATUS_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : XOSC_STATUS_STABLE// Description : Oscillator is running and stable#defineXOSC_STATUS_STABLE_RESET_u(0x0)#defineXOSC_STATUS_STABLE_BITS_u(0x80000000)#defineXOSC_STATUS_STABLE_MSB_u(31)#defineXOSC_STATUS_STABLE_LSB_u(31)#defineXOSC_STATUS_STABLE_ACCESS"RO"// -----------------------------------------------------------------------------// Field : XOSC_STATUS_BADWRITE// Description : An invalid value has been written to CTRL_ENABLE or// CTRL_FREQ_RANGE or DORMANT#defineXOSC_STATUS_BADWRITE_RESET_u(0x0)#defineXOSC_STATUS_BADWRITE_BITS_u(0x01000000)#defineXOSC_STATUS_BADWRITE_MSB_u(24)#defineXOSC_STATUS_BADWRITE_LSB_u(24)#defineXOSC_STATUS_BADWRITE_ACCESS"WC"// -----------------------------------------------------------------------------// Field : XOSC_STATUS_ENABLED// Description : Oscillator is enabled but not necessarily running and stable,// resets to 0#defineXOSC_STATUS_ENABLED_RESET"-"#defineXOSC_STATUS_ENABLED_BITS_u(0x00001000)#defineXOSC_STATUS_ENABLED_MSB_u(12)#defineXOSC_STATUS_ENABLED_LSB_u(12)#defineXOSC_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#defineXOSC_STATUS_FREQ_RANGE_RESET"-"#defineXOSC_STATUS_FREQ_RANGE_BITS_u(0x00000003)#defineXOSC_STATUS_FREQ_RANGE_MSB_u(1)#defineXOSC_STATUS_FREQ_RANGE_LSB_u(0)#defineXOSC_STATUS_FREQ_RANGE_ACCESS"RO"#defineXOSC_STATUS_FREQ_RANGE_VALUE_1_15MHZ_u(0x0)#defineXOSC_STATUS_FREQ_RANGE_VALUE_10_30MHZ_u(0x1)#defineXOSC_STATUS_FREQ_RANGE_VALUE_25_60MHZ_u(0x2)#defineXOSC_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#defineXOSC_DORMANT_OFFSET_u(0x00000008)#defineXOSC_DORMANT_BITS_u(0xffffffff)#defineXOSC_DORMANT_RESET"-"#defineXOSC_DORMANT_MSB_u(31)#defineXOSC_DORMANT_LSB_u(0)#defineXOSC_DORMANT_ACCESS"RW"#defineXOSC_DORMANT_VALUE_DORMANT_u(0x636f6d61)#defineXOSC_DORMANT_VALUE_WAKE_u(0x77616b65)// =============================================================================// Register : XOSC_STARTUP// Description : Controls the startup delay#defineXOSC_STARTUP_OFFSET_u(0x0000000c)#defineXOSC_STARTUP_BITS_u(0x00103fff)#defineXOSC_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.#defineXOSC_STARTUP_X4_RESET"-"#defineXOSC_STARTUP_X4_BITS_u(0x00100000)#defineXOSC_STARTUP_X4_MSB_u(20)#defineXOSC_STARTUP_X4_LSB_u(20)#defineXOSC_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.#defineXOSC_STARTUP_DELAY_RESET"-"#defineXOSC_STARTUP_DELAY_BITS_u(0x00003fff)#defineXOSC_STARTUP_DELAY_MSB_u(13)#defineXOSC_STARTUP_DELAY_LSB_u(0)#defineXOSC_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.#defineXOSC_COUNT_OFFSET_u(0x00000010)#defineXOSC_COUNT_BITS_u(0x0000ffff)#defineXOSC_COUNT_RESET_u(0x00000000)#defineXOSC_COUNT_MSB_u(15)#defineXOSC_COUNT_LSB_u(0)#defineXOSC_COUNT_ACCESS"RW"74 defines// =============================================================================/* ... */#endif// _HARDWARE_REGS_XOSC_H
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.