spi: move master of_node init to spi_alloc_master
Subsystems (10)
PATCH v3 1/3 spi: move master of_node init to spi_alloc_master
--- drivers/spi/spi-altera.c | 3 --- drivers/spi/spi-fsl-lib.c | 1 - drivers/spi/spi-imx.c | 1 - drivers/spi/spi-mpc512x-psc.c | 1 - drivers/spi/spi-mpc52xx-psc.c | 1 - drivers/spi/spi-mpc52xx.c | 1 - drivers/spi/spi-oc-tiny.c | 1 - drivers/spi/spi-ppc4xx.c | 1 - drivers/spi/spi-pxa2xx-pci.c | 1 - drivers/spi/spi-pxa2xx.c | 1 - drivers/spi/spi-tegra.c | 1 - drivers/spi/spi-xilinx.c | 1 - drivers/spi/spi.c | 1 + 13 files changed, 1 insertions(+), 14 deletions(-)
drivers/spi/spi-altera.c +0 -3
@@ -270,9 +270,6 @@ static int __devinit altera_spi_probe(struct platform_device *pdev)if (err) goto exit; } -/* find platform data */ -if (!platp) - hw->bitbang.master->dev.of_node = pdev->dev.of_node;/* register our spi controller */ err =spi_bitbang_start (&hw->bitbang);
drivers/spi/spi-fsl-lib.c +0 -1
@@ -133,7 +133,6 @@ int mpc8xxx_spi_probe(struct device *dev, struct resource *mem, master->transfer = mpc8xxx_spi_transfer; master->cleanup = mpc8xxx_spi_cleanup; - master->dev.of_node = dev->of_node; mpc8xxx_spi =spi_master_get_devdata (master); mpc8xxx_spi->dev = dev;
drivers/spi/spi-imx.c +0 -1
@@ -860,7 +860,6 @@ static int __devinit spi_imx_probe(struct platform_device *pdev) spi_imx->devtype_data->intctrl (spi_imx,0 ); - master->dev.of_node = pdev->dev.of_node; ret =spi_bitbang_start (&spi_imx->bitbang);if (ret) {dev_err (&pdev->dev,"bitbang start failed with %d\n" , ret);
drivers/spi/spi-mpc512x-psc.c +0 -1
@@ -441,7 +441,6 @@ static int __devinit mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr, master->setup = mpc512x_psc_spi_setup; master->transfer = mpc512x_psc_spi_transfer; master->cleanup = mpc512x_psc_spi_cleanup; - master->dev.of_node = dev->of_node; tempp =ioremap (regaddr, size);if (!tempp) {
drivers/spi/spi-mpc52xx-psc.c +0 -1
@@ -398,7 +398,6 @@ static int __devinit mpc52xx_psc_spi_do_probe(struct device *dev, u32 regaddr, master->setup = mpc52xx_psc_spi_setup; master->transfer = mpc52xx_psc_spi_transfer; master->cleanup = mpc52xx_psc_spi_cleanup; - master->dev.of_node = dev->of_node; mps->psc =ioremap (regaddr, size);if (!mps->psc) {
drivers/spi/spi-mpc52xx.c +0 -1
@@ -437,7 +437,6 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op) master->setup = mpc52xx_spi_setup; master->transfer = mpc52xx_spi_transfer; master->mode_bits =SPI_CPOL |SPI_CPHA |SPI_LSB_FIRST ; - master->dev.of_node = op->dev.of_node;dev_set_drvdata (&op->dev, master);
drivers/spi/spi-oc-tiny.c +0 -1
@@ -266,7 +266,6 @@ static int __devinit tiny_spi_of_probe(struct platform_device *pdev)if (hw->gpio_cs[i] <0 )return -ENODEV ; } - hw->bitbang.master->dev.of_node = pdev->dev.of_node; val =of_get_property (pdev->dev.of_node,"clock-frequency" , &len);if (val && len >=sizeof (__be32))
drivers/spi/spi-ppc4xx.c +0 -1
@@ -406,7 +406,6 @@ static int __init spi_ppc4xx_of_probe(struct platform_device *op) master =spi_alloc_master (dev,sizeof *hw);if (master ==NULL )return -ENOMEM ; - master->dev.of_node = np;dev_set_drvdata (dev, master); hw =spi_master_get_devdata (master); hw->master =spi_master_get (master);
drivers/spi/spi-pxa2xx-pci.c +0 -1
@@ -90,7 +90,6 @@ static int __devinit ce4100_spi_probe(struct pci_dev *dev, goto err_nomem; pdev->dev.parent = &dev->dev; - pdev->dev.of_node = dev->dev.of_node; ssp = &spi_info->ssp; ssp->phys_base =pci_resource_start (dev,0 ); ssp->mmio_base =ioremap (phys_beg, phys_len);
drivers/spi/spi-pxa2xx.c +0 -1
@@ -1557,7 +1557,6 @@ static int __devinit pxa2xx_spi_probe(struct platform_device *pdev) drv_data->ssp = ssp; master->dev.parent = &pdev->dev; - master->dev.of_node = pdev->dev.of_node;/* the spi->mode bits understood by this driver: */ master->mode_bits =SPI_CPOL |SPI_CPHA |SPI_CS_HIGH ;
drivers/spi/spi-tegra.c +0 -1
@@ -547,7 +547,6 @@ static int __devinit spi_tegra_probe(struct platform_device *pdev) tspi->rx_dma_req.req_sel = spi_tegra_req_sels[pdev->id]; tspi->rx_dma_req.dev = tspi; - master->dev.of_node = pdev->dev.of_node; ret =spi_register_master (master);if (ret <0 )
drivers/spi/spi-xilinx.c +0 -1
@@ -392,7 +392,6 @@ struct spi_master *xilinx_spi_init(struct device *dev, struct resource *mem, master->bus_num = bus_num; master->num_chipselect = num_cs; - master->dev.of_node = dev->of_node; xspi->mem = *mem; xspi->irq = irq;
drivers/spi/spi.c +1 -0
@@ -556,6 +556,7 @@ struct spi_master *spi_alloc_master(struct device *dev, unsigned size) master->dev.class = &spi_master_class; master->dev.parent =get_device (dev);spi_master_set_devdata (master, &master[1 ]); + master->dev.of_node = dev->of_node;return master; }
Signature · 1 line
1.7.7
PATCH v3 2/3 of_spi: add generic binding support to specify ncs gpio
This will allow to use gpio for chip select with no modification in the driver binding
When use the ncs-gpios, the gpio number will be passed via the controller_data and the number of chip select will automatically increased.
---
v3:
use devm_kzalloc
v2:
specify the gpio array at controller level
Best Regards,
J.
Documentation/devicetree/bindings/spi/spi-bus.txt | 6 +++ drivers/spi/spi.c | 49 +++++++++++++++++++- include/linux/spi/spi.h | 5 ++ 3 files changed, 57 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/spi/spi-bus.txt +6 -0
@@ -12,6 +12,7 @@ The SPI master node requires the following properties: - #size-cells - should be zero. - compatible - name of SPI bus controller following generic names recommended practice. +- ncs-gpios - (optional) gpios chip select. No other properties are required in the SPI bus node. It is assumed that a driver for an SPI bus device will understand that it is an SPI bus. However, the binding does not attempt to define the specific method for
@@ -21,6 +22,8 @@ assumption that board specific platform code will be used to manage chip selects. Individual drivers can define additional properties to support describing the chip select layout. +If ncs-gpios is used the number of chip select will automatically increased. + SPI slave nodes must be children of the SPI master node and can contain the following properties. - reg - (required) chip select address of device.
@@ -34,6 +37,9 @@ contain the following properties. - spi-cs-high - (optional) Empty property indicating device requires chip select active high +If a gpio chipselect is used for the SPI slave the gpio number will be passed +via the controller_data + SPI example for an MPC5200 SPI bus: spi at f00 { #address-cells = <1>;
drivers/spi/spi.c +46 -3
85 lines not on this page · raw message
include/linux/spi/spi.h +5 -0
@@ -318,6 +318,11 @@ struct spi_master {/* called on release() to free memory provided by spi_master */ void (*cleanup)(struct spi_device *spi); + +/* gpio chip select */ +int *chipselect_gpios; +int first_gpio_chipselect; +int num_gpio_chipselect; };static inline void *spi_master_get_devdata (struct spi_master *master)
Signature · 1 line
1.7.7
PATCH v3 2/3 of_spi: add generic binding support to specify ncs gpio
Quoted 29 lines · Jean-Christophe PLAGNIOL-VILLARD
This will allow to use gpio for chip select with no modification in the driver binding
When use the ncs-gpios, the gpio number will be passed via the
controller_dataand the number of chip select will automatically increased.Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>Cc devicetree-discuss at lists.ozlabs.orgCc spi-devel-general at lists.sourceforge.netCc Grant Likely <[email protected]>---
v3:
usedevm_kzallocv2:
specify the gpio array at controller levelBest Regards,
J.Documentation/devicetree/bindings/spi/spi-bus.txt | 6 +++ drivers/spi/spi.c | 49 +++++++++++++++++++- include/linux/spi/spi.h | 5 ++ 3 files changed, 57 insertions(+), 3 deletions(-)Documentation/devicetree/bindings/spi/spi-bus.txt +0
-0
Documentation/devicetree/bindings/spi/spi-bus.txt The SPI master node requires the following properties: · line 15
Quoted 4 lines
Documentation/devicetree/bindings/spi/spi-bus.txt +1
-0@@ -12,6 +12,7 @@ The SPI master node requires the following properties: - #size-cells - should be zero. - compatible - name of SPI bus controller following generic names recommended practice. +- ncs-gpios - (optional) gpios chip select.
ncs? What does the 'n' stand for?
Quoted 55 lines
Documentation/devicetree/bindings/spi/spi-bus.txt +5
-0No other properties are required in the SPI bus node. It is assumed that a driver for an SPI bus device will understand that it is an SPI bus. However, the binding does not attempt to define the specific method for@@ -21,6 +22,8 @@ assumption that board specific platform code will be used to manage chip selects. Individual drivers can define additional properties to support describing the chip select layout. +If ncs-gpios is used the number of chip select will automatically increased. + SPI slave nodes must be children of the SPI master node and can contain the following properties. - reg - (required) chip select address of device.@@ -34,6 +37,9 @@ contain the following properties. - spi-cs-high - (optional) Empty property indicating device requires chip select active high +If a gpio chipselect is used for the SPI slave the gpio number will be passed +via the controller_data + SPI example for an MPC5200 SPI bus: spi at f00 { #address-cells = <1>;drivers/spi/spi.c +5
-3@@ -28,6 +28,7 @@#include <linux/mod_devicetable.h> #include <linux/spi/spi.h> #include <linux/of_spi.h> +#include <linux/of_gpio.h> #include <linux/pm_runtime.h> #include <linux/export.h> @@ -339,15 +340,16 @@ EXPORT_SYMBOL_GPL(spi_alloc_device);int spi_add_device (struct spi_device *spi) {static DEFINE_MUTEX (spi_add_lock); -struct device *dev = spi->master->dev.parent; +struct spi_master *master = spi->master; +struct device *dev = master->dev.parent;struct device *d;int status;/* Chipselects are numbered 0..max; validate. */ -if (spi->chip_select >= spi->master->num_chipselect) { +if (spi->chip_select >= master->num_chipselect) {dev_err (dev,"cs%d >= max %d\n" , spi->chip_select, - spi->master->num_chipselect); + master->num_chipselect);return -EINVAL ; }
drivers/spi/spi.c int spi_add_device(struct spi_device *spi) · line 378
Quoted 6 lines
drivers/spi/spi.c +3
-0@@ -371,6 +373,13 @@ int spi_add_device(struct spi_device *spi) goto done; } +if (master->num_gpio_chipselect && + spi->chip_select >= master->first_gpio_chipselect) { +int num = spi->chip_select - master->first_gpio_chipselect;
I'd rather see an unconditional array of gpios; which only get used if a valid gpio number is assigned.
drivers/spi/spi.c int spi_add_device(struct spi_device *spi) · line 380
Quoted 2 lines
drivers/spi/spi.c +2
-0+ + spi->controller_data = (void *)master->chipselect_gpios[num];
Controller_data cannot be used here since it is provided for use by the controller driver.
Quoted 15 lines
drivers/spi/spi.c +8
-0+ } +/* Drivers may modify this initial i/o setup, but will * normally rely on the device being setup. Devices * using SPI_CS_HIGH can't coexist well otherwise... @@ -562,6 +571,36 @@ struct spi_master *spi_alloc_master(struct device *dev, unsigned size) }EXPORT_SYMBOL_GPL (spi_alloc_master); +static int of_spi_register_master (struct spi_master *master) +{ +int nb, i; +int *cs; +struct device_node *np = master->dev.of_node; +
drivers/spi/spi.c struct spi_master *spi_alloc_master(struct device *dev, unsigned size) · line 589
Quoted 10 lines
drivers/spi/spi.c +10
-0+if (!np) +return 0 ; + + nb =of_gpio_named_count (np,"ncs-gpios" ); + +if (nb <1 ) +return 0 ; + + cs =devm_kzalloc (&master->dev,sizeof (int ) * nb,GFP_KERNEL ); + master->chipselect_gpios = cs;
the chipselect gpios functionality should be available regardless of whether or not DT is used. This should be moved out of the of-specific register function.
drivers/spi/spi.c struct spi_master *spi_alloc_master(struct device *dev, unsigned size) · line 602
Quoted 13 lines
drivers/spi/spi.c +13
-0+ +if (!master->chipselect_gpios) +return -ENOMEM ; + + master->first_gpio_chipselect = master->num_chipselect; + master->num_chipselect += nb; + master->num_gpio_chipselect = nb; + +for (i =0 ; i < nb; i++) + cs[i] =of_get_named_gpio (np,"ncs-gpios" , i); + +return 0 ; +}
This function should be #ifdefed out when !OF
Quoted 20 lines
drivers/spi/spi.c +5
-0+/** * spi_register_master - register SPI master controller * @master: initialized master, originally from spi_alloc_master() @@ -593,6 +632,10 @@ int spi_register_master(struct spi_master *master)if (!dev)return -ENODEV ; + status =of_spi_register_master (master); +if (status) +return status; +/* even if it's just one always-selected device, there must * be at least one chipselect */ include/linux/spi/spi.h +0
-0
include/linux/spi/spi.h struct spi_master { · line 325
Quoted 8 lines
include/linux/spi/spi.h +5
-0@@ -318,6 +318,11 @@ struct spi_master {/* called on release() to free memory provided by spi_master */ void (*cleanup)(struct spi_device *spi); + +/* gpio chip select */ +int *chipselect_gpios; +int first_gpio_chipselect; +int num_gpio_chipselect;
s/chipselect/cs/ would be quite a bit less verbose
Quoted 6 lines
include/linux/spi/spi.h +0
-0};static inline void *spi_master_get_devdata (struct spi_master *master)Signature · 1 line
1.7.7
Signature · 1 line
email sent from notmuch.vim plugin
PATCH v3 2/3 of_spi: add generic binding support to specify ncs gpio
Quoted 25 lines · Grant Likely
Quoted 24 lines · Jean-Christophe PLAGNIOL-VILLARD
This will allow to use gpio for chip select with no modification in the driver binding
When use the ncs-gpios, the gpio number will be passed via the
controller_dataand the number of chip select will automatically increased.Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>Cc devicetree-discuss at lists.ozlabs.orgCc spi-devel-general at lists.sourceforge.netCc Grant Likely <[email protected]>---
v3:
usedevm_kzallocv2:
specify the gpio array at controller levelBest Regards,
J.Documentation/devicetree/bindings/spi/spi-bus.txt | 6 +++ drivers/spi/spi.c | 49 +++++++++++++++++++- include/linux/spi/spi.h | 5 ++ 3 files changed, 57 insertions(+), 3 deletions(-)
Quoted 11 lines
Documentation/devicetree/bindings/spi/spi-bus.txt The SPI master node requires the following properties: · line 15
Quoted 9 lines
Documentation/devicetree/bindings/spi/spi-bus.txt +1
-0@@ -12,6 +12,7 @@ The SPI master node requires the following properties: - #size-cells - should be zero. - compatible - name of SPI bus controller following generic names recommended practice. +- ncs-gpios - (optional) gpios chip select.ncs? What does the 'n' stand for?
for not chipslelect will remove
Quoted 59 lines
Quoted 59 lines
Documentation/devicetree/bindings/spi/spi-bus.txt +5
-0No other properties are required in the SPI bus node. It is assumed that a driver for an SPI bus device will understand that it is an SPI bus. However, the binding does not attempt to define the specific method for@@ -21,6 +22,8 @@ assumption that board specific platform code will be used to manage chip selects. Individual drivers can define additional properties to support describing the chip select layout. +If ncs-gpios is used the number of chip select will automatically increased. + SPI slave nodes must be children of the SPI master node and can contain the following properties. - reg - (required) chip select address of device.@@ -34,6 +37,9 @@ contain the following properties. - spi-cs-high - (optional) Empty property indicating device requires chip select active high +If a gpio chipselect is used for the SPI slave the gpio number will be passed +via the controller_data + SPI example for an MPC5200 SPI bus: spi at f00 { #address-cells = <1>;drivers/spi/spi.c +5
-3@@ -28,6 +28,7 @@#include <linux/mod_devicetable.h> #include <linux/spi/spi.h> #include <linux/of_spi.h> +#include <linux/of_gpio.h> #include <linux/pm_runtime.h> #include <linux/export.h> @@ -339,15 +340,16 @@ EXPORT_SYMBOL_GPL(spi_alloc_device);int spi_add_device (struct spi_device *spi) {static DEFINE_MUTEX (spi_add_lock); -struct device *dev = spi->master->dev.parent; +struct spi_master *master = spi->master; +struct device *dev = master->dev.parent;struct device *d;int status;/* Chipselects are numbered 0..max; validate. */ -if (spi->chip_select >= spi->master->num_chipselect) { +if (spi->chip_select >= master->num_chipselect) {dev_err (dev,"cs%d >= max %d\n" , spi->chip_select, - spi->master->num_chipselect); + master->num_chipselect);return -EINVAL ; }@@ -371,6 +373,13 @@ int spi_add_device(struct spi_device *spi) goto done; }
Quoted 6 lines
drivers/spi/spi.c int spi_add_device(struct spi_device *spi) · line 378
Quoted 3 lines
drivers/spi/spi.c +3
-0+if (master->num_gpio_chipselect && + spi->chip_select >= master->first_gpio_chipselect) { +int num = spi->chip_select - master->first_gpio_chipselect;I'd rather see an unconditional array of gpios; which only get used if a valid gpio number is assigned.
I want to have this transparent for the driver
I don't want it to manage this. The driver just need to known it's cs-gpio and wich one
Quoted 6 lines
drivers/spi/spi.c int spi_add_device(struct spi_device *spi) · line 380
Quoted 3 lines
drivers/spi/spi.c +2
-0+ + spi->controller_data = (void *)master->chipselect_gpios[num];
Controller_datacannot be used here since it is provided for use by the controller driver.
a new entry cs_gpio in the spi_device
Quoted 22 lines
Quoted 22 lines
drivers/spi/spi.c +14
-0+ } +/* Drivers may modify this initial i/o setup, but will * normally rely on the device being setup. Devices * using SPI_CS_HIGH can't coexist well otherwise... @@ -562,6 +571,36 @@ struct spi_master *spi_alloc_master(struct device *dev, unsigned size) }EXPORT_SYMBOL_GPL (spi_alloc_master); +static int of_spi_register_master (struct spi_master *master) +{ +int nb, i; +int *cs; +struct device_node *np = master->dev.of_node; + +if (!np) +return 0 ; + + nb =of_gpio_named_count (np,"ncs-gpios" ); + +if (nb <1 )
Quoted 8 lines
drivers/spi/spi.c struct spi_master *spi_alloc_master(struct device *dev, unsigned size) · line 589
Quoted 4 lines
drivers/spi/spi.c +4
-0+return 0 ; + + cs =devm_kzalloc (&master->dev,sizeof (int ) * nb,GFP_KERNEL ); + master->chipselect_gpios = cs;the chipselect gpios functionality should be available regardless of whether or not DT is used. This should be moved out of the of-specific register function.
it's the case here it's just the management on the binding
Quoted 38 lines
Quoted 4 lines
drivers/spi/spi.c +3
-0+ +if (!master->chipselect_gpios) +return -ENOMEM ;drivers/spi/spi.c struct spi_master *spi_alloc_master(struct device *dev, unsigned size) · line 602
Quoted 10 lines
drivers/spi/spi.c +10
-0+ + master->first_gpio_chipselect = master->num_chipselect; + master->num_chipselect += nb; + master->num_gpio_chipselect = nb; + +for (i =0 ; i < nb; i++) + cs[i] =of_get_named_gpio (np,"ncs-gpios" , i); + +return 0 ; +}This function should be #ifdefed out when !OF
Quoted 21 lines
drivers/spi/spi.c +5
-0+/** * spi_register_master - register SPI master controller * @master: initialized master, originally from spi_alloc_master() @@ -593,6 +632,10 @@ int spi_register_master(struct spi_master *master)if (!dev)return -ENODEV ; + status =of_spi_register_master (master); +if (status) +return status; +/* even if it's just one always-selected device, there must * be at least one chipselect */ include/linux/spi/spi.h +0
-0@@ -318,6 +318,11 @@ struct spi_master {
Quoted 9 lines
include/linux/spi/spi.h struct spi_master { · line 325
Quoted 7 lines
include/linux/spi/spi.h +5
-0/* called on release() to free memory provided by spi_master */ void (*cleanup)(struct spi_device *spi); + +/* gpio chip select */ +int *chipselect_gpios; +int first_gpio_chipselect; +int num_gpio_chipselect;s/chipselect/cs/ would be quite a bit less verbose
ok
Quoted 2 lines
include/linux/spi/spi.h struct spi_master { · line 326
Quoted 2 lines
include/linux/spi/spi.h +0
-0};
Best Regards,
J.
Quoted 8 lines
Quoted 5 lines
include/linux/spi/spi.h +0
-0static inline void *spi_master_get_devdata (struct spi_master *master)Signature · 1 line
1.7.7Signature · 1 line
email sent from notmuch.vim plugin
PATCH v3 3/3 spi/atmel: add DT support
In reply to Jean-Christophe PLAGNIOL-VILLARDThe atmel_spi use only gpio for chip select.
--- .../devicetree/bindings/spi/spi_atmel.txt | 6 ++++++ drivers/spi/spi-atmel.c | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletions(-) create mode 100644 Documentation/devicetree/bindings/spi/spi_atmel.txt
Documentation/devicetree/bindings/spi/spi_atmel.txt new file +6 -0
@@ -0,0 +1,6 @@ +Atmel SPI device + +Required properties: +- compatible : should be "atmel,at91rm9200-spi". +- reg: Address and length of the register set for the device +- interrupts: Should contain macb interrupt
drivers/spi/spi-atmel.c +11 -1
@@ -19,6 +19,7 @@#include <linux/interrupt.h> #include <linux/spi/spi.h> #include <linux/slab.h> +#include <linux/of.h> #include <asm/io.h> #include <mach/board.h>
@@ -938,7 +939,7 @@ static int __devinit atmel_spi_probe(struct platform_device *pdev) master->mode_bits =SPI_CPOL |SPI_CPHA |SPI_CS_HIGH ; master->bus_num = pdev->id; - master->num_chipselect =4 ; + master->num_chipselect = master->dev.of_node ?0 :4 ; master->setup = atmel_spi_setup; master->transfer = atmel_spi_transfer; master->cleanup = atmel_spi_cleanup;
@@ -1064,11 +1065,20 @@ static int atmel_spi_resume(struct platform_device *pdev)#define atmel_spi_resume NULL#endif +#if defined(CONFIG_OF ) +static const struct of_device_id atmel_spi_dt_ids[] = { + { .compatible ="atmel,at91rm9200-spi" }, + {/* sentinel */ } +}; + +MODULE_DEVICE_TABLE (of, atmel_spi_dt_ids); +#endif static struct platform_driver atmel_spi_driver = { .driver = { .name ="atmel_spi" , .owner =THIS_MODULE , + .of_match_table =of_match_ptr (atmel_spi_dt_ids), }, .suspend = atmel_spi_suspend, .resume = atmel_spi_resume,
Signature · 1 line
1.7.7
PATCH v3 1/3 spi: move master of_node init to spi_alloc_master
In reply to Jean-Christophe PLAGNIOL-VILLARDQuoted 4 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>Cc devicetree-discuss at lists.ozlabs.orgCc spi-devel-general at lists.sourceforge.netCc Grant Likely <[email protected]>
Actually, the of_node pointer setting was purposefully left out of spi_alloc_master() because it is not necesarily true that the dt node associated with the struct device will be the node where all the spi children are parented. I want to leave this initialization in the drivers.
g.