On Fri, 21 Jan 2022 02:20:14 +0100 Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > This converts the PXA2xx SPI driver to use GPIO descriptors > exclusively to retrieve GPIO chip select lines. > > The device tree and ACPI paths of the driver already use > descriptors, hence ->use_gpio_descriptors is already set and > this codepath is well tested. > > Convert all the PXA boards providing chip select GPIOs as > platform data and drop the old GPIO chipselect handling in > favor of the core managing it exclusively. > > Cc: Marek Vasut <marek.vasut@xxxxxxxxx> > Cc: Daniel Mack <daniel@xxxxxxxxxx> > Cc: Haojian Zhuang <haojian.zhuang@xxxxxxxxx> > Cc: Robert Jarzmik <robert.jarzmik@xxxxxxx> > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > Documentation/spi/pxa2xx.rst | 3 -- > arch/arm/mach-pxa/corgi.c | 26 +++++++--------- > arch/arm/mach-pxa/hx4700.c | 10 +++++- > arch/arm/mach-pxa/icontrol.c | 26 +++++++++++++--- > arch/arm/mach-pxa/littleton.c | 10 +++++- > arch/arm/mach-pxa/magician.c | 12 +++++-- > arch/arm/mach-pxa/poodle.c | 14 ++++++--- > arch/arm/mach-pxa/spitz.c | 26 +++++++--------- > arch/arm/mach-pxa/stargate2.c | 21 +++++++++++-- > arch/arm/mach-pxa/z2.c | 20 ++++++++++-- > drivers/spi/spi-pxa2xx.c | 57 ---------------------------------- > include/linux/spi/pxa2xx_spi.h | 1 - > 12 files changed, 117 insertions(+), 109 deletions(-) > ... > diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c > index 8ca02ec1d44c..650043023006 100644 > --- a/arch/arm/mach-pxa/stargate2.c > +++ b/arch/arm/mach-pxa/stargate2.c > @@ -346,6 +346,23 @@ static struct pxa2xx_spi_controller pxa_ssp_master_2_info = { > .num_chipselect = 1, > }; > > +static struct gpiod_lookup_table pxa_ssp1_gpio_table = { > + .dev_id = "pxa2xx-spi.1", > + .table = { > + GPIO_LOOKUP_IDX("gpio-pxa", 24, "cs", 0, GPIO_ACTIVE_LOW), > + { }, > + }, > +}; > + > +static struct gpiod_lookup_table pxa_ssp3_gpio_table = { > + .dev_id = "pxa2xx-spi.3", > + .table = { > + GPIO_LOOKUP_IDX("gpio-pxa", 39, "cs", 0, GPIO_ACTIVE_LOW), > + { }, > + }, > +}; > + Nitpick, one line will do. As a side note I have a patch outstanding (from May 2021) to drop stargate2/imote2 on basis that I strongly suspect I'm the only person who still has access to hardware and I've not booted one for a few years. https://lore.kernel.org/all/20210523163606.1966355-1-jic23@xxxxxxxxxx/ Patch still applies cleanly. In meantime for stargate2/imote2 (same file) Should both patches go in the merge conflict will be very obvious ;) Acked-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > + > /* An upcoming kernel change will scrap SFRM usage so these > * drivers have been moved to use GPIOs */ > static struct pxa2xx_spi_chip staccel_chip_info = { > @@ -353,7 +370,6 @@ static struct pxa2xx_spi_chip staccel_chip_info = { > .rx_threshold = 8, > .dma_burst_size = 8, > .timeout = 235, > - .gpio_cs = 24, > }; > > static struct pxa2xx_spi_chip cc2420_info = { > @@ -361,7 +377,6 @@ static struct pxa2xx_spi_chip cc2420_info = { > .rx_threshold = 8, > .dma_burst_size = 8, > .timeout = 235, > - .gpio_cs = 39, > }; > > static struct spi_board_info spi_board_info[] __initdata = { > @@ -410,6 +425,8 @@ static void __init imote2_stargate2_init(void) > pxa_set_btuart_info(NULL); > pxa_set_stuart_info(NULL); > > + gpiod_add_lookup_table(&pxa_ssp1_gpio_table); > + gpiod_add_lookup_table(&pxa_ssp3_gpio_table); > pxa2xx_set_spi_info(1, &pxa_ssp_master_0_info); > pxa2xx_set_spi_info(2, &pxa_ssp_master_1_info); > pxa2xx_set_spi_info(3, &pxa_ssp_master_2_info);