lkml.org 
[lkml]   [2022]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 04/88] ARM: pxa2xx: Fix GPIO descriptor tables
    Date
    From: Linus Walleij <linus.walleij@linaro.org>

    commit c5cdb9286913aa5a5ebb81bcca0c17df3b0e2c79 upstream.

    Laurence reports:

    "Kernel >5.18 on Zaurus has a bug where the power management code can't
    talk to devices, emitting the following errors:

    sharpsl-pm sharpsl-pm: Error: AC check failed: voltage -22.
    sharpsl-pm sharpsl-pm: Charging Error!
    sharpsl-pm sharpsl-pm: Warning: Cannot read main battery!

    Looking at the recent changes, I found that commit 31455bbda208 ("spi:
    pxa2xx_spi: Convert to use GPIO descriptors") replaced the deprecated
    SPI chip select platform device code with a gpiod lookup table. However,
    this didn't seem to work until I changed the `dev_id` member from the
    device name to the bus id. I'm not entirely sure why this is necessary,
    but I suspect it is related to the fact that in sysfs SPI devices are
    attached under /sys/devices/.../dev_name/spi_master/spiB/spiB.C, rather
    than directly to the device."

    After reviewing the change I conclude that the same fix is needed
    for all affected boards.

    Fixes: 31455bbda208 ("spi: pxa2xx_spi: Convert to use GPIO descriptors")
    Reported-by: Laurence de Bruxelles <lfdebrux@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220722114611.1517414-1-linus.walleij@linaro.org'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/arm/mach-pxa/corgi.c | 2 +-
    arch/arm/mach-pxa/hx4700.c | 2 +-
    arch/arm/mach-pxa/icontrol.c | 4 ++--
    arch/arm/mach-pxa/littleton.c | 2 +-
    arch/arm/mach-pxa/magician.c | 2 +-
    arch/arm/mach-pxa/spitz.c | 2 +-
    arch/arm/mach-pxa/z2.c | 4 ++--
    7 files changed, 9 insertions(+), 9 deletions(-)

    --- a/arch/arm/mach-pxa/corgi.c
    +++ b/arch/arm/mach-pxa/corgi.c
    @@ -531,7 +531,7 @@ static struct pxa2xx_spi_controller corg
    };

    static struct gpiod_lookup_table corgi_spi_gpio_table = {
    - .dev_id = "pxa2xx-spi.1",
    + .dev_id = "spi1",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", CORGI_GPIO_ADS7846_CS, "cs", 0, GPIO_ACTIVE_LOW),
    GPIO_LOOKUP_IDX("gpio-pxa", CORGI_GPIO_LCDCON_CS, "cs", 1, GPIO_ACTIVE_LOW),
    --- a/arch/arm/mach-pxa/hx4700.c
    +++ b/arch/arm/mach-pxa/hx4700.c
    @@ -635,7 +635,7 @@ static struct pxa2xx_spi_controller pxa_
    };

    static struct gpiod_lookup_table pxa_ssp2_gpio_table = {
    - .dev_id = "pxa2xx-spi.2",
    + .dev_id = "spi2",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", GPIO88_HX4700_TSC2046_CS, "cs", 0, GPIO_ACTIVE_LOW),
    { },
    --- a/arch/arm/mach-pxa/icontrol.c
    +++ b/arch/arm/mach-pxa/icontrol.c
    @@ -140,7 +140,7 @@ struct platform_device pxa_spi_ssp4 = {
    };

    static struct gpiod_lookup_table pxa_ssp3_gpio_table = {
    - .dev_id = "pxa2xx-spi.3",
    + .dev_id = "spi3",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", ICONTROL_MCP251x_nCS1, "cs", 0, GPIO_ACTIVE_LOW),
    GPIO_LOOKUP_IDX("gpio-pxa", ICONTROL_MCP251x_nCS2, "cs", 1, GPIO_ACTIVE_LOW),
    @@ -149,7 +149,7 @@ static struct gpiod_lookup_table pxa_ssp
    };

    static struct gpiod_lookup_table pxa_ssp4_gpio_table = {
    - .dev_id = "pxa2xx-spi.4",
    + .dev_id = "spi4",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", ICONTROL_MCP251x_nCS3, "cs", 0, GPIO_ACTIVE_LOW),
    GPIO_LOOKUP_IDX("gpio-pxa", ICONTROL_MCP251x_nCS4, "cs", 1, GPIO_ACTIVE_LOW),
    --- a/arch/arm/mach-pxa/littleton.c
    +++ b/arch/arm/mach-pxa/littleton.c
    @@ -208,7 +208,7 @@ static struct spi_board_info littleton_s
    };

    static struct gpiod_lookup_table littleton_spi_gpio_table = {
    - .dev_id = "pxa2xx-spi.2",
    + .dev_id = "spi2",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", LITTLETON_GPIO_LCD_CS, "cs", 0, GPIO_ACTIVE_LOW),
    { },
    --- a/arch/arm/mach-pxa/magician.c
    +++ b/arch/arm/mach-pxa/magician.c
    @@ -946,7 +946,7 @@ static struct pxa2xx_spi_controller magi
    };

    static struct gpiod_lookup_table magician_spi_gpio_table = {
    - .dev_id = "pxa2xx-spi.2",
    + .dev_id = "spi2",
    .table = {
    /* NOTICE must be GPIO, incompatibility with hw PXA SPI framing */
    GPIO_LOOKUP_IDX("gpio-pxa", GPIO14_MAGICIAN_TSC2046_CS, "cs", 0, GPIO_ACTIVE_LOW),
    --- a/arch/arm/mach-pxa/spitz.c
    +++ b/arch/arm/mach-pxa/spitz.c
    @@ -578,7 +578,7 @@ static struct pxa2xx_spi_controller spit
    };

    static struct gpiod_lookup_table spitz_spi_gpio_table = {
    - .dev_id = "pxa2xx-spi.2",
    + .dev_id = "spi2",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", SPITZ_GPIO_ADS7846_CS, "cs", 0, GPIO_ACTIVE_LOW),
    GPIO_LOOKUP_IDX("gpio-pxa", SPITZ_GPIO_LCDCON_CS, "cs", 1, GPIO_ACTIVE_LOW),
    --- a/arch/arm/mach-pxa/z2.c
    +++ b/arch/arm/mach-pxa/z2.c
    @@ -623,7 +623,7 @@ static struct pxa2xx_spi_controller pxa_
    };

    static struct gpiod_lookup_table pxa_ssp1_gpio_table = {
    - .dev_id = "pxa2xx-spi.1",
    + .dev_id = "spi1",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", GPIO24_ZIPITZ2_WIFI_CS, "cs", 0, GPIO_ACTIVE_LOW),
    { },
    @@ -631,7 +631,7 @@ static struct gpiod_lookup_table pxa_ssp
    };

    static struct gpiod_lookup_table pxa_ssp2_gpio_table = {
    - .dev_id = "pxa2xx-spi.2",
    + .dev_id = "spi2",
    .table = {
    GPIO_LOOKUP_IDX("gpio-pxa", GPIO88_ZIPITZ2_LCD_CS, "cs", 0, GPIO_ACTIVE_LOW),
    { },

    \
     
     \ /
      Last update: 2022-08-01 14:13    [W:3.129 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site