Message ID | 20210911215049.5840-3-samuel@sholland.org |
---|---|
State | Accepted |
Delegated to: | Andre Przywara |
Headers | show |
Series | sunxi: Cleanup to prepare for DM_GPIO/DM_PINCTRL | expand |
On Sat, 11 Sep 2021 16:50:48 -0500 Samuel Holland <samuel@sholland.org> wrote: > This clarifies which callers must be updated to complete the DM_GPIO > conversion. > > The only remaining caller of name_to_gpio in generic code is inside the > !DM_GPIO block in cmd/gpio.c. DM_GPIO is always selected on sunxi, so > that code cannot be reached. And after this commit, there are only two > remaining implementations of name_to_gpio. > > Signed-off-by: Samuel Holland <samuel@sholland.org> Compile tested on all sunxi boards. Acked-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > > arch/arm/include/asm/arch-sunxi/gpio.h | 1 - > drivers/spi/spi-sunxi.c | 2 +- > drivers/video/Kconfig | 10 +++++----- > drivers/video/hitachi_tx18d42vm_lcd.c | 6 +++--- > drivers/video/sunxi/sunxi_display.c | 10 +++++----- > 5 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h > index 2969a530ae1..c93c051a19f 100644 > --- a/arch/arm/include/asm/arch-sunxi/gpio.h > +++ b/arch/arm/include/asm/arch-sunxi/gpio.h > @@ -244,7 +244,6 @@ int sunxi_gpio_set_drv(u32 pin, u32 val); > int sunxi_gpio_set_pull(u32 pin, u32 val); > int sunxi_name_to_gpio_bank(const char *name); > int sunxi_name_to_gpio(const char *name); > -#define name_to_gpio(name) sunxi_name_to_gpio(name) > > #if !defined CONFIG_SPL_BUILD && defined CONFIG_AXP_GPIO > int axp_gpio_init(void); > diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c > index 4ca5d3a93ac..bc2f544e863 100644 > --- a/drivers/spi/spi-sunxi.c > +++ b/drivers/spi/spi-sunxi.c > @@ -245,7 +245,7 @@ static int sun4i_spi_parse_pins(struct udevice *dev) > break; > } > > - pin = name_to_gpio(pin_name); > + pin = sunxi_name_to_gpio(pin_name); > if (pin < 0) > break; > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig > index b1f8a9c1e62..b0c52a500df 100644 > --- a/drivers/video/Kconfig > +++ b/drivers/video/Kconfig > @@ -452,7 +452,7 @@ config VIDEO_LCD_SSD2828_RESET > default "" > ---help--- > The reset pin of SSD2828 chip. This takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_TDO_TL070WSH30 > bool "TDO TL070WSH30 DSI LCD panel support" > @@ -477,7 +477,7 @@ config VIDEO_LCD_SPI_CS > This is one of the SPI communication pins, involved in setting up a > working LCD configuration. The exact role of SPI may differ for > different hardware setups. The option takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_SPI_SCLK > string "SPI SCLK pin for LCD related config job" > @@ -487,7 +487,7 @@ config VIDEO_LCD_SPI_SCLK > This is one of the SPI communication pins, involved in setting up a > working LCD configuration. The exact role of SPI may differ for > different hardware setups. The option takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_SPI_MOSI > string "SPI MOSI pin for LCD related config job" > @@ -497,7 +497,7 @@ config VIDEO_LCD_SPI_MOSI > This is one of the SPI communication pins, involved in setting up a > working LCD configuration. The exact role of SPI may differ for > different hardware setups. The option takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_SPI_MISO > string "SPI MISO pin for LCD related config job (optional)" > @@ -509,7 +509,7 @@ config VIDEO_LCD_SPI_MISO > different hardware setups. If wired up, this pin may provide additional > useful functionality. Such as bi-directional communication with the > hardware and LCD panel id retrieval (if the panel can report it). The > - option takes a string in the format understood by 'name_to_gpio' > + option takes a string in the format understood by 'sunxi_name_to_gpio' > function, e.g. PH1 for pin 1 of port H. > > source "drivers/video/meson/Kconfig" > diff --git a/drivers/video/hitachi_tx18d42vm_lcd.c b/drivers/video/hitachi_tx18d42vm_lcd.c > index c6c8df6a96e..87c4d27438a 100644 > --- a/drivers/video/hitachi_tx18d42vm_lcd.c > +++ b/drivers/video/hitachi_tx18d42vm_lcd.c > @@ -49,9 +49,9 @@ int hitachi_tx18d42vm_init(void) > }; > int i, cs, clk, mosi, ret = 0; > > - cs = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); > - clk = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); > - mosi = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); > + cs = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); > + clk = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); > + mosi = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); > > if (cs == -1 || clk == -1 || mosi == 1) { > printf("Error tx18d42vm spi gpio config is invalid\n"); > diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c > index 128888f7af1..da3e8988296 100644 > --- a/drivers/video/sunxi/sunxi_display.c > +++ b/drivers/video/sunxi/sunxi_display.c > @@ -871,11 +871,11 @@ static void sunxi_vga_external_dac_enable(void) > static int sunxi_ssd2828_init(const struct ctfb_res_modes *mode) > { > struct ssd2828_config cfg = { > - .csx_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), > - .sck_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), > - .sdi_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), > - .sdo_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), > - .reset_pin = name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), > + .csx_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), > + .sck_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), > + .sdi_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), > + .sdo_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), > + .reset_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), > .ssd2828_tx_clk_khz = CONFIG_VIDEO_LCD_SSD2828_TX_CLK * 1000, > .ssd2828_color_depth = 24, > #ifdef CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h index 2969a530ae1..c93c051a19f 100644 --- a/arch/arm/include/asm/arch-sunxi/gpio.h +++ b/arch/arm/include/asm/arch-sunxi/gpio.h @@ -244,7 +244,6 @@ int sunxi_gpio_set_drv(u32 pin, u32 val); int sunxi_gpio_set_pull(u32 pin, u32 val); int sunxi_name_to_gpio_bank(const char *name); int sunxi_name_to_gpio(const char *name); -#define name_to_gpio(name) sunxi_name_to_gpio(name) #if !defined CONFIG_SPL_BUILD && defined CONFIG_AXP_GPIO int axp_gpio_init(void); diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c index 4ca5d3a93ac..bc2f544e863 100644 --- a/drivers/spi/spi-sunxi.c +++ b/drivers/spi/spi-sunxi.c @@ -245,7 +245,7 @@ static int sun4i_spi_parse_pins(struct udevice *dev) break; } - pin = name_to_gpio(pin_name); + pin = sunxi_name_to_gpio(pin_name); if (pin < 0) break; diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index b1f8a9c1e62..b0c52a500df 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -452,7 +452,7 @@ config VIDEO_LCD_SSD2828_RESET default "" ---help--- The reset pin of SSD2828 chip. This takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_TDO_TL070WSH30 bool "TDO TL070WSH30 DSI LCD panel support" @@ -477,7 +477,7 @@ config VIDEO_LCD_SPI_CS This is one of the SPI communication pins, involved in setting up a working LCD configuration. The exact role of SPI may differ for different hardware setups. The option takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_SPI_SCLK string "SPI SCLK pin for LCD related config job" @@ -487,7 +487,7 @@ config VIDEO_LCD_SPI_SCLK This is one of the SPI communication pins, involved in setting up a working LCD configuration. The exact role of SPI may differ for different hardware setups. The option takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_SPI_MOSI string "SPI MOSI pin for LCD related config job" @@ -497,7 +497,7 @@ config VIDEO_LCD_SPI_MOSI This is one of the SPI communication pins, involved in setting up a working LCD configuration. The exact role of SPI may differ for different hardware setups. The option takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_SPI_MISO string "SPI MISO pin for LCD related config job (optional)" @@ -509,7 +509,7 @@ config VIDEO_LCD_SPI_MISO different hardware setups. If wired up, this pin may provide additional useful functionality. Such as bi-directional communication with the hardware and LCD panel id retrieval (if the panel can report it). The - option takes a string in the format understood by 'name_to_gpio' + option takes a string in the format understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. source "drivers/video/meson/Kconfig" diff --git a/drivers/video/hitachi_tx18d42vm_lcd.c b/drivers/video/hitachi_tx18d42vm_lcd.c index c6c8df6a96e..87c4d27438a 100644 --- a/drivers/video/hitachi_tx18d42vm_lcd.c +++ b/drivers/video/hitachi_tx18d42vm_lcd.c @@ -49,9 +49,9 @@ int hitachi_tx18d42vm_init(void) }; int i, cs, clk, mosi, ret = 0; - cs = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); - clk = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); - mosi = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); + cs = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); + clk = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); + mosi = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); if (cs == -1 || clk == -1 || mosi == 1) { printf("Error tx18d42vm spi gpio config is invalid\n"); diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c index 128888f7af1..da3e8988296 100644 --- a/drivers/video/sunxi/sunxi_display.c +++ b/drivers/video/sunxi/sunxi_display.c @@ -871,11 +871,11 @@ static void sunxi_vga_external_dac_enable(void) static int sunxi_ssd2828_init(const struct ctfb_res_modes *mode) { struct ssd2828_config cfg = { - .csx_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), - .sck_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), - .sdi_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), - .sdo_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), - .reset_pin = name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), + .csx_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), + .sck_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), + .sdi_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), + .sdo_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), + .reset_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), .ssd2828_tx_clk_khz = CONFIG_VIDEO_LCD_SSD2828_TX_CLK * 1000, .ssd2828_color_depth = 24, #ifdef CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
This clarifies which callers must be updated to complete the DM_GPIO conversion. The only remaining caller of name_to_gpio in generic code is inside the !DM_GPIO block in cmd/gpio.c. DM_GPIO is always selected on sunxi, so that code cannot be reached. And after this commit, there are only two remaining implementations of name_to_gpio. Signed-off-by: Samuel Holland <samuel@sholland.org> --- arch/arm/include/asm/arch-sunxi/gpio.h | 1 - drivers/spi/spi-sunxi.c | 2 +- drivers/video/Kconfig | 10 +++++----- drivers/video/hitachi_tx18d42vm_lcd.c | 6 +++--- drivers/video/sunxi/sunxi_display.c | 10 +++++----- 5 files changed, 14 insertions(+), 15 deletions(-)