// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT/** * Copyright (c) 2024 Raspberry Pi Ltd. * * SPDX-License-Identifier: BSD-3-Clause *//* ... */// =============================================================================// Register block : ADC// Version : 2// Bus type : apb// Description : Control and data interface to SAR ADC// =============================================================================#ifndef_HARDWARE_REGS_ADC_H#define_HARDWARE_REGS_ADC_H// =============================================================================// Register : ADC_CS// Description : ADC Control and Status#defineADC_CS_OFFSET_u(0x00000000)#defineADC_CS_BITS_u(0x01fff70f)#defineADC_CS_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_CS_RROBIN// Description : Round-robin sampling. 1 bit per channel. Set all bits to 0 to// disable.// Otherwise, the ADC will cycle through each enabled channel in a// round-robin fashion.// The first channel to be sampled will be the one currently// indicated by AINSEL.// AINSEL will be updated after each conversion with the newly-// selected channel.#defineADC_CS_RROBIN_RESET_u(0x000)#defineADC_CS_RROBIN_BITS_u(0x01ff0000)#defineADC_CS_RROBIN_MSB_u(24)#defineADC_CS_RROBIN_LSB_u(16)#defineADC_CS_RROBIN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_CS_AINSEL// Description : Select analog mux input. Updated automatically in round-robin// mode.// This is corrected for the package option so only ADC channels// which are bonded are available, and in the correct order#defineADC_CS_AINSEL_RESET_u(0x0)#defineADC_CS_AINSEL_BITS_u(0x0000f000)#defineADC_CS_AINSEL_MSB_u(15)#defineADC_CS_AINSEL_LSB_u(12)#defineADC_CS_AINSEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_CS_ERR_STICKY// Description : Some past ADC conversion encountered an error. Write 1 to// clear.#defineADC_CS_ERR_STICKY_RESET_u(0x0)#defineADC_CS_ERR_STICKY_BITS_u(0x00000400)#defineADC_CS_ERR_STICKY_MSB_u(10)#defineADC_CS_ERR_STICKY_LSB_u(10)#defineADC_CS_ERR_STICKY_ACCESS"WC"// -----------------------------------------------------------------------------// Field : ADC_CS_ERR// Description : The most recent ADC conversion encountered an error; result is// undefined or noisy.#defineADC_CS_ERR_RESET_u(0x0)#defineADC_CS_ERR_BITS_u(0x00000200)#defineADC_CS_ERR_MSB_u(9)#defineADC_CS_ERR_LSB_u(9)#defineADC_CS_ERR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : ADC_CS_READY// Description : 1 if the ADC is ready to start a new conversion. Implies any// previous conversion has completed.// 0 whilst conversion in progress.#defineADC_CS_READY_RESET_u(0x0)#defineADC_CS_READY_BITS_u(0x00000100)#defineADC_CS_READY_MSB_u(8)#defineADC_CS_READY_LSB_u(8)#defineADC_CS_READY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : ADC_CS_START_MANY// Description : Continuously perform conversions whilst this bit is 1. A new// conversion will start immediately after the previous finishes.#defineADC_CS_START_MANY_RESET_u(0x0)#defineADC_CS_START_MANY_BITS_u(0x00000008)#defineADC_CS_START_MANY_MSB_u(3)#defineADC_CS_START_MANY_LSB_u(3)#defineADC_CS_START_MANY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_CS_START_ONCE// Description : Start a single conversion. Self-clearing. Ignored if start_many// is asserted.#defineADC_CS_START_ONCE_RESET_u(0x0)#defineADC_CS_START_ONCE_BITS_u(0x00000004)#defineADC_CS_START_ONCE_MSB_u(2)#defineADC_CS_START_ONCE_LSB_u(2)#defineADC_CS_START_ONCE_ACCESS"SC"// -----------------------------------------------------------------------------// Field : ADC_CS_TS_EN// Description : Power on temperature sensor. 1 - enabled. 0 - disabled.#defineADC_CS_TS_EN_RESET_u(0x0)#defineADC_CS_TS_EN_BITS_u(0x00000002)#defineADC_CS_TS_EN_MSB_u(1)#defineADC_CS_TS_EN_LSB_u(1)#defineADC_CS_TS_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_CS_EN// Description : Power on ADC and enable its clock.// 1 - enabled. 0 - disabled.#defineADC_CS_EN_RESET_u(0x0)#defineADC_CS_EN_BITS_u(0x00000001)#defineADC_CS_EN_MSB_u(0)#defineADC_CS_EN_LSB_u(0)#defineADC_CS_EN_ACCESS"RW"// =============================================================================// Register : ADC_RESULT// Description : Result of most recent ADC conversion#defineADC_RESULT_OFFSET_u(0x00000004)#defineADC_RESULT_BITS_u(0x00000fff)#defineADC_RESULT_RESET_u(0x00000000)#defineADC_RESULT_MSB_u(11)#defineADC_RESULT_LSB_u(0)#defineADC_RESULT_ACCESS"RO"// =============================================================================// Register : ADC_FCS// Description : FIFO control and status#defineADC_FCS_OFFSET_u(0x00000008)#defineADC_FCS_BITS_u(0x0f0f0f0f)#defineADC_FCS_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_FCS_THRESH// Description : DREQ/IRQ asserted when level >= threshold#defineADC_FCS_THRESH_RESET_u(0x0)#defineADC_FCS_THRESH_BITS_u(0x0f000000)#defineADC_FCS_THRESH_MSB_u(27)#defineADC_FCS_THRESH_LSB_u(24)#defineADC_FCS_THRESH_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_FCS_LEVEL// Description : The number of conversion results currently waiting in the FIFO#defineADC_FCS_LEVEL_RESET_u(0x0)#defineADC_FCS_LEVEL_BITS_u(0x000f0000)#defineADC_FCS_LEVEL_MSB_u(19)#defineADC_FCS_LEVEL_LSB_u(16)#defineADC_FCS_LEVEL_ACCESS"RO"// -----------------------------------------------------------------------------// Field : ADC_FCS_OVER// Description : 1 if the FIFO has been overflowed. Write 1 to clear.#defineADC_FCS_OVER_RESET_u(0x0)#defineADC_FCS_OVER_BITS_u(0x00000800)#defineADC_FCS_OVER_MSB_u(11)#defineADC_FCS_OVER_LSB_u(11)#defineADC_FCS_OVER_ACCESS"WC"// -----------------------------------------------------------------------------// Field : ADC_FCS_UNDER// Description : 1 if the FIFO has been underflowed. Write 1 to clear.#defineADC_FCS_UNDER_RESET_u(0x0)#defineADC_FCS_UNDER_BITS_u(0x00000400)#defineADC_FCS_UNDER_MSB_u(10)#defineADC_FCS_UNDER_LSB_u(10)#defineADC_FCS_UNDER_ACCESS"WC"// -----------------------------------------------------------------------------// Field : ADC_FCS_FULL#defineADC_FCS_FULL_RESET_u(0x0)#defineADC_FCS_FULL_BITS_u(0x00000200)#defineADC_FCS_FULL_MSB_u(9)#defineADC_FCS_FULL_LSB_u(9)#defineADC_FCS_FULL_ACCESS"RO"// -----------------------------------------------------------------------------// Field : ADC_FCS_EMPTY#defineADC_FCS_EMPTY_RESET_u(0x0)#defineADC_FCS_EMPTY_BITS_u(0x00000100)#defineADC_FCS_EMPTY_MSB_u(8)#defineADC_FCS_EMPTY_LSB_u(8)#defineADC_FCS_EMPTY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : ADC_FCS_DREQ_EN// Description : If 1: assert DMA requests when FIFO contains data#defineADC_FCS_DREQ_EN_RESET_u(0x0)#defineADC_FCS_DREQ_EN_BITS_u(0x00000008)#defineADC_FCS_DREQ_EN_MSB_u(3)#defineADC_FCS_DREQ_EN_LSB_u(3)#defineADC_FCS_DREQ_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_FCS_ERR// Description : If 1: conversion error bit appears in the FIFO alongside the// result#defineADC_FCS_ERR_RESET_u(0x0)#defineADC_FCS_ERR_BITS_u(0x00000004)#defineADC_FCS_ERR_MSB_u(2)#defineADC_FCS_ERR_LSB_u(2)#defineADC_FCS_ERR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_FCS_SHIFT// Description : If 1: FIFO results are right-shifted to be one byte in size.// Enables DMA to byte buffers.#defineADC_FCS_SHIFT_RESET_u(0x0)#defineADC_FCS_SHIFT_BITS_u(0x00000002)#defineADC_FCS_SHIFT_MSB_u(1)#defineADC_FCS_SHIFT_LSB_u(1)#defineADC_FCS_SHIFT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_FCS_EN// Description : If 1: write result to the FIFO after each conversion.#defineADC_FCS_EN_RESET_u(0x0)#defineADC_FCS_EN_BITS_u(0x00000001)#defineADC_FCS_EN_MSB_u(0)#defineADC_FCS_EN_LSB_u(0)#defineADC_FCS_EN_ACCESS"RW"// =============================================================================// Register : ADC_FIFO// Description : Conversion result FIFO#defineADC_FIFO_OFFSET_u(0x0000000c)#defineADC_FIFO_BITS_u(0x00008fff)#defineADC_FIFO_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_FIFO_ERR// Description : 1 if this particular sample experienced a conversion error.// Remains in the same location if the sample is shifted.#defineADC_FIFO_ERR_RESET"-"#defineADC_FIFO_ERR_BITS_u(0x00008000)#defineADC_FIFO_ERR_MSB_u(15)#defineADC_FIFO_ERR_LSB_u(15)#defineADC_FIFO_ERR_ACCESS"RF"// -----------------------------------------------------------------------------// Field : ADC_FIFO_VAL#defineADC_FIFO_VAL_RESET"-"#defineADC_FIFO_VAL_BITS_u(0x00000fff)#defineADC_FIFO_VAL_MSB_u(11)#defineADC_FIFO_VAL_LSB_u(0)#defineADC_FIFO_VAL_ACCESS"RF"// =============================================================================// Register : ADC_DIV// Description : Clock divider. If non-zero, CS_START_MANY will start// conversions// at regular intervals rather than back-to-back.// The divider is reset when either of these fields are written.// Total period is 1 + INT + FRAC / 256#defineADC_DIV_OFFSET_u(0x00000010)#defineADC_DIV_BITS_u(0x00ffffff)#defineADC_DIV_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_DIV_INT// Description : Integer part of clock divisor.#defineADC_DIV_INT_RESET_u(0x0000)#defineADC_DIV_INT_BITS_u(0x00ffff00)#defineADC_DIV_INT_MSB_u(23)#defineADC_DIV_INT_LSB_u(8)#defineADC_DIV_INT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : ADC_DIV_FRAC// Description : Fractional part of clock divisor. First-order delta-sigma.#defineADC_DIV_FRAC_RESET_u(0x00)#defineADC_DIV_FRAC_BITS_u(0x000000ff)#defineADC_DIV_FRAC_MSB_u(7)#defineADC_DIV_FRAC_LSB_u(0)#defineADC_DIV_FRAC_ACCESS"RW"// =============================================================================// Register : ADC_INTR// Description : Raw Interrupts#defineADC_INTR_OFFSET_u(0x00000014)#defineADC_INTR_BITS_u(0x00000001)#defineADC_INTR_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_INTR_FIFO// Description : Triggered when the sample FIFO reaches a certain level.// This level can be programmed via the FCS_THRESH field.#defineADC_INTR_FIFO_RESET_u(0x0)#defineADC_INTR_FIFO_BITS_u(0x00000001)#defineADC_INTR_FIFO_MSB_u(0)#defineADC_INTR_FIFO_LSB_u(0)#defineADC_INTR_FIFO_ACCESS"RO"// =============================================================================// Register : ADC_INTE// Description : Interrupt Enable#defineADC_INTE_OFFSET_u(0x00000018)#defineADC_INTE_BITS_u(0x00000001)#defineADC_INTE_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_INTE_FIFO// Description : Triggered when the sample FIFO reaches a certain level.// This level can be programmed via the FCS_THRESH field.#defineADC_INTE_FIFO_RESET_u(0x0)#defineADC_INTE_FIFO_BITS_u(0x00000001)#defineADC_INTE_FIFO_MSB_u(0)#defineADC_INTE_FIFO_LSB_u(0)#defineADC_INTE_FIFO_ACCESS"RW"// =============================================================================// Register : ADC_INTF// Description : Interrupt Force#defineADC_INTF_OFFSET_u(0x0000001c)#defineADC_INTF_BITS_u(0x00000001)#defineADC_INTF_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_INTF_FIFO// Description : Triggered when the sample FIFO reaches a certain level.// This level can be programmed via the FCS_THRESH field.#defineADC_INTF_FIFO_RESET_u(0x0)#defineADC_INTF_FIFO_BITS_u(0x00000001)#defineADC_INTF_FIFO_MSB_u(0)#defineADC_INTF_FIFO_LSB_u(0)#defineADC_INTF_FIFO_ACCESS"RW"// =============================================================================// Register : ADC_INTS// Description : Interrupt status after masking & forcing#defineADC_INTS_OFFSET_u(0x00000020)#defineADC_INTS_BITS_u(0x00000001)#defineADC_INTS_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : ADC_INTS_FIFO// Description : Triggered when the sample FIFO reaches a certain level.// This level can be programmed via the FCS_THRESH field.#defineADC_INTS_FIFO_RESET_u(0x0)#defineADC_INTS_FIFO_BITS_u(0x00000001)#defineADC_INTS_FIFO_MSB_u(0)#defineADC_INTS_FIFO_LSB_u(0)#defineADC_INTS_FIFO_ACCESS"RO"166 defines// =============================================================================/* ... */#endif// _HARDWARE_REGS_ADC_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.