u-boot/arch/arm/include/asm/arch-sunxi
Andre Przywara 30097ee3d2 pinctrl: sunxi: remove struct sunxi_gpio
So far every Allwinner SoC used the same basic pincontroller/GPIO
register frame, and just differed by the number of implemented banks and
pins, plus some special functionality from time to time. However the D1
and successors use a slightly different pinctrl register layout.
Use that opportunity to drop "struct sunxi_gpio", that described that
MMIO frame in a C struct. That approach is somewhat frowned upon in the
Linux world and rarely used there, though still popular with U-Boot.

Switching from a C struct to a "base address plus offset" approach allows
to switch between the two models more dynamically, without reverting to
preprocessor macros and #ifdef's.

Model the pinctrl MMIO register frame in the usual "base address +
offset" way, and replace a hard-to-parse CPP macro with a more readable
static function.
All the users get converted over. There are no functional changes at
this point, it just prepares the stages for the D1 and friends.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Tested-by: Samuel Holland <samuel@sholland.org>
2023-10-22 23:40:57 +01:00
..
boot0.h sunxi: arm64: boot0.h: runtime check for RVBAR address 2023-04-12 00:17:22 +01:00
clock.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
clock_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
clock_sun6i.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
clock_sun8i_a83t.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
clock_sun9i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
clock_sun50i_h6.h mmc: sunxi: Fix MMC clock parent selection 2021-07-10 01:22:09 +01:00
cpu.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
cpu_sun4i.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
cpu_sun9i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cpu_sun50i_h6.h sunxi: Add support for H616 SoC 2021-01-25 21:52:01 +00:00
cpucfg.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display2.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram.h sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
dram_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram_sun6i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun8i_a23.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram_sun8i_a33.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun8i_a83t.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun9i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun50i_h6.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun50i_h616.h sunxi: H616: dram: split struct dram_para 2023-07-21 00:29:42 +01:00
dram_suniv.h sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
dram_sunxi_dw.h sunxi: support asymmetric dual rank DRAM on A64/R40 2021-04-16 01:12:58 +01:00
gpio.h pinctrl: sunxi: remove struct sunxi_gpio 2023-10-22 23:40:57 +01:00
gtbus.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gtbus_sun9i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
i2c.h global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
lcdc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc.h mmc: sunxi: Increase MMIO FIFO read performance 2021-07-10 01:22:09 +01:00
p2wi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pmic_bus.h sunxi: Fix typo in include guard 2023-06-07 22:45:02 +01:00
prcm.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
prcm_sun6i.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
prcm_sun50i.h sunxi: prcm: Add a few registers 2022-04-04 23:24:17 +01:00
pwm.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
rsb.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
spl.h sunxi: Support SPL in both eGON and TOC0 images 2022-04-04 23:24:17 +01:00
sys_proto.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
tve.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tzpc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
watchdog.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00