diff --git a/README.md b/README.md index 9de4034..48c5153 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ [badge-docs-rs]: https://img.shields.io/docsrs/hpm-metapac?style=for-the-badge [docs-rs]: https://docs.rs/hpm-metapac - The structured MCU DB of HPM MCUs. The home of [hpm-metapac][docs-rs]. ## MCU Family diff --git a/d b/d index 4e75bb8..fcee616 100755 --- a/d +++ b/d @@ -47,7 +47,7 @@ case "$CMD" in ;; gen) rm -rf build/data - cargo run -p hpm-data-gen && cargo run -p hpm-metapac-gen -- "HPM53*" "HPM67*" "HPM64*" + cargo run -p hpm-data-gen && cargo run -p hpm-metapac-gen -- "HPM53*" "HPM67*" "HPM64*" "HPM63*" ;; ci) echo TODO $CMD diff --git a/data/chips/HPM6220.yaml b/data/chips/HPM6220.yaml index 85fadcb..db1cde7 100644 --- a/data/chips/HPM6220.yaml +++ b/data/chips/HPM6220.yaml @@ -43,6 +43,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6280.yaml" + include_dmamux: "../dmamux/HPM6280.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6240.yaml b/data/chips/HPM6240.yaml index b8b6432..fc83e72 100644 --- a/data/chips/HPM6240.yaml +++ b/data/chips/HPM6240.yaml @@ -43,6 +43,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6280.yaml" + include_dmamux: "../dmamux/HPM6280.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6260.yaml b/data/chips/HPM6260.yaml index 45599f1..24bcdef 100644 --- a/data/chips/HPM6260.yaml +++ b/data/chips/HPM6260.yaml @@ -43,6 +43,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6280.yaml" + include_dmamux: "../dmamux/HPM6280.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6264.yaml b/data/chips/HPM6264.yaml index 3648b3d..2ab4a54 100644 --- a/data/chips/HPM6264.yaml +++ b/data/chips/HPM6264.yaml @@ -43,6 +43,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6280.yaml" + include_dmamux: "../dmamux/HPM6280.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6280.yaml b/data/chips/HPM6280.yaml index 6b3f070..93ba18d 100644 --- a/data/chips/HPM6280.yaml +++ b/data/chips/HPM6280.yaml @@ -46,6 +46,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6280.yaml" + include_dmamux: "../dmamux/HPM6280.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6284.yaml b/data/chips/HPM6284.yaml index b48199d..5f1d5aa 100644 --- a/data/chips/HPM6284.yaml +++ b/data/chips/HPM6284.yaml @@ -46,6 +46,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6280.yaml" + include_dmamux: "../dmamux/HPM6280.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6320.yaml b/data/chips/HPM6320.yaml index a43220b..cc071ea 100644 --- a/data/chips/HPM6320.yaml +++ b/data/chips/HPM6320.yaml @@ -9,16 +9,35 @@ packages: package: LQFP144 pins: 144 memory: - - address: 0 + - address: 0x00000000 kind: ram - name: SRAM - size: 800 + name: ILM + size: 128K + - address: 0x00080000 + kind: ram + name: DLM + size: 128K + - address: 0x01080000 + kind: ram + name: AXI_SRAM + size: 524288 # 512K + - address: 0xF0300000 + kind: ram + name: AHB_SRAM + size: 32768 # 32K + - address: 0x80000000 + kind: flash + name: XPI0 + size: 1048576 # 1M cores: - name: RV32-IMAFDCP ip-core: Andes D45 peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6300.yaml" + include_interrupts: "../interrupts/HPM6360.yaml" + include_dmamux: "../dmamux/HPM6360.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6330.yaml b/data/chips/HPM6330.yaml index 79b8da9..120bbe7 100644 --- a/data/chips/HPM6330.yaml +++ b/data/chips/HPM6330.yaml @@ -6,16 +6,35 @@ packages: package: LQFP80 pins: 80 memory: - - address: 0 + - address: 0x00000000 kind: ram - name: SRAM - size: 800 + name: ILM + size: 128K + - address: 0x00080000 + kind: ram + name: DLM + size: 128K + - address: 0x01080000 + kind: ram + name: AXI_SRAM + size: 524288 # 512K + - address: 0xF0300000 + kind: ram + name: AHB_SRAM + size: 32768 # 32K + - address: 0x80000000 + kind: flash + name: XPI0 + size: 1048576 # 1M cores: - name: RV32-IMAFDCP ip-core: Andes D45 peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6300.yaml" + include_interrupts: "../interrupts/HPM6360.yaml" + include_dmamux: "../dmamux/HPM6360.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6340.yaml b/data/chips/HPM6340.yaml index deafb56..4931c6a 100644 --- a/data/chips/HPM6340.yaml +++ b/data/chips/HPM6340.yaml @@ -9,16 +9,35 @@ packages: package: LQFP144 pins: 144 memory: - - address: 0 + - address: 0x00000000 kind: ram - name: SRAM - size: 800 + name: ILM + size: 128K + - address: 0x00080000 + kind: ram + name: DLM + size: 128K + - address: 0x01080000 + kind: ram + name: AXI_SRAM + size: 524288 # 512K + - address: 0xF0300000 + kind: ram + name: AHB_SRAM + size: 32768 # 32K + - address: 0x80000000 + kind: flash + name: XPI0 + size: 1048576 # 1M cores: - name: RV32-IMAFDCP ip-core: Andes D45 peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6300.yaml" + include_interrupts: "../interrupts/HPM6360.yaml" + include_dmamux: "../dmamux/HPM6360.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6350.yaml b/data/chips/HPM6350.yaml index 3642986..59f77af 100644 --- a/data/chips/HPM6350.yaml +++ b/data/chips/HPM6350.yaml @@ -9,16 +9,35 @@ packages: package: LQFP144 pins: 144 memory: - - address: 0 + - address: 0x00000000 kind: ram - name: SRAM - size: 800 + name: ILM + size: 128K + - address: 0x00080000 + kind: ram + name: DLM + size: 128K + - address: 0x01080000 + kind: ram + name: AXI_SRAM + size: 524288 # 512K + - address: 0xF0300000 + kind: ram + name: AHB_SRAM + size: 32768 # 32K + - address: 0x80000000 + kind: flash + name: XPI0 + size: 1048576 # 1M cores: - name: RV32-IMAFDCP ip-core: Andes D45 peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6300.yaml" + include_interrupts: "../interrupts/HPM6360.yaml" + include_dmamux: "../dmamux/HPM6360.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6360.yaml b/data/chips/HPM6360.yaml index b5871cf..2d7760d 100644 --- a/data/chips/HPM6360.yaml +++ b/data/chips/HPM6360.yaml @@ -15,16 +15,35 @@ packages: package: LQFP144 pins: 144 memory: - - address: 0 + - address: 0x00000000 kind: ram - name: SRAM - size: 800 + name: ILM + size: 128K + - address: 0x00080000 + kind: ram + name: DLM + size: 128K + - address: 0x01080000 + kind: ram + name: AXI_SRAM + size: 524288 # 512K + - address: 0xF0300000 + kind: ram + name: AHB_SRAM + size: 32768 # 32K + - address: 0x80000000 + kind: flash + name: XPI0 + size: 1048576 # 1M cores: - name: RV32-IMAFDCP ip-core: Andes D45 peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6300.yaml" + include_interrupts: "../interrupts/HPM6360.yaml" + include_dmamux: "../dmamux/HPM6360.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6364.yaml b/data/chips/HPM6364.yaml index e64e50d..c3cebfa 100644 --- a/data/chips/HPM6364.yaml +++ b/data/chips/HPM6364.yaml @@ -15,16 +15,35 @@ packages: package: LQFP144 pins: 144 memory: - - address: 0 + - address: 0x00000000 kind: ram - name: SRAM - size: 800 + name: ILM + size: 128K + - address: 0x00080000 + kind: ram + name: DLM + size: 128K + - address: 0x01080000 + kind: ram + name: AXI_SRAM + size: 524288 # 512K + - address: 0xF0300000 + kind: ram + name: AHB_SRAM + size: 32768 # 32K + - address: 0x80000000 + kind: flash + name: XPI0 + size: 1048576 # 1M cores: - name: RV32-IMAFDCP ip-core: Andes D45 peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6300.yaml" + include_interrupts: "../interrupts/HPM6360.yaml" + include_dmamux: "../dmamux/HPM6360.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6420.yaml b/data/chips/HPM6420.yaml index 8587cda..eba5842 100644 --- a/data/chips/HPM6420.yaml +++ b/data/chips/HPM6420.yaml @@ -48,6 +48,8 @@ cores: include_peripherals: - "../family/COMMON.yaml" - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6430.yaml b/data/chips/HPM6430.yaml index 60d7564..685c482 100644 --- a/data/chips/HPM6430.yaml +++ b/data/chips/HPM6430.yaml @@ -48,6 +48,8 @@ cores: include_peripherals: - "../family/COMMON.yaml" - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6450.yaml b/data/chips/HPM6450.yaml index aee405c..007e712 100644 --- a/data/chips/HPM6450.yaml +++ b/data/chips/HPM6450.yaml @@ -48,6 +48,8 @@ cores: include_peripherals: - "../family/COMMON.yaml" - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6454.yaml b/data/chips/HPM6454.yaml index 4364509..930da04 100644 --- a/data/chips/HPM6454.yaml +++ b/data/chips/HPM6454.yaml @@ -48,6 +48,8 @@ cores: include_peripherals: - "../family/COMMON.yaml" - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6730.yaml b/data/chips/HPM6730.yaml index 3758120..b417f61 100644 --- a/data/chips/HPM6730.yaml +++ b/data/chips/HPM6730.yaml @@ -48,6 +48,8 @@ cores: include_peripherals: - "../family/COMMON.yaml" - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6750.yaml b/data/chips/HPM6750.yaml index 0be6da9..88bdcb5 100644 --- a/data/chips/HPM6750.yaml +++ b/data/chips/HPM6750.yaml @@ -48,6 +48,8 @@ cores: include_peripherals: - "../family/COMMON.yaml" - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6754.yaml b/data/chips/HPM6754.yaml index 17c63ba..7a121c9 100644 --- a/data/chips/HPM6754.yaml +++ b/data/chips/HPM6754.yaml @@ -47,6 +47,9 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + - "../family/HPM6700_6400.yaml" + include_interrupts: "../interrupts/HPM6750.yaml" + include_dmamux: "../dmamux/HPM6750.yaml" gen_dma_channels: HDMA: 8 XDMA: 8 diff --git a/data/chips/HPM6830.yaml b/data/chips/HPM6830.yaml index c1926fa..c32d2df 100644 --- a/data/chips/HPM6830.yaml +++ b/data/chips/HPM6830.yaml @@ -19,6 +19,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6830.yaml" + include_dmamux: "../dmamux/HPM6880.yaml" _raw: "| HPM6830 | Single-core 32-bit | 1064 | | Gigabit | CAN FD | USB HS w/ PHY\ \ \xD71 | AES128/256, SHA-1/256 | 1\xD716 bit | 17\xD717 417BGA P0.8 | \u221240\ diff --git a/data/chips/HPM6850.yaml b/data/chips/HPM6850.yaml index f595e44..9fa1953 100644 --- a/data/chips/HPM6850.yaml +++ b/data/chips/HPM6850.yaml @@ -19,6 +19,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6850.yaml" + include_dmamux: "../dmamux/HPM6880.yaml" _raw: "| HPM6850 | Single-core 32-bit | 1064 | 4 | Gigabit | CAN FD | USB HS w/ PHY\ \ \xD71 | AES128/256, SHA-1/256 | 1\xD716 bit | 17\xD717 417BGA P0.8 | \u221240\ diff --git a/data/chips/HPM6880.yaml b/data/chips/HPM6880.yaml index c697338..66ff7b3 100644 --- a/data/chips/HPM6880.yaml +++ b/data/chips/HPM6880.yaml @@ -19,6 +19,8 @@ cores: peripherals: [] include_peripherals: - "../family/COMMON.yaml" + include_interrupts: "../interrupts/HPM6880.yaml" + include_dmamux: "../dmamux/HPM6880.yaml" _raw: "| HPM6880 | Single-core 32-bit | 1064 | 4 | Gigabit | CAN FD | USB HS w/ PHY\ \ \xD71 | AES128/256, SHA-1/256 | 1\xD716 bit | 17\xD717 417BGA P0.8 | \u221240\ diff --git a/data/family/HPM6300.yaml b/data/family/HPM6300.yaml new file mode 100644 index 0000000..edef34d --- /dev/null +++ b/data/family/HPM6300.yaml @@ -0,0 +1,405 @@ +- name: SYSCTL + address: 0xF4000000 + registers: + kind: sysctl + version: v63 + block: SYSCTL + +- name: PLLCTL + address: 0xF4100000 + registers: + kind: pllctl + version: v2 + block: PLLCTLV2 + +- name: BCFG + address: 0xF5008000 + registers: + kind: bcfg + version: v62 + block: BCFG + +- name: PCFG + address: 0xF40C4000 + registers: + kind: pcfg + version: v67 + block: PCFG + +- name: MCHTMR + address: 0xE6000000 + registers: + kind: mchtmr + version: common + block: MCHTMR + +# input output and alternate function + +- name: IOC + address: 0xF4040000 + registers: + kind: ioc + version: common + block: IOC +- name: PIOC + address: 0xF40D8000 + registers: + kind: ioc + version: common + block: IOC +- name: BIOC + address: 0xF5010000 + registers: + kind: ioc + version: common + block: IOC + +- name: FGPIO + address: 0x000C0000 + registers: + kind: gpio + version: common + block: GPIO +- name: GPIO0 + address: 0xF0000000 + registers: + kind: gpio + version: common + block: GPIO +- name: PGPIO + address: 0xF40DC000 + registers: + kind: gpio + version: common + block: GPIO +- name: BGPIO + address: 0xF5014000 + registers: + kind: gpio + version: common + block: GPIO + +- name: GPIOM + address: 0xF0008000 + registers: + kind: gpiom + version: v63 + block: GPIOM + +- name: OTPSHW + address: 0xF4080000 + registers: + kind: otp + version: common + block: OTP +- name: OTP + address: 0xF40C8000 + registers: + kind: otp + version: common + block: OTP + +- name: FEMC + address: 0xF3050000 + registers: + kind: femc + version: common + block: FEMC + +- name: SDXC0 + address: 0xF2030000 + registers: + kind: sdxc + version: v63 + block: SDXC + +# FFA, DMA and mail box + +- name: FFA + address: 0xF3058000 + registers: + kind: ffa + version: common + block: FFA + +- name: HDMA + address: 0xF00C4000 + registers: + kind: dma + version: v67 + block: DMA +- name: XDMA + address: 0xF3048000 + registers: + kind: dma + version: v67 + block: DMA + +- name: DMAMUX + address: 0xF00C0000 + registers: + kind: dmamux + version: common + block: DMAMUX + +- name: MBX0A + address: 0xF00A0000 + registers: + kind: mbx + version: common + block: MBX +- name: MBX0B + address: 0xF00A4000 + registers: + kind: mbx + version: common + block: MBX + +# timers + +- name: NTMR0 + address: 0xF2010000 + registers: + kind: tmr + version: common + block: TMR +- name: GPTMR0 + address: 0xF3000000 + registers: + kind: tmr + version: common + block: TMR +- name: GPTMR1 + address: 0xF3004000 + registers: + kind: tmr + version: common + block: TMR +- name: GPTMR2 + address: 0xF3008000 + registers: + kind: tmr + version: common + block: TMR +- name: GPTMR3 + address: 0xF300C000 + registers: + kind: tmr + version: common + block: TMR +- name: PTMR + address: 0xF40E0000 + registers: + kind: tmr + version: common + block: TMR + +- name: WDG0 + address: 0xF0090000 + registers: + kind: wdg + version: v67 + block: WDG +- name: WDG1 + address: 0xF0094000 + registers: + kind: wdg + version: v67 + block: WDG +- name: PWDG + address: 0xF40E8000 + registers: + kind: wdg + version: v67 + block: WDG + +- name: RTC + address: 0xF5044000 + registers: + kind: rtc + version: common + block: RTC + +## communication peripherals + +- name: UART0 + address: 0xF0040000 + registers: + kind: uart + version: v67 + block: UART +- name: UART1 + address: 0xF0044000 + registers: + kind: uart + version: v67 + block: UART +- name: UART2 + address: 0xF0048000 + registers: + kind: uart + version: v67 + block: UART +- name: UART3 + address: 0xF004C000 + registers: + kind: uart + version: v67 + block: UART +- name: UART4 + address: 0xF0050000 + registers: + kind: uart + version: v67 + block: UART +- name: UART5 + address: 0xF0054000 + registers: + kind: uart + version: v67 + block: UART +- name: UART6 + address: 0xF0058000 + registers: + kind: uart + version: v67 + block: UART +- name: UART7 + address: 0xF005C000 + registers: + kind: uart + version: v67 + block: UART + +- name: PUART + address: 0xF40E4000 + registers: + kind: uart + version: v67 + block: UART + +- name: SPI0 + address: 0xF0030000 + registers: + kind: spi + version: v67 + block: SPI +- name: SPI1 + address: 0xF0034000 + registers: + kind: spi + version: v67 + block: SPI +- name: SPI2 + address: 0xF0038000 + registers: + kind: spi + version: v67 + block: SPI +- name: SPI3 + address: 0xF003C000 + registers: + kind: spi + version: v67 + block: SPI + +- name: I2C0 + address: 0xF3020000 + registers: + kind: i2c + version: v67 + block: I2C +- name: I2C1 + address: 0xF3024000 + registers: + kind: i2c + version: v67 + block: I2C +- name: I2C2 + address: 0xF3028000 + registers: + kind: i2c + version: v67 + block: I2C +- name: I2C3 + address: 0xF302C000 + registers: + kind: i2c + version: v67 + block: I2C + +- name: CAN0 + address: 0xF0080000 + registers: + kind: can + version: v67 + block: CAN +- name: CAN1 + address: 0xF0084000 + registers: + kind: can + version: v67 + block: CAN + +- name: PTPC + address: 0xF00B0000 + registers: + kind: ptpc + version: common + block: PTPC + +- name: ENET0 + address: 0xF2000000 + registers: + kind: enet + version: v63 + block: ENET + +- name: USB0 + address: 0xF2020000 + registers: + kind: usb + version: v67 + block: USB + +# Analog peripherals + +- name: ADC0 + address: 0xF0010000 + registers: + kind: adc16 + version: v63 + block: ADC +- name: ADC1 + address: 0xF0014000 + registers: + kind: adc16 + version: v63 + block: ADC +- name: ADC2 + address: 0xF0018000 + registers: + kind: adc16 + version: v63 + block: ADC + +- name: ACMP + address: 0xF0020000 + registers: + kind: acmp + version: common + block: ACMP + +- name: DAC + address: 0xF0024000 + registers: + kind: dac + version: v63 + block: DAC + +- name: TSNS + address: 0xF4104000 + registers: + kind: tsns + version: common + block: TSNS diff --git a/data/family/HPM6700_6400.yaml b/data/family/HPM6700_6400.yaml index 543da6a..f2eff30 100644 --- a/data/family/HPM6700_6400.yaml +++ b/data/family/HPM6700_6400.yaml @@ -95,9 +95,9 @@ - name: OTPSHW address: 0xF4080000 registers: - kind: otpshw + kind: otp version: common - block: OTPSHW + block: OTP - name: OTP address: 0xF40C8000 registers: @@ -272,6 +272,19 @@ version: v67 block: WDG +- name: RTCSHW + address: 0xF501C000 + registers: + kind: rtc + version: common + block: RTC +- name: RTC + address: 0xF5044000 + registers: + kind: rtc + version: common + block: RTC + ## communication peripherals - name: UART0 diff --git a/data/interrupts/HPM6360.yaml b/data/interrupts/HPM6360.yaml new file mode 100644 index 0000000..882192b --- /dev/null +++ b/data/interrupts/HPM6360.yaml @@ -0,0 +1,78 @@ +GPIO0_A: 1 # GPIO0_A IRQ +GPIO0_B: 2 # GPIO0_B IRQ +GPIO0_C: 3 # GPIO0_C IRQ +GPIO0_D: 4 # GPIO0_D IRQ +GPIO0_X: 5 # GPIO0_X IRQ +GPIO0_Y: 6 # GPIO0_Y IRQ +GPIO0_Z: 7 # GPIO0_Z IRQ +ADC0: 8 # ADC0 IRQ +ADC1: 9 # ADC1 IRQ +ADC2: 10 # ADC2 IRQ +DAC: 11 # DAC IRQ +ACMP_0: 12 # ACMP[0] IRQ +ACMP_1: 13 # ACMP[1] IRQ +SPI0: 14 # SPI0 IRQ +SPI1: 15 # SPI1 IRQ +SPI2: 16 # SPI2 IRQ +SPI3: 17 # SPI3 IRQ +UART0: 18 # UART0 IRQ +UART1: 19 # UART1 IRQ +UART2: 20 # UART2 IRQ +UART3: 21 # UART3 IRQ +UART4: 22 # UART4 IRQ +UART5: 23 # UART5 IRQ +UART6: 24 # UART6 IRQ +UART7: 25 # UART7 IRQ +CAN0: 26 # CAN0 IRQ +CAN1: 27 # CAN1 IRQ +PTPC: 28 # PTPC IRQ +WDG0: 29 # WDG0 IRQ +WDG1: 30 # WDG1 IRQ +TSNS: 31 # TSNS IRQ +MBX0A: 32 # MBX0A IRQ +MBX0B: 33 # MBX0B IRQ +GPTMR0: 34 # GPTMR0 IRQ +GPTMR1: 35 # GPTMR1 IRQ +GPTMR2: 36 # GPTMR2 IRQ +GPTMR3: 37 # GPTMR3 IRQ +I2C0: 38 # I2C0 IRQ +I2C1: 39 # I2C1 IRQ +I2C2: 40 # I2C2 IRQ +I2C3: 41 # I2C3 IRQ +PWM0: 42 # PWM0 IRQ +HALL0: 43 # HALL0 IRQ +QEI0: 44 # QEI0 IRQ +PWM1: 45 # PWM1 IRQ +HALL1: 46 # HALL1 IRQ +QEI1: 47 # QEI1 IRQ +SDP: 48 # SDP IRQ +XPI0: 49 # XPI0 IRQ +XPI1: 50 # XPI1 IRQ +XDMA: 51 # XDMA IRQ +HDMA: 52 # HDMA IRQ +FEMC: 53 # FEMC IRQ +RNG: 54 # RNG IRQ +I2S0: 55 # I2S0 IRQ +I2S1: 56 # I2S1 IRQ +DAO: 57 # DAO IRQ +PDM: 58 # PDM IRQ +FFA: 59 # FFA IRQ +NTMR0: 60 # NTMR0 IRQ +USB0: 61 # USB0 IRQ +ENET0: 62 # ENET0 IRQ +SDXC0: 63 # SDXC0 IRQ +PSEC: 64 # PSEC IRQ +PGPIO: 65 # PGPIO IRQ +PWDG: 66 # PWDG IRQ +PTMR: 67 # PTMR IRQ +PUART: 68 # PUART IRQ +FUSE: 69 # FUSE IRQ +SECMON: 70 # SECMON IRQ +RTC: 71 # RTC IRQ +BUTN: 72 # BUTN IRQ +BGPIO: 73 # BGPIO IRQ +BVIO: 74 # BVIO IRQ +BROWNOUT: 75 # BROWNOUT IRQ +SYSCTL: 76 # SYSCTL IRQ +DEBUG_0: 77 # DEBUG[0] IRQ +DEBUG_1: 78 # DEBUG[1] IRQ diff --git a/data/interrupts/HPM6830.yaml b/data/interrupts/HPM6830.yaml new file mode 100644 index 0000000..f3f33e2 --- /dev/null +++ b/data/interrupts/HPM6830.yaml @@ -0,0 +1,92 @@ +GPIO0_A : 1 +GPIO0_B : 2 +GPIO0_C : 3 +GPIO0_D : 4 +GPIO0_E : 5 +GPIO0_F : 6 +GPIO0_X : 7 +GPIO0_Y : 8 +GPIO0_Z : 9 +MCAN0 : 10 +MCAN1 : 11 +MCAN2 : 12 +MCAN3 : 13 +MCAN4 : 14 +MCAN5 : 15 +MCAN6 : 16 +MCAN7 : 17 +PTPC : 18 +UART0 : 27 +UART1 : 28 +UART2 : 29 +UART3 : 30 +UART4 : 31 +UART5 : 32 +UART6 : 33 +UART7 : 34 +I2C0 : 35 +I2C1 : 36 +I2C2 : 37 +I2C3 : 38 +SPI0 : 39 +SPI1 : 40 +SPI2 : 41 +SPI3 : 42 +GPTMR0 : 43 +GPTMR1 : 44 +GPTMR2 : 45 +GPTMR3 : 46 +GPTMR4 : 47 +GPTMR5 : 48 +GPTMR6 : 49 +GPTMR7 : 50 +EWDG0 : 51 +EWDG1 : 52 +MBX0A : 53 +MBX0B : 54 +MBX1A : 55 +MBX1B : 56 +RNG : 57 +HDMA : 58 +ADC0 : 59 +ADC1 : 60 +SDM : 61 +OPAMP : 62 +I2S0 : 63 +I2S1 : 64 +I2S2 : 65 +I2S3 : 66 +DAO : 67 +PDM : 68 +SMIX_DMA : 69 +SMIX_ASRC : 70 +GWCK0_FUNC : 77 +GWCK0_ERR : 78 +GWCK1_FUNC : 79 +GWCK1_ERR : 80 +ENET0 : 92 +NTMR0 : 93 +USB0 : 94 +SDXC0 : 95 +SDXC1 : 96 +SDP : 97 +XPI0 : 98 +XDMA : 99 +DDR : 100 +FFA : 101 +PSEC : 102 +TSNS : 103 +VAD : 104 +PGPIO : 105 +PWDG : 106 +PTMR : 107 +PUART : 108 +FUSE : 109 +SECMON : 110 +RTC : 111 +BGPIO : 112 +BVIO : 113 +BROWNOUT : 114 +SYSCTL : 115 +DEBUG0 : 116 +DEBUG1 : 117 diff --git a/data/interrupts/HPM6850.yaml b/data/interrupts/HPM6850.yaml new file mode 100644 index 0000000..4f20f87 --- /dev/null +++ b/data/interrupts/HPM6850.yaml @@ -0,0 +1,108 @@ +GPIO0_A: 1 +GPIO0_B: 2 +GPIO0_C: 3 +GPIO0_D: 4 +GPIO0_E: 5 +GPIO0_F: 6 +GPIO0_X: 7 +GPIO0_Y: 8 +GPIO0_Z: 9 +MCAN0: 10 +MCAN1: 11 +MCAN2: 12 +MCAN3: 13 +MCAN4: 14 +MCAN5: 15 +MCAN6: 16 +MCAN7: 17 +PTPC: 18 +UART0: 27 +UART1: 28 +UART2: 29 +UART3: 30 +UART4: 31 +UART5: 32 +UART6: 33 +UART7: 34 +I2C0: 35 +I2C1: 36 +I2C2: 37 +I2C3: 38 +SPI0: 39 +SPI1: 40 +SPI2: 41 +SPI3: 42 +GPTMR0: 43 +GPTMR1: 44 +GPTMR2: 45 +GPTMR3: 46 +GPTMR4: 47 +GPTMR5: 48 +GPTMR6: 49 +GPTMR7: 50 +EWDG0: 51 +EWDG1: 52 +MBX0A: 53 +MBX0B: 54 +MBX1A: 55 +MBX1B: 56 +RNG: 57 +HDMA: 58 +ADC0: 59 +ADC1: 60 +SDM: 61 +OPAMP: 62 +I2S0: 63 +I2S1: 64 +I2S2: 65 +I2S3: 66 +DAO: 67 +PDM: 68 +SMIX_DMA: 69 +SMIX_ASRC: 70 +CAM0: 71 +CAM1: 72 +LCDC: 73 +LCDC1: 74 +PDMA: 75 +JPEG: 76 +GWCK0_FUNC: 77 +GWCK0_ERR: 78 +GWCK1_FUNC: 79 +GWCK1_ERR: 80 +MIPI_DSI0: 81 +MIPI_DSI1: 82 +MIPI_CSI0: 83 +MIPI_CSI0_AP: 84 +MIPI_CSI0_DIAG: 85 +MIPI_CSI1_AP: 86 +MIPI_CSI1_DIAG: 87 +MIPI_CSI1: 88 +LCB0: 89 +LCB1: 90 +ENET0: 92 +NTMR0: 93 +USB0: 94 +SDXC0: 95 +SDXC1: 96 +SDP: 97 +XPI0: 98 +XDMA: 99 +DDR: 100 +FFA: 101 +PSEC: 102 +TSNS: 103 +VAD: 104 +PGPIO: 105 +PWDG: 106 +PTMR: 107 +PUART: 108 +FUSE: 109 +SECMON: 110 +RTC: 111 +BGPIO: 112 +BVIO: 113 +BROWNOUT: 114 +SYSCTL: 115 +DEBUG0: 116 +DEBUG1: 117 diff --git a/data/interrupts/HPM6880.yaml b/data/interrupts/HPM6880.yaml new file mode 100644 index 0000000..b32eb28 --- /dev/null +++ b/data/interrupts/HPM6880.yaml @@ -0,0 +1,109 @@ +GPIO0_A: 1 # GPIO0_A IRQ +GPIO0_B: 2 # GPIO0_B IRQ +GPIO0_C: 3 # GPIO0_C IRQ +GPIO0_D: 4 # GPIO0_D IRQ +GPIO0_E: 5 # GPIO0_E IRQ +GPIO0_F: 6 # GPIO0_F IRQ +GPIO0_X: 7 # GPIO0_X IRQ +GPIO0_Y: 8 # GPIO0_Y IRQ +GPIO0_Z: 9 # GPIO0_Z IRQ +MCAN0: 10 # MCAN0 IRQ +MCAN1: 11 # MCAN1 IRQ +MCAN2: 12 # MCAN2 IRQ +MCAN3: 13 # MCAN3 IRQ +MCAN4: 14 # MCAN4 IRQ +MCAN5: 15 # MCAN5 IRQ +MCAN6: 16 # MCAN6 IRQ +MCAN7: 17 # MCAN7 IRQ +PTPC: 18 # PTPC IRQ +UART0: 27 # UART0 IRQ +UART1: 28 # UART1 IRQ +UART2: 29 # UART2 IRQ +UART3: 30 # UART3 IRQ +UART4: 31 # UART4 IRQ +UART5: 32 # UART5 IRQ +UART6: 33 # UART6 IRQ +UART7: 34 # UART7 IRQ +I2C0: 35 # I2C0 IRQ +I2C1: 36 # I2C1 IRQ +I2C2: 37 # I2C2 IRQ +I2C3: 38 # I2C3 IRQ +SPI0: 39 # SPI0 IRQ +SPI1: 40 # SPI1 IRQ +SPI2: 41 # SPI2 IRQ +SPI3: 42 # SPI3 IRQ +GPTMR0: 43 # GPTMR0 IRQ +GPTMR1: 44 # GPTMR1 IRQ +GPTMR2: 45 # GPTMR2 IRQ +GPTMR3: 46 # GPTMR3 IRQ +GPTMR4: 47 # GPTMR4 IRQ +GPTMR5: 48 # GPTMR5 IRQ +GPTMR6: 49 # GPTMR6 IRQ +GPTMR7: 50 # GPTMR7 IRQ +EWDG0: 51 # EWDG0 IRQ +EWDG1: 52 # EWDG1 IRQ +MBX0A: 53 # MBX0A IRQ +MBX0B: 54 # MBX0B IRQ +MBX1A: 55 # MBX1A IRQ +MBX1B: 56 # MBX1B IRQ +RNG: 57 # RNG IRQ +HDMA: 58 # HDMA IRQ +ADC0: 59 # ADC0 IRQ +ADC1: 60 # ADC1 IRQ +SDM: 61 # SDM IRQ +OPAMP: 62 # OPAMP IRQ +I2S0: 63 # I2S0 IRQ +I2S1: 64 # I2S1 IRQ +I2S2: 65 # I2S2 IRQ +I2S3: 66 # I2S3 IRQ +DAO: 67 # DAO IRQ +PDM: 68 # PDM IRQ +SMIX_DMA: 69 # SMIX_DMA IRQ +SMIX_ASRC: 70 # SMIX_ASRC IRQ +CAM0: 71 # CAM0 IRQ +CAM1: 72 # CAM1 IRQ +LCDC: 73 # LCDC IRQ +LCDC1: 74 # LCDC1 IRQ +PDMA: 75 # PDMA IRQ +JPEG: 76 # JPEG IRQ +GWCK0_FUNC: 77 # GWCK0_FUNC IRQ +GWCK0_ERR: 78 # GWCK0_ERR IRQ +GWCK1_FUNC: 79 # GWCK1_FUNC IRQ +GWCK1_ERR: 80 # GWCK1_ERR IRQ +MIPI_DSI0: 81 # MIPI_DSI0 IRQ +MIPI_DSI1: 82 # MIPI_DSI1 IRQ +MIPI_CSI0: 83 # MIPI_CSI0 IRQ +MIPI_CSI0_AP: 84 # MIPI_CSI0_AP IRQ +MIPI_CSI0_DIAG: 85 # MIPI_CSI0_DIAG IRQ +MIPI_CSI1_AP: 86 # MIPI_CSI1_AP IRQ +MIPI_CSI1_DIAG: 87 # MIPI_CSI1_DIAG IRQ +MIPI_CSI1: 88 # MIPI_CSI1 IRQ +LCB0: 89 # LCB0 IRQ +LCB1: 90 # LCB1 IRQ +GPU: 91 # GPU IRQ +ENET0: 92 # ENET0 IRQ +NTMR0: 93 # NTMR0 IRQ +USB0: 94 # USB0 IRQ +SDXC0: 95 # SDXC0 IRQ +SDXC1: 96 # SDXC1 IRQ +SDP: 97 # SDP IRQ +XPI0: 98 # XPI0 IRQ +XDMA: 99 # XDMA IRQ +DDR: 100 # DDR IRQ +FFA: 101 # FFA IRQ +PSEC: 102 # PSEC IRQ +TSNS: 103 # TSNS IRQ +VAD: 104 # VAD IRQ +PGPIO: 105 # PGPIO IRQ +PWDG: 106 # PWDG IRQ +PTMR: 107 # PTMR IRQ +PUART: 108 # PUART IRQ +FUSE: 109 # FUSE IRQ +SECMON: 110 # SECMON IRQ +RTC: 111 # RTC IRQ +BGPIO: 112 # BGPIO IRQ +BVIO: 113 # BVIO IRQ +BROWNOUT: 114 # BROWNOUT IRQ +SYSCTL: 115 # SYSCTL IRQ +DEBUG0: 116 # DEBUG0 IRQ +DEBUG1: 117 # DEBUG1 IRQ diff --git a/data/registers/ffa_common.yaml b/data/registers/ffa_common.yaml new file mode 100644 index 0000000..6af4980 --- /dev/null +++ b/data/registers/ffa_common.yaml @@ -0,0 +1,342 @@ +block/FFA: + description: FFA. + items: + - name: CTRL + description: No description available. + byte_offset: 0 + fieldset: CTRL + - name: STATUS + description: No description available. + byte_offset: 4 + fieldset: STATUS + - name: INT_EN + description: No description available. + byte_offset: 8 + fieldset: INT_EN + - name: OP_CTRL + description: No description available. + byte_offset: 32 + fieldset: OP_CTRL + - name: OP_CMD + description: No description available. + byte_offset: 36 + fieldset: OP_CMD + - name: OP_FFT_MISC + description: No description available. + byte_offset: 40 + fieldset: OP_FFT_MISC + - name: OP_FIR_MISC + description: No description available. + byte_offset: 40 + fieldset: OP_FIR_MISC + - name: OP_REG0 + description: No description available. + byte_offset: 40 + fieldset: OP_REG0 + - name: OP_FIR_MISC1 + description: No description available. + byte_offset: 44 + fieldset: OP_FIR_MISC1 + - name: OP_REG1 + description: No description available. + byte_offset: 44 + fieldset: OP_REG1 + - name: OP_FFT_INRBUF + description: No description available. + byte_offset: 48 + fieldset: OP_FFT_INRBUF + - name: OP_REG2 + description: No description available. + byte_offset: 48 + fieldset: OP_REG2 + - name: OP_FIR_INBUF + description: No description available. + byte_offset: 52 + fieldset: OP_FIR_INBUF + - name: OP_REG3 + description: No description available. + byte_offset: 52 + fieldset: OP_REG3 + - name: OP_FFT_OUTRBUF + description: No description available. + byte_offset: 56 + fieldset: OP_FFT_OUTRBUF + - name: OP_FIR_COEFBUF + description: No description available. + byte_offset: 56 + fieldset: OP_FIR_COEFBUF + - name: OP_REG4 + description: No description available. + byte_offset: 56 + fieldset: OP_REG4 + - name: OP_FIR_OUTBUF + description: No description available. + byte_offset: 60 + fieldset: OP_FIR_OUTBUF + - name: OP_REG5 + description: No description available. + byte_offset: 60 + fieldset: OP_REG5 + - name: OP_REG6 + description: No description available. + byte_offset: 64 + fieldset: OP_REG6 + - name: OP_REG7 + description: No description available. + byte_offset: 68 + fieldset: OP_REG7 +fieldset/CTRL: + description: No description available. + fields: + - name: EN + description: Asserted to enable the module. + bit_offset: 0 + bit_size: 1 + - name: SFTRST + description: software reset the module if asserted to be 1. EN is only active after this bit is zero. + bit_offset: 31 + bit_size: 1 +fieldset/INT_EN: + description: No description available. + fields: + - name: OP_CMD_DONE + description: Indicate that operation cmd is done, and data are available in system memory. + bit_offset: 0 + bit_size: 1 + - name: NXT_CMD_RD_DONE + description: Indicate that next command sequence is already read into the module. + bit_offset: 1 + bit_size: 1 + - name: RD_ERR + description: Enable Data Read Error interrupt. + bit_offset: 3 + bit_size: 1 + - name: RD_NXT_ERR + description: Enable Read Bus Error for NXT DATA interrupt. + bit_offset: 4 + bit_size: 1 + - name: WR_ERR + description: Enable Data Write Error interrupt. + bit_offset: 5 + bit_size: 1 + - name: FFT_OV + description: FFT Overflow Err. + bit_offset: 6 + bit_size: 1 + - name: FIR_OV + description: FIR Overflow err. + bit_offset: 7 + bit_size: 1 + - name: WRSV1 + description: Reserved. + bit_offset: 8 + bit_size: 24 +fieldset/OP_CMD: + description: No description available. + fields: + - name: NXT_CMD_LEN + description: The length of nxt commands in 32-bit words. + bit_offset: 0 + bit_size: 8 + - name: IND_TYPE + description: "Input data type: 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15 4:complex sp float 5: real sp float." + bit_offset: 9 + bit_size: 3 + - name: COEF_TYPE + description: "Coef data type (used for FIR): 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15 4:complex sp float 5: real sp float." + bit_offset: 12 + bit_size: 3 + - name: OUTD_TYPE + description: "Output data type: 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15 4:complex sp float 5: real sp float." + bit_offset: 15 + bit_size: 3 + - name: CMD + description: "The Command Used: 0: FIR 2: FFT Others: Reserved." + bit_offset: 18 + bit_size: 6 + - name: CONJ_C + description: asserted to have conjuate value for coefs in computation. + bit_offset: 24 + bit_size: 1 +fieldset/OP_CTRL: + description: No description available. + fields: + - name: EN + description: Whether CUR_CMD is enabled. Asserted to enable the CUR_CMD. + bit_offset: 0 + bit_size: 1 + - name: NXT_EN + description: Whether NXT_CMD is enabled. Asserted to enable the NXT_CMD when CUR_CMD is done, or CUR_CMD is not enabled.. + bit_offset: 1 + bit_size: 1 + - name: NXT_ADDR + description: The address for the next command. It will be processed after CUR_CMD is executed and done.. + bit_offset: 2 + bit_size: 30 +fieldset/OP_FFT_INRBUF: + description: No description available. + fields: + - name: LOC + description: The input (real) data buffer pointer. + bit_offset: 0 + bit_size: 32 +fieldset/OP_FFT_MISC: + description: No description available. + fields: + - name: IND_BLK + description: Memory block for indata. Should be assigned as 0. + bit_offset: 0 + bit_size: 2 + - name: TMP_BLK + description: Memory block for indata. Should be assigned as 1. + bit_offset: 2 + bit_size: 2 + - name: IFFT + description: Asserted to indicate IFFT. + bit_offset: 6 + bit_size: 1 + - name: FFT_LEN + description: FFT length 0:8, ..., n:2^(3+n). + bit_offset: 7 + bit_size: 4 +fieldset/OP_FFT_OUTRBUF: + description: No description available. + fields: + - name: LOC + description: The output (real) data buffer pointer. + bit_offset: 0 + bit_size: 32 +fieldset/OP_FIR_COEFBUF: + description: No description available. + fields: + - name: LOC + description: The coef buf pointer. + bit_offset: 0 + bit_size: 32 +fieldset/OP_FIR_INBUF: + description: No description available. + fields: + - name: LOC + description: The input data buffer pointer. + bit_offset: 0 + bit_size: 32 +fieldset/OP_FIR_MISC: + description: No description available. + fields: + - name: FIR_COEF_TAPS + description: Length of FIR coefs (max 256). + bit_offset: 0 + bit_size: 14 +fieldset/OP_FIR_MISC1: + description: No description available. + fields: + - name: FIR_DATA_TAPS + description: The input data data length. + bit_offset: 0 + bit_size: 16 + - name: IND_MEM_BLK + description: Should be assigned as 2. + bit_offset: 16 + bit_size: 2 + - name: COEF_MEM_BLK + description: Should be assigned as 1. + bit_offset: 18 + bit_size: 2 + - name: OUTD_MEM_BLK + description: Should be assigned as 0. + bit_offset: 20 + bit_size: 2 +fieldset/OP_FIR_OUTBUF: + description: No description available. + fields: + - name: LOC + description: The output data buffer pointer. The length of the output buffer should be (FIR_DATA_TAPS - FIR_COEF_TAPS + 1). + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG0: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG1: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG2: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG3: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG4: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG5: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG6: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/OP_REG7: + description: No description available. + fields: + - name: CT + description: Contents. + bit_offset: 0 + bit_size: 32 +fieldset/STATUS: + description: No description available. + fields: + - name: OP_CMD_DONE + description: Indicate that operation cmd is done, and data are available in system memory. + bit_offset: 0 + bit_size: 1 + - name: NXT_CMD_RD_DONE + description: Indicate that next command sequence is already read into the module. + bit_offset: 1 + bit_size: 1 + - name: RD_ERR + description: AXI Data Read Error. + bit_offset: 3 + bit_size: 1 + - name: RD_NXT_ERR + description: AXI Read Bus Error for NXT DATA. + bit_offset: 4 + bit_size: 1 + - name: WR_ERR + description: AXI Data Write Error. + bit_offset: 5 + bit_size: 1 + - name: FFT_OV + description: FFT Overflow Err. + bit_offset: 6 + bit_size: 1 + - name: FIR_OV + description: FIR Overflow err. + bit_offset: 7 + bit_size: 1 diff --git a/data/registers/otpshw_common.yaml b/data/registers/otpshw_common.yaml deleted file mode 100644 index 6edadbe..0000000 --- a/data/registers/otpshw_common.yaml +++ /dev/null @@ -1,181 +0,0 @@ -block/OTPSHW: - description: OTPSHW. - items: - - name: SHADOW - description: no description available. - array: - len: 128 - stride: 4 - byte_offset: 0 - fieldset: SHADOW - - name: SHADOW_LOCK - description: no description available. - array: - len: 8 - stride: 4 - byte_offset: 512 - fieldset: SHADOW_LOCK - - name: FUSE - description: no description available. - array: - len: 128 - stride: 4 - byte_offset: 1024 - fieldset: FUSE - - name: FUSE_LOCK - description: no description available. - array: - len: 8 - stride: 4 - byte_offset: 1536 - fieldset: FUSE_LOCK - - name: UNLOCK - description: UNLOCK. - byte_offset: 2048 - fieldset: UNLOCK - - name: DATA - description: DATA. - byte_offset: 2052 - fieldset: DATA - - name: ADDR - description: ADDR. - byte_offset: 2056 - fieldset: ADDR - - name: CMD - description: CMD. - byte_offset: 2060 - fieldset: CMD - - name: LOAD_REQ - description: LOAD Request. - byte_offset: 2560 - fieldset: LOAD_REQ - - name: LOAD_COMP - description: LOAD complete. - byte_offset: 2564 - fieldset: LOAD_COMP - - name: REGION - description: no description available. - array: - len: 4 - stride: 4 - byte_offset: 2592 - fieldset: REGION - - name: INT_FLAG - description: interrupt flag. - byte_offset: 3072 - fieldset: INT_FLAG - - name: INT_EN - description: interrupt enable. - byte_offset: 3076 - fieldset: INT_EN -fieldset/ADDR: - description: ADDR. - fields: - - name: ADDR - description: word address to be read or write. - bit_offset: 0 - bit_size: 7 -fieldset/CMD: - description: CMD. - fields: - - name: CMD - description: command to access fure array "BLOW" will update fuse word at ADDR to value hold in DATA "READ" will fetch fuse value in at ADDR to DATA register. - bit_offset: 0 - bit_size: 32 -fieldset/DATA: - description: DATA. - fields: - - name: DATA - description: data register for non-blocking access this register hold dat read from fuse array or data to by programmed to fuse array. - bit_offset: 0 - bit_size: 32 -fieldset/FUSE: - description: no description available. - fields: - - name: FUSE - description: fuse array, valid in PMIC part only read operation will read out value in fuse array write operation will update fuse array value(please make sure fuse is unlocked and 2.5V power is ready). - bit_offset: 0 - bit_size: 32 -fieldset/FUSE_LOCK: - description: no description available. - fields: - - name: LOCK - description: "lock for fuse array, 2 bits per 32 bit word, lock behavior is different between different fuse types 00: not locked 01: soft locked 10: not locked, and cannot lock in furture 11: double locked." - bit_offset: 0 - bit_size: 32 -fieldset/INT_EN: - description: interrupt enable. - fields: - - name: LOAD - description: "fuse load interrupt enable 0: fuse load interrupt is not enable 1: fuse load interrupt is enable." - bit_offset: 0 - bit_size: 1 - - name: READ - description: "fuse read interrupt enable 0: fuse read interrupt is not enable 1: fuse read interrupt is enable." - bit_offset: 1 - bit_size: 1 - - name: WRITE - description: "fuse write interrupt enable 0: fuse write interrupt is not enable 1: fuse write interrupt is enable." - bit_offset: 2 - bit_size: 1 -fieldset/INT_FLAG: - description: interrupt flag. - fields: - - name: LOAD - description: "fuse load flag, write 1 to clear 0: fuse is not loaded or loading 1: fuse loaded." - bit_offset: 0 - bit_size: 1 - - name: READ - description: "fuse read flag, write 1 to clear 0: fuse is not read or reading 1: fuse value is put in DATA register." - bit_offset: 1 - bit_size: 1 - - name: WRITE - description: "fuse write flag, write 1 to clear 0: fuse is not written or writing 1: value in DATA register is programmed into fuse." - bit_offset: 2 - bit_size: 1 -fieldset/LOAD_COMP: - description: LOAD complete. - fields: - - name: COMPLETE - description: "reload complete sign for 4 regions bit0: region 0 bit1: region1 bit2: region2 bit3: region3." - bit_offset: 0 - bit_size: 4 -fieldset/LOAD_REQ: - description: LOAD Request. - fields: - - name: REQUEST - description: "reload request for 4 regions bit0: region0 bit1: region1 bit2: region2 bit3: region3." - bit_offset: 0 - bit_size: 4 -fieldset/REGION: - description: no description available. - fields: - - name: START - description: "start address of load region, fuse word at start address will be reloaded region0: fixed at 0 region1: fixed at 8 region2: fixed at 16, region3: usrer configurable." - bit_offset: 0 - bit_size: 7 - - name: STOP - description: "stop address of load region, fuse word at end address will NOT be reloaded region0: fixed at 8 region1: fixed at 16 region2: fixed at 0, region3: usrer configurable." - bit_offset: 8 - bit_size: 7 -fieldset/SHADOW: - description: no description available. - fields: - - name: SHADOW - description: shadow register of fuse for pmic area for PMIC, index valid for 0-15, for SOC index valid for 16-128. - bit_offset: 0 - bit_size: 32 -fieldset/SHADOW_LOCK: - description: no description available. - fields: - - name: LOCK - description: "lock for pmic part shadow registers, 2 bits per 32 bit word, lock behavior is different between different fuse types 00: not locked 01: soft locked 10: not locked, and cannot lock in furture 11: double locked." - bit_offset: 0 - bit_size: 32 -fieldset/UNLOCK: - description: UNLOCK. - fields: - - name: UNLOCK - description: unlock word for fuse array operation write "OPEN" to unlock fuse array, write any other value will lock write to fuse. Please make sure 24M crystal is running and 2.5V LDO working properly. - bit_offset: 0 - bit_size: 32 diff --git a/data/registers/rtc_common.yaml b/data/registers/rtc_common.yaml new file mode 100644 index 0000000..7901241 --- /dev/null +++ b/data/registers/rtc_common.yaml @@ -0,0 +1,121 @@ +block/RTC: + description: RTC. + items: + - name: SECOND + description: Second counter. + byte_offset: 0 + fieldset: SECOND + - name: SUBSEC + description: Sub-second counter. + byte_offset: 4 + fieldset: SUBSEC + - name: SEC_SNAP + description: Second counter snap shot. + byte_offset: 8 + fieldset: SEC_SNAP + - name: SUB_SNAP + description: Sub-second counter snap shot. + byte_offset: 12 + fieldset: SUB_SNAP + - name: ALARM0 + description: RTC alarm0. + byte_offset: 16 + fieldset: ALARM0 + - name: ALARM0_INC + description: Alarm0 incremental. + byte_offset: 20 + fieldset: ALARM0_INC + - name: ALARM1 + description: RTC alarm1. + byte_offset: 24 + fieldset: ALARM1 + - name: ALARM1_INC + description: Alarm1 incremental. + byte_offset: 28 + fieldset: ALARM1_INC + - name: ALARM_FLAG + description: RTC alarm flag. + byte_offset: 32 + fieldset: ALARM_FLAG + - name: ALARM_EN + description: RTC alarm enable. + byte_offset: 36 + fieldset: ALARM_EN +fieldset/ALARM0: + description: RTC alarm0. + fields: + - name: ALARM + description: Alarm time for second counter, on each alarm match, alarm increase ALARM0_INC. + bit_offset: 0 + bit_size: 32 +fieldset/ALARM0_INC: + description: Alarm0 incremental. + fields: + - name: INCREASE + description: adder when ARLAM0 happen, helps to create periodical alarm. + bit_offset: 0 + bit_size: 32 +fieldset/ALARM1: + description: RTC alarm1. + fields: + - name: ALARM + description: Alarm time for second counter, on each alarm match, alarm increase ALARM0_INC. + bit_offset: 0 + bit_size: 32 +fieldset/ALARM1_INC: + description: Alarm1 incremental. + fields: + - name: INCREASE + description: adder when ARLAM0 happen, helps to create periodical alarm. + bit_offset: 0 + bit_size: 32 +fieldset/ALARM_EN: + description: RTC alarm enable. + fields: + - name: ENABLE0 + description: "alarm0 mask 0: alarm0 disabled 1: alarm0 enabled." + bit_offset: 0 + bit_size: 1 + - name: ENABLE1 + description: "alarm1 mask 0: alarm1 disabled 1: alarm1 enabled." + bit_offset: 1 + bit_size: 1 +fieldset/ALARM_FLAG: + description: RTC alarm flag. + fields: + - name: ALARM0 + description: alarm0 happen. + bit_offset: 0 + bit_size: 1 + - name: ALARM1 + description: alarm1 happen. + bit_offset: 1 + bit_size: 1 +fieldset/SECOND: + description: Second counter. + fields: + - name: SECOND + description: second counter. + bit_offset: 0 + bit_size: 32 +fieldset/SEC_SNAP: + description: Second counter snap shot. + fields: + - name: SEC_SNAP + description: second snap shot, write to take snap shot. + bit_offset: 0 + bit_size: 32 +fieldset/SUBSEC: + description: Sub-second counter. + fields: + - name: SUBSEC + description: sub second counter. + bit_offset: 0 + bit_size: 32 +fieldset/SUB_SNAP: + description: Sub-second counter snap shot. + fields: + - name: SUB_SNAP + description: sub second snap shot, write to take snap shot. + bit_offset: 0 + bit_size: 32