[RFC PATCH 00/23] sunxi: Add and use a pinctrl driver
Samuel Holland
samuel at sholland.org
Thu Oct 21 06:55:17 CEST 2021
This series resolves some longstanding TODOs by implementing a pinctrl
driver for sunxi platforms and converting DM drivers to use it.
I am sending this as RFC because I have only tested this on a limited
amount of hardware, and there are quite a few magic numbers involved,
so it is likely I missed something. Also, I'm not sure the how best to
split up the patches by subsystem, or if that is necessary.
This series depends on the sunxi-gpio series I just sent.
Samuel Holland (23):
sunxi: pinctrl: Create the driver skeleton
sunxi: pinctrl: Implement pin muxing functions
sunxi: pinctrl: Implement get_pin_muxing function
sunxi: pinctrl: Implement pin configuration
pinctrl: sunxi: Add UART pinmuxes
sunxi: Skip non-DM UART pin setup when PINCTRL=y
pinctrl: sunxi: Add sun4i EMAC pinmuxes
net: sunxi_emac: Remove non-DM pin setup
pinctrl: sunxi: Add sunxi GMAC pinmuxes
sunxi: Remove non-DM GMAC pin setup
pinctrl: sunxi: Add sun8i EMAC pinmuxes
net: sun8i_emac: Remove non-DM pin setup
pinctrl: sunxi: Add I2C pinmuxes
sunxi: Remove options and setup code for I2C2-I2C4
sunxi: Remove non-DM I2C clock/pin setup from U-Boot
i2c: sun6i_p2wi: Only do non-DM pin setup for non-DM I2C
i2c: sun8i_rsb: Only do non-DM pin setup for non-DM I2C
pinctrl: sunxi: Add MMC pinmuxes
sunxi: Remove non-DM MMC pin setup
pinctrl: sunxi: a64: Add the PWM pinmux
pwm: sunxi: Remove non-DM pin setup
pinctrl: sunxi: Add SPI0 pinmuxes
spi: sun4i_spi: Remove non-DM pin setup
MAINTAINERS | 1 +
arch/arm/Kconfig | 1 +
arch/arm/include/asm/arch-sunxi/gpio.h | 18 +-
arch/arm/include/asm/arch-sunxi/i2c.h | 11 +-
arch/arm/mach-sunxi/Kconfig | 22 --
arch/arm/mach-sunxi/board.c | 2 +
board/sunxi/board.c | 67 ------
board/sunxi/gmac.c | 55 -----
drivers/gpio/sunxi_gpio.c | 130 +-----------
drivers/i2c/sun6i_p2wi.c | 6 +-
drivers/i2c/sun8i_rsb.c | 40 ++--
drivers/net/sun8i_emac.c | 90 --------
drivers/net/sunxi_emac.c | 5 -
drivers/pinctrl/Kconfig | 1 +
drivers/pinctrl/Makefile | 2 +-
drivers/pinctrl/sunxi/Kconfig | 122 +++++++++++
drivers/pinctrl/sunxi/Makefile | 26 +++
drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c | 53 +++++
drivers/pinctrl/sunxi/pinctrl-sun50i-a64-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun50i-a64.c | 51 +++++
drivers/pinctrl/sunxi/pinctrl-sun50i-h5.c | 50 +++++
drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c | 49 +++++
drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c | 47 +++++
drivers/pinctrl/sunxi/pinctrl-sun5i-a13.c | 53 +++++
drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun6i-a31.c | 53 +++++
drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c | 57 +++++
drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c | 47 +++++
drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c | 49 +++++
drivers/pinctrl/sunxi/pinctrl-sun8i-a83t-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c | 50 +++++
drivers/pinctrl/sunxi/pinctrl-sun8i-h3-r.c | 38 ++++
drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c | 50 +++++
drivers/pinctrl/sunxi/pinctrl-sun8i-v3s.c | 54 +++++
drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c | 39 ++++
drivers/pinctrl/sunxi/pinctrl-sun9i-a80.c | 48 +++++
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 196 ++++++++++++++++++
drivers/pinctrl/sunxi/pinctrl-sunxi.h | 21 ++
drivers/pwm/sunxi_pwm.c | 11 -
drivers/spi/spi-sunxi.c | 83 --------
43 files changed, 1414 insertions(+), 512 deletions(-)
create mode 100644 drivers/pinctrl/sunxi/Kconfig
create mode 100644 drivers/pinctrl/sunxi/Makefile
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-a64-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-a64.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h5.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun5i-a13.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun6i-a31.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-h3-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-v3s.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun9i-a80.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sunxi.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sunxi.h
--
2.32.0
More information about the U-Boot
mailing list