/* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA"). * All rights reserved. * * This software is supplied "AS IS" without any warranties. * RDA assumes no responsibility or liability for the use of the software, * conveys no license or title under any patent, copyright, or mask work * right to the product. RDA reserves the right to make changes in the * software without notification. RDA also make no representation or * warranty that such application will be suitable for the specified use * without further testing or modification. */ #ifndef _SLV_FW_AP_AHB_H_ #define _SLV_FW_AP_AHB_H_ // Auto generated by dtools(see dtools.txt for its version). // Don't edit it manually! #define REG_SLV_FW_AP_AHB_BASE (0x51322000) typedef volatile struct { uint32_t port0_default_address_0; // 0x00000000 uint32_t port_int_en; // 0x00000004 uint32_t port_int_clr; // 0x00000008 uint32_t port_int_raw; // 0x0000000c uint32_t port_int_fin; // 0x00000010 uint32_t rd_sec_0; // 0x00000014 uint32_t rd_sec_1; // 0x00000018 uint32_t wr_sec_0; // 0x0000001c uint32_t wr_sec_1; // 0x00000020 uint32_t id0_first_addr_0; // 0x00000024 uint32_t id0_last_addr_0; // 0x00000028 uint32_t id0_mstid_0; // 0x0000002c uint32_t id0_mstid_1; // 0x00000030 uint32_t id0_mstid_2; // 0x00000034 uint32_t id0_mstid_3; // 0x00000038 uint32_t id0_mstid_4; // 0x0000003c uint32_t id0_mstid_5; // 0x00000040 uint32_t id0_mstid_6; // 0x00000044 uint32_t id0_mstid_7; // 0x00000048 uint32_t id1_first_addr_0; // 0x0000004c uint32_t id1_last_addr_0; // 0x00000050 uint32_t id1_mstid_0; // 0x00000054 uint32_t id1_mstid_1; // 0x00000058 uint32_t id1_mstid_2; // 0x0000005c uint32_t id1_mstid_3; // 0x00000060 uint32_t id1_mstid_4; // 0x00000064 uint32_t id1_mstid_5; // 0x00000068 uint32_t id1_mstid_6; // 0x0000006c uint32_t id1_mstid_7; // 0x00000070 uint32_t id2_first_addr_0; // 0x00000074 uint32_t id2_last_addr_0; // 0x00000078 uint32_t id2_mstid_0; // 0x0000007c uint32_t id2_mstid_1; // 0x00000080 uint32_t id2_mstid_2; // 0x00000084 uint32_t id2_mstid_3; // 0x00000088 uint32_t id2_mstid_4; // 0x0000008c uint32_t id2_mstid_5; // 0x00000090 uint32_t id2_mstid_6; // 0x00000094 uint32_t id2_mstid_7; // 0x00000098 uint32_t id3_first_addr_0; // 0x0000009c uint32_t id3_last_addr_0; // 0x000000a0 uint32_t id3_mstid_0; // 0x000000a4 uint32_t id3_mstid_1; // 0x000000a8 uint32_t id3_mstid_2; // 0x000000ac uint32_t id3_mstid_3; // 0x000000b0 uint32_t id3_mstid_4; // 0x000000b4 uint32_t id3_mstid_5; // 0x000000b8 uint32_t id3_mstid_6; // 0x000000bc uint32_t id3_mstid_7; // 0x000000c0 uint32_t id4_first_addr_0; // 0x000000c4 uint32_t id4_last_addr_0; // 0x000000c8 uint32_t id4_mstid_0; // 0x000000cc uint32_t id4_mstid_1; // 0x000000d0 uint32_t id4_mstid_2; // 0x000000d4 uint32_t id4_mstid_3; // 0x000000d8 uint32_t id4_mstid_4; // 0x000000dc uint32_t id4_mstid_5; // 0x000000e0 uint32_t id4_mstid_6; // 0x000000e4 uint32_t id4_mstid_7; // 0x000000e8 uint32_t id5_first_addr_0; // 0x000000ec uint32_t id5_last_addr_0; // 0x000000f0 uint32_t id5_mstid_0; // 0x000000f4 uint32_t id5_mstid_1; // 0x000000f8 uint32_t id5_mstid_2; // 0x000000fc uint32_t id5_mstid_3; // 0x00000100 uint32_t id5_mstid_4; // 0x00000104 uint32_t id5_mstid_5; // 0x00000108 uint32_t id5_mstid_6; // 0x0000010c uint32_t id5_mstid_7; // 0x00000110 uint32_t clk_gate_bypass; // 0x00000114 } HWP_SLV_FW_AP_AHB_T; #define hwp_slvFwApAhb ((HWP_SLV_FW_AP_AHB_T *)REG_ACCESS_ADDRESS(REG_SLV_FW_AP_AHB_BASE)) // port0_default_address_0 typedef union { uint32_t v; struct { uint32_t port0_default_address_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_PORT0_DEFAULT_ADDRESS_0_T; // port_int_en typedef union { uint32_t v; struct { uint32_t port_0_w_en : 1; // [0] uint32_t port_0_r_en : 1; // [1] uint32_t __31_2 : 30; // [31:2] } b; } REG_SLV_FW_AP_AHB_PORT_INT_EN_T; // port_int_clr typedef union { uint32_t v; struct { uint32_t port_0_w_clr : 1; // [0], write clear uint32_t port_0_r_clr : 1; // [1], write clear uint32_t __31_2 : 30; // [31:2] } b; } REG_SLV_FW_AP_AHB_PORT_INT_CLR_T; // port_int_raw typedef union { uint32_t v; struct { uint32_t port_0_w_raw : 1; // [0], read only uint32_t port_0_r_raw : 1; // [1], read only uint32_t __31_2 : 30; // [31:2] } b; } REG_SLV_FW_AP_AHB_PORT_INT_RAW_T; // port_int_fin typedef union { uint32_t v; struct { uint32_t port_0_w_fin : 1; // [0], read only uint32_t port_0_r_fin : 1; // [1], read only uint32_t __31_2 : 30; // [31:2] } b; } REG_SLV_FW_AP_AHB_PORT_INT_FIN_T; // rd_sec_0 typedef union { uint32_t v; struct { uint32_t ap_clk_rd_sec : 2; // [1:0] uint32_t gpt3_rd_sec : 2; // [3:2] uint32_t i2c2_rd_sec : 2; // [5:4] uint32_t i2c1_rd_sec : 2; // [7:6] uint32_t timer5_rd_sec : 2; // [9:8] uint32_t timer2_rd_sec : 2; // [11:10] uint32_t timer1_1_rd_sec : 2; // [13:12] uint32_t timer1_wd_rd_sec : 2; // [15:14] uint32_t timer1_0_rd_sec : 2; // [17:16] uint32_t gouda_reg_rd_sec : 2; // [19:18] uint32_t apb_reg_rd_sec : 2; // [21:20] uint32_t ap_busmon_rd_sec : 2; // [23:22] uint32_t ap_imem_rd_sec : 2; // [25:24] uint32_t lzma_rd_sec : 2; // [27:26] uint32_t spi1_rd_sec : 2; // [29:28] uint32_t emmc_rd_sec : 2; // [31:30] } b; } REG_SLV_FW_AP_AHB_RD_SEC_0_T; // rd_sec_1 typedef union { uint32_t v; struct { uint32_t ce_sec_rd_sec : 2; // [1:0] uint32_t ce_pub_rd_sec : 2; // [3:2] uint32_t med_rd_sec : 2; // [5:4] uint32_t usb_rd_sec : 2; // [7:6] uint32_t ap_axidma_rd_sec : 2; // [9:8] uint32_t gouda_rd_sec : 2; // [11:10] uint32_t spiflash2_reg_rd_sec : 2; // [13:12] uint32_t spiflash1_reg_rd_sec : 2; // [15:14] uint32_t __31_16 : 16; // [31:16] } b; } REG_SLV_FW_AP_AHB_RD_SEC_1_T; // wr_sec_0 typedef union { uint32_t v; struct { uint32_t ap_clk_wr_sec : 2; // [1:0] uint32_t gpt3_wr_sec : 2; // [3:2] uint32_t i2c2_wr_sec : 2; // [5:4] uint32_t i2c1_wr_sec : 2; // [7:6] uint32_t timer5_wr_sec : 2; // [9:8] uint32_t timer2_wr_sec : 2; // [11:10] uint32_t timer1_1_wr_sec : 2; // [13:12] uint32_t timer1_wd_wr_sec : 2; // [15:14] uint32_t timer1_0_wr_sec : 2; // [17:16] uint32_t gouda_reg_wr_sec : 2; // [19:18] uint32_t apb_reg_wr_sec : 2; // [21:20] uint32_t ap_busmon_wr_sec : 2; // [23:22] uint32_t ap_imem_wr_sec : 2; // [25:24] uint32_t lzma_wr_sec : 2; // [27:26] uint32_t spi1_wr_sec : 2; // [29:28] uint32_t emmc_wr_sec : 2; // [31:30] } b; } REG_SLV_FW_AP_AHB_WR_SEC_0_T; // wr_sec_1 typedef union { uint32_t v; struct { uint32_t ce_sec_wr_sec : 2; // [1:0] uint32_t ce_pub_wr_sec : 2; // [3:2] uint32_t med_wr_sec : 2; // [5:4] uint32_t usb_wr_sec : 2; // [7:6] uint32_t ap_axidma_wr_sec : 2; // [9:8] uint32_t gouda_wr_sec : 2; // [11:10] uint32_t spiflash2_reg_wr_sec : 2; // [13:12] uint32_t spiflash1_reg_wr_sec : 2; // [15:14] uint32_t __31_16 : 16; // [31:16] } b; } REG_SLV_FW_AP_AHB_WR_SEC_1_T; // id0_first_addr_0 typedef union { uint32_t v; struct { uint32_t first_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID0_FIRST_ADDR_0_T; // id0_last_addr_0 typedef union { uint32_t v; struct { uint32_t last_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID0_LAST_ADDR_0_T; // id1_first_addr_0 typedef union { uint32_t v; struct { uint32_t first_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID1_FIRST_ADDR_0_T; // id1_last_addr_0 typedef union { uint32_t v; struct { uint32_t last_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID1_LAST_ADDR_0_T; // id2_first_addr_0 typedef union { uint32_t v; struct { uint32_t first_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID2_FIRST_ADDR_0_T; // id2_last_addr_0 typedef union { uint32_t v; struct { uint32_t last_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID2_LAST_ADDR_0_T; // id3_first_addr_0 typedef union { uint32_t v; struct { uint32_t first_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID3_FIRST_ADDR_0_T; // id3_last_addr_0 typedef union { uint32_t v; struct { uint32_t last_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID3_LAST_ADDR_0_T; // id4_first_addr_0 typedef union { uint32_t v; struct { uint32_t first_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID4_FIRST_ADDR_0_T; // id4_last_addr_0 typedef union { uint32_t v; struct { uint32_t last_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID4_LAST_ADDR_0_T; // id5_first_addr_0 typedef union { uint32_t v; struct { uint32_t first_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID5_FIRST_ADDR_0_T; // id5_last_addr_0 typedef union { uint32_t v; struct { uint32_t last_addr_0 : 27; // [26:0] uint32_t __31_27 : 5; // [31:27] } b; } REG_SLV_FW_AP_AHB_ID5_LAST_ADDR_0_T; // clk_gate_bypass typedef union { uint32_t v; struct { uint32_t clk_gate_bypass : 1; // [0] uint32_t fw_resp_en : 1; // [1] uint32_t __31_2 : 30; // [31:2] } b; } REG_SLV_FW_AP_AHB_CLK_GATE_BYPASS_T; // port0_default_address_0 #define SLV_FW_AP_AHB_PORT0_DEFAULT_ADDRESS_0(n) (((n)&0x7ffffff) << 0) // port_int_en #define SLV_FW_AP_AHB_PORT_0_W_EN (1 << 0) #define SLV_FW_AP_AHB_PORT_0_R_EN (1 << 1) // port_int_clr #define SLV_FW_AP_AHB_PORT_0_W_CLR (1 << 0) #define SLV_FW_AP_AHB_PORT_0_R_CLR (1 << 1) // port_int_raw #define SLV_FW_AP_AHB_PORT_0_W_RAW (1 << 0) #define SLV_FW_AP_AHB_PORT_0_R_RAW (1 << 1) // port_int_fin #define SLV_FW_AP_AHB_PORT_0_W_FIN (1 << 0) #define SLV_FW_AP_AHB_PORT_0_R_FIN (1 << 1) // rd_sec_0 #define SLV_FW_AP_AHB_AP_CLK_RD_SEC(n) (((n)&0x3) << 0) #define SLV_FW_AP_AHB_GPT3_RD_SEC(n) (((n)&0x3) << 2) #define SLV_FW_AP_AHB_I2C2_RD_SEC(n) (((n)&0x3) << 4) #define SLV_FW_AP_AHB_I2C1_RD_SEC(n) (((n)&0x3) << 6) #define SLV_FW_AP_AHB_TIMER5_RD_SEC(n) (((n)&0x3) << 8) #define SLV_FW_AP_AHB_TIMER2_RD_SEC(n) (((n)&0x3) << 10) #define SLV_FW_AP_AHB_TIMER1_1_RD_SEC(n) (((n)&0x3) << 12) #define SLV_FW_AP_AHB_TIMER1_WD_RD_SEC(n) (((n)&0x3) << 14) #define SLV_FW_AP_AHB_TIMER1_0_RD_SEC(n) (((n)&0x3) << 16) #define SLV_FW_AP_AHB_GOUDA_REG_RD_SEC(n) (((n)&0x3) << 18) #define SLV_FW_AP_AHB_APB_REG_RD_SEC(n) (((n)&0x3) << 20) #define SLV_FW_AP_AHB_AP_BUSMON_RD_SEC(n) (((n)&0x3) << 22) #define SLV_FW_AP_AHB_AP_IMEM_RD_SEC(n) (((n)&0x3) << 24) #define SLV_FW_AP_AHB_LZMA_RD_SEC(n) (((n)&0x3) << 26) #define SLV_FW_AP_AHB_SPI1_RD_SEC(n) (((n)&0x3) << 28) #define SLV_FW_AP_AHB_EMMC_RD_SEC(n) (((n)&0x3) << 30) // rd_sec_1 #define SLV_FW_AP_AHB_CE_SEC_RD_SEC(n) (((n)&0x3) << 0) #define SLV_FW_AP_AHB_CE_PUB_RD_SEC(n) (((n)&0x3) << 2) #define SLV_FW_AP_AHB_MED_RD_SEC(n) (((n)&0x3) << 4) #define SLV_FW_AP_AHB_USB_RD_SEC(n) (((n)&0x3) << 6) #define SLV_FW_AP_AHB_AP_AXIDMA_RD_SEC(n) (((n)&0x3) << 8) #define SLV_FW_AP_AHB_GOUDA_RD_SEC(n) (((n)&0x3) << 10) #define SLV_FW_AP_AHB_SPIFLASH2_REG_RD_SEC(n) (((n)&0x3) << 12) #define SLV_FW_AP_AHB_SPIFLASH1_REG_RD_SEC(n) (((n)&0x3) << 14) // wr_sec_0 #define SLV_FW_AP_AHB_AP_CLK_WR_SEC(n) (((n)&0x3) << 0) #define SLV_FW_AP_AHB_GPT3_WR_SEC(n) (((n)&0x3) << 2) #define SLV_FW_AP_AHB_I2C2_WR_SEC(n) (((n)&0x3) << 4) #define SLV_FW_AP_AHB_I2C1_WR_SEC(n) (((n)&0x3) << 6) #define SLV_FW_AP_AHB_TIMER5_WR_SEC(n) (((n)&0x3) << 8) #define SLV_FW_AP_AHB_TIMER2_WR_SEC(n) (((n)&0x3) << 10) #define SLV_FW_AP_AHB_TIMER1_1_WR_SEC(n) (((n)&0x3) << 12) #define SLV_FW_AP_AHB_TIMER1_WD_WR_SEC(n) (((n)&0x3) << 14) #define SLV_FW_AP_AHB_TIMER1_0_WR_SEC(n) (((n)&0x3) << 16) #define SLV_FW_AP_AHB_GOUDA_REG_WR_SEC(n) (((n)&0x3) << 18) #define SLV_FW_AP_AHB_APB_REG_WR_SEC(n) (((n)&0x3) << 20) #define SLV_FW_AP_AHB_AP_BUSMON_WR_SEC(n) (((n)&0x3) << 22) #define SLV_FW_AP_AHB_AP_IMEM_WR_SEC(n) (((n)&0x3) << 24) #define SLV_FW_AP_AHB_LZMA_WR_SEC(n) (((n)&0x3) << 26) #define SLV_FW_AP_AHB_SPI1_WR_SEC(n) (((n)&0x3) << 28) #define SLV_FW_AP_AHB_EMMC_WR_SEC(n) (((n)&0x3) << 30) // wr_sec_1 #define SLV_FW_AP_AHB_CE_SEC_WR_SEC(n) (((n)&0x3) << 0) #define SLV_FW_AP_AHB_CE_PUB_WR_SEC(n) (((n)&0x3) << 2) #define SLV_FW_AP_AHB_MED_WR_SEC(n) (((n)&0x3) << 4) #define SLV_FW_AP_AHB_USB_WR_SEC(n) (((n)&0x3) << 6) #define SLV_FW_AP_AHB_AP_AXIDMA_WR_SEC(n) (((n)&0x3) << 8) #define SLV_FW_AP_AHB_GOUDA_WR_SEC(n) (((n)&0x3) << 10) #define SLV_FW_AP_AHB_SPIFLASH2_REG_WR_SEC(n) (((n)&0x3) << 12) #define SLV_FW_AP_AHB_SPIFLASH1_REG_WR_SEC(n) (((n)&0x3) << 14) // id0_first_addr_0 #define SLV_FW_AP_AHB_FIRST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id0_last_addr_0 #define SLV_FW_AP_AHB_LAST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id1_first_addr_0 #define SLV_FW_AP_AHB_FIRST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id1_last_addr_0 #define SLV_FW_AP_AHB_LAST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id2_first_addr_0 #define SLV_FW_AP_AHB_FIRST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id2_last_addr_0 #define SLV_FW_AP_AHB_LAST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id3_first_addr_0 #define SLV_FW_AP_AHB_FIRST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id3_last_addr_0 #define SLV_FW_AP_AHB_LAST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id4_first_addr_0 #define SLV_FW_AP_AHB_FIRST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id4_last_addr_0 #define SLV_FW_AP_AHB_LAST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id5_first_addr_0 #define SLV_FW_AP_AHB_FIRST_ADDR_0(n) (((n)&0x7ffffff) << 0) // id5_last_addr_0 #define SLV_FW_AP_AHB_LAST_ADDR_0(n) (((n)&0x7ffffff) << 0) // clk_gate_bypass #define SLV_FW_AP_AHB_CLK_GATE_BYPASS (1 << 0) #define SLV_FW_AP_AHB_FW_RESP_EN (1 << 1) #endif // _SLV_FW_AP_AHB_H_