/* * (C) Copyright 2022 Rockchip Electronics Co., Ltd. * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef _ASM_ARCH_IOC_RV1106_H #define _ASM_ARCH_IOC_RV1106_H #include struct rv1106_gpio0_ioc { unsigned int gpio0a_iomux_sel_l; unsigned int gpio0a_iomux_sel_h; unsigned int reserved0[(0x0010 - 0x0004) / 4 - 1]; unsigned int gpio0a_ds0; unsigned int gpio0a_ds1; unsigned int gpio0a_ds2; unsigned int gpio0a_ds3; unsigned int reserved1[(0x0030 - 0x001c) / 4 - 1]; unsigned int gpio0a_ie; unsigned int reserved2[(0x0038 - 0x0030) / 4 - 1]; unsigned int gpio0a_p; unsigned int reserved3[(0x0040 - 0x0038) / 4 - 1]; unsigned int gpio0a_sus; unsigned int reserved4[(0x0048 - 0x0040) / 4 - 1]; unsigned int gpio0a_sl; unsigned int reserved5[(0x0058 - 0x0048) / 4 - 1]; unsigned int gpio0a_ie_smt; unsigned int reserved6[(0x0068 - 0x0058) / 4 - 1]; unsigned int gpio0a_od; }; check_member(rv1106_gpio0_ioc, gpio0a_od, 0x0068); struct rv1106_gpio1_ioc { unsigned int gpio1a_iomux_sel_l; unsigned int gpio1a_iomux_sel_h; unsigned int gpio1b_iomux_sel_l; unsigned int reserved0[(0x0010 - 0x0008) / 4 - 1]; unsigned int gpio1c_iomux_sel_l; unsigned int gpio1c_iomux_sel_h; unsigned int gpio1d_iomux_sel_l; unsigned int reserved1[(0x0080 - 0x0018) / 4 - 1]; unsigned int gpio1a_ds0; unsigned int gpio1a_ds1; unsigned int gpio1a_ds2; unsigned int reserved2[(0x0090 - 0x0088) / 4 - 1]; unsigned int gpio1b_ds0; unsigned int gpio1b_ds1; unsigned int reserved3[(0x00a0 - 0x0094) / 4 - 1]; unsigned int gpio1c_ds0; unsigned int gpio1c_ds1; unsigned int gpio1c_ds2; unsigned int gpio1c_ds3; unsigned int gpio1d_ds0; unsigned int gpio1d_ds1; unsigned int reserved4[(0x0180 - 0x00b4) / 4 - 1]; unsigned int gpio1a_ie; unsigned int gpio1b_ie; unsigned int gpio1c_ie; unsigned int gpio1d_ie; unsigned int reserved5[(0x01c0 - 0x018c) / 4 - 1]; unsigned int gpio1a_p; unsigned int gpio1b_p; unsigned int gpio1c_p; unsigned int gpio1d_p; unsigned int reserved6[(0x0200 - 0x01cc) / 4 - 1]; unsigned int gpio1a_sus; unsigned int gpio1b_sus; unsigned int gpio1c_sus; unsigned int gpio1d_sus; unsigned int reserved7[(0x0240 - 0x020c) / 4 - 1]; unsigned int gpio1a_sl; unsigned int gpio1b_sl; unsigned int gpio1c_sl; unsigned int gpio1d_sl; unsigned int reserved8[(0x0280 - 0x024c) / 4 - 1]; unsigned int gpio1a_ie_smt; unsigned int gpio1b_ie_smt; unsigned int gpio1c_ie_smt; unsigned int gpio1d_ie_smt; unsigned int reserved9[(0x02c0 - 0x028c) / 4 - 1]; unsigned int gpio1a_od; unsigned int gpio1b_od; unsigned int gpio1c_od; unsigned int gpio1d_od; unsigned int reserved10[(0x02f4 - 0x02cc) / 4 - 1]; unsigned int force_jtag_uart; }; check_member(rv1106_gpio1_ioc, force_jtag_uart, 0x02f4); struct rv1106_gpio2_ioc { unsigned int reserved0[(0x0020 - 0x0000) / 4]; unsigned int gpio2a_iomux_sel_l; unsigned int gpio2a_iomux_sel_h; unsigned int gpio2b_iomux_sel_l; unsigned int reserved1[(0x00c0 - 0x0028) / 4 - 1]; unsigned int gpio2a_ds0; unsigned int gpio2a_ds1; unsigned int gpio2a_ds2; unsigned int gpio2a_ds3; unsigned int gpio2b_ds0; unsigned int reserved2[(0x0190 - 0x00d0) / 4 - 1]; unsigned int gpio2a_ie; unsigned int gpio2b_ie; unsigned int reserved3[(0x01d0 - 0x0194) / 4 - 1]; unsigned int gpio2a_p; unsigned int gpio2b_p; unsigned int reserved4[(0x0210 - 0x01d4) / 4 - 1]; unsigned int gpio2a_sus; unsigned int gpio2b_sus; unsigned int reserved5[(0x0250 - 0x0214) / 4 - 1]; unsigned int gpio2a_sl; unsigned int gpio2b_sl; unsigned int reserved6[(0x0290 - 0x0254) / 4 - 1]; unsigned int gpio2a_ie_smt; unsigned int gpio2b_ie_smt; unsigned int reserved7[(0x02d0 - 0x0294) / 4 - 1]; unsigned int gpio2a_od; unsigned int gpio2b_od; }; check_member(rv1106_gpio2_ioc, gpio2b_od, 0x02d4); struct rv1106_gpio3_ioc { unsigned int reserved0[(0x0040 - 0x0000) / 4]; unsigned int gpio3a_iomux_sel_l; unsigned int gpio3a_iomux_sel_h; unsigned int gpio3b_iomux_sel_l; unsigned int gpio3b_iomux_sel_h; unsigned int gpio3c_iomux_sel_l; unsigned int gpio3c_iomux_sel_h; unsigned int gpio3d_iomux_sel_l; unsigned int reserved1[(0x0100 - 0x0058) / 4 - 1]; unsigned int gpio3a_ds0; unsigned int gpio3a_ds1; unsigned int gpio3a_ds2; unsigned int gpio3a_ds3; unsigned int reserved2[(0x0128 - 0x010c) / 4 - 1]; unsigned int gpio3c_ds2; unsigned int gpio3c_ds3; unsigned int gpio3d_ds0; unsigned int gpio3d_ds1; unsigned int reserved3[(0x01a0 - 0x0134) / 4 - 1]; unsigned int gpio3a_ie; unsigned int reserved4[(0x01a8 - 0x01a0) / 4 - 1]; unsigned int gpio3c_ie; unsigned int gpio3d_ie; unsigned int reserved5[(0x01e0 - 0x01ac) / 4 - 1]; unsigned int gpio3a_p; unsigned int reserved6[(0x01e8 - 0x01e0) / 4 - 1]; unsigned int gpio3c_p; unsigned int gpio3d_p; unsigned int reserved7[(0x0220 - 0x01ec) / 4 - 1]; unsigned int gpio3a_sus; unsigned int reserved8[(0x0228 - 0x0220) / 4 - 1]; unsigned int gpio3c_sus; unsigned int gpio3d_sus; unsigned int reserved9[(0x0260 - 0x022c) / 4 - 1]; unsigned int gpio3a_sl; unsigned int reserved10[(0x0268 - 0x0260) / 4 - 1]; unsigned int gpio3c_sl; unsigned int gpio3d_sl; unsigned int reserved11[(0x02a0 - 0x026c) / 4 - 1]; unsigned int gpio3a_ie_smt; unsigned int reserved12[(0x02a8 - 0x02a0) / 4 - 1]; unsigned int gpio3c_ie_smt; unsigned int gpio3d_ie_smt; unsigned int reserved13[(0x02e0 - 0x02ac) / 4 - 1]; unsigned int gpio3a_od; unsigned int reserved14[(0x02e8 - 0x02e0) / 4 - 1]; unsigned int gpio3c_od; unsigned int gpio3d_od; unsigned int reserved15[(0x02f4 - 0x02ec) / 4 - 1]; unsigned int force_jtag_sdmmc; }; check_member(rv1106_gpio3_ioc, force_jtag_sdmmc, 0x02f4); struct rv1106_gpio4_ioc { unsigned int gpio4a_iomux_sel_l; unsigned int gpio4a_iomux_sel_h; unsigned int gpio4b_iomux_sel_l; unsigned int reserved0[(0x0010 - 0x0008) / 4 - 1]; unsigned int gpio4c_iomux_sel_l; unsigned int reserved1[(0x0020 - 0x0010) / 4 - 1]; unsigned int gpio4a_ds0; unsigned int gpio4a_ds1; unsigned int gpio4a_ds2; unsigned int gpio4a_ds3; unsigned int gpio4b_ds0; unsigned int reserved2[(0x0060 - 0x0030) / 4 - 1]; unsigned int gpio4a_ie; unsigned int gpio4b_ie; unsigned int reserved3[(0x0070 - 0x0064) / 4 - 1]; unsigned int gpio4a_p; unsigned int gpio4b_p; unsigned int reserved4[(0x0080 - 0x0074) / 4 - 1]; unsigned int gpio4a_sus; unsigned int gpio4b_sus; unsigned int reserved5[(0x0090 - 0x0084) / 4 - 1]; unsigned int gpio4a_sl; unsigned int gpio4b_sl; unsigned int reserved6[(0x00a0 - 0x0094) / 4 - 1]; unsigned int gpio4a_ie_smt; unsigned int gpio4b_ie_smt; unsigned int reserved7[(0x00b0 - 0x00a4) / 4 - 1]; unsigned int gpio4a_od; unsigned int gpio4b_od; unsigned int reserved8[(0x00c0 - 0x00b4) / 4 - 1]; unsigned int saradc_io_con; unsigned int reserved9[(0x0200 - 0x00c0) / 4 - 1]; unsigned int vccio3_vol_con; }; check_member(rv1106_gpio4_ioc, vccio3_vol_con, 0x0200); #endif