mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-09-21 20:22:13 +08:00
ARM: spitz: Use software nodes to describe SPI CS lines
Convert the Spitz to use software nodes for specifying SPI CS. Because the SPI core can figure out the number of chipselects from the number of GPIO handles specified in properties, setting "num-cs" property is no longer needed. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20240628180852.1738922-6-dmitry.torokhov@gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
6eabaf9d6e
commit
224b9329fb
@ -341,6 +341,7 @@ static int __init pxa27x_init(void)
|
||||
register_syscore_ops(&pxa2xx_mfp_syscore_ops);
|
||||
|
||||
if (!of_have_populated_dt()) {
|
||||
software_node_register(&pxa2xx_gpiochip_node);
|
||||
pxa2xx_set_dmac_info(&pxa27x_dma_pdata);
|
||||
ret = platform_add_devices(devices,
|
||||
ARRAY_SIZE(devices));
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
#include <linux/gpio/property.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/platform_data/i2c-pxa.h>
|
||||
@ -28,6 +29,7 @@
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/memblock.h>
|
||||
|
||||
@ -128,7 +130,6 @@ static unsigned long spitz_pin_config[] __initdata = {
|
||||
GPIO1_GPIO | WAKEUP_ON_EDGE_FALL, /* SPITZ_GPIO_RESET */
|
||||
};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Scoop GPIO expander
|
||||
******************************************************************************/
|
||||
@ -565,18 +566,17 @@ static struct spi_board_info spitz_spi_devices[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table spitz_spi_gpio_table = {
|
||||
.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),
|
||||
GPIO_LOOKUP_IDX("gpio-pxa", SPITZ_GPIO_MAX1111_CS, "cs", 2, GPIO_ACTIVE_LOW),
|
||||
{ },
|
||||
},
|
||||
static const struct software_node_ref_args spitz_spi_gpio_refs[] = {
|
||||
SOFTWARE_NODE_REFERENCE(&pxa2xx_gpiochip_node, SPITZ_GPIO_ADS7846_CS,
|
||||
GPIO_ACTIVE_LOW),
|
||||
SOFTWARE_NODE_REFERENCE(&pxa2xx_gpiochip_node, SPITZ_GPIO_LCDCON_CS,
|
||||
GPIO_ACTIVE_LOW),
|
||||
SOFTWARE_NODE_REFERENCE(&pxa2xx_gpiochip_node, SPITZ_GPIO_MAX1111_CS,
|
||||
GPIO_ACTIVE_LOW),
|
||||
};
|
||||
|
||||
static const struct property_entry spitz_spi_properties[] = {
|
||||
PROPERTY_ENTRY_U32("num-cs", 3),
|
||||
PROPERTY_ENTRY_REF_ARRAY("gpios", spitz_spi_gpio_refs),
|
||||
{ }
|
||||
};
|
||||
|
||||
@ -598,7 +598,6 @@ static void __init spitz_spi_init(void)
|
||||
gpiod_add_lookup_table(&spitz_lcdcon_gpio_table);
|
||||
|
||||
gpiod_add_lookup_table(&spitz_ads7846_gpio_table);
|
||||
gpiod_add_lookup_table(&spitz_spi_gpio_table);
|
||||
|
||||
pd = platform_device_register_full(&spitz_spi_device_info);
|
||||
err = PTR_ERR_OR_ZERO(pd);
|
||||
|
Loading…
Reference in New Issue
Block a user