summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2021-11-23 21:27:21 +0200
committerMark Brown <broonie@kernel.org>2021-11-29 12:19:58 +0000
commit342e3ce0f6f4691b31b1c7c9c3ae37160c4a82d2 (patch)
tree22ffb33acbc93c8db4c32437b98e3304e8cbc6a2
parentf89d2cc3967af9948ffc58e4cc9a1331f1c4971a (diff)
downloadlinux-342e3ce0f6f4691b31b1c7c9c3ae37160c4a82d2.tar.gz
linux-342e3ce0f6f4691b31b1c7c9c3ae37160c4a82d2.tar.bz2
linux-342e3ce0f6f4691b31b1c7c9c3ae37160c4a82d2.zip
ARM: pxa/lubbock: Replace custom ->cs_control() by GPIO lookup table
SPI PXA2xx driver supports GPIO chipselect by querying for known GPIO connection ID. Replace custom ->cs_control() by GPIO table, so the driver will use generic approach on this platform. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20211123192723.44537-1-andriy.shevchenko@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--arch/arm/mach-pxa/lubbock.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index 742d18a1f7dc..e2411971422d 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -211,16 +211,17 @@ static struct ads7846_platform_data ads_info = {
// .y_plate_ohms = 500, /* GUESS! */
};
-static void ads7846_cs(u32 command)
-{
- static const unsigned TS_nCS = 1 << 11;
- lubbock_set_misc_wr(TS_nCS, (command == PXA2XX_CS_ASSERT) ? 0 : TS_nCS);
-}
+static struct gpiod_lookup_table ads7846_cs_gpios = {
+ .dev_id = "ads7846",
+ .table = {
+ GPIO_LOOKUP("lubbock", 11, "cs", GPIO_ACTIVE_LOW),
+ {}
+ },
+};
static struct pxa2xx_spi_chip ads_hw = {
.tx_threshold = 1,
.rx_threshold = 2,
- .cs_control = ads7846_cs,
};
static struct spi_board_info spi_board_info[] __initdata = { {
@@ -512,6 +513,8 @@ static void __init lubbock_init(void)
lubbock_flash_data[flashboot].name = "boot-rom";
(void) platform_add_devices(devices, ARRAY_SIZE(devices));
+ gpiod_add_lookup_table(&ads7846_cs_gpios);
+
pxa2xx_set_spi_info(1, &pxa_ssp_master_info);
spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
}