Loading Documentation/devicetree/bindings/spi/efm32-spi.txt +7 −6 Original line number Diff line number Diff line Loading @@ -10,11 +10,12 @@ Required properties: - cs-gpios: see spi-bus.txt Recommended properties : - efm32,location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. If "efm32,location" property is not provided, keeping what is already configured in the hardware, so its either the reset default 0 or whatever the bootloader did. - energymicro,location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. If this property is not provided, keeping what is already configured in the hardware, so its either the reset default 0 or whatever the bootloader did. Example: Loading @@ -26,7 +27,7 @@ spi1: spi@0x4000c400 { /* USART1 */ interrupts = <15 16>; clocks = <&cmu 20>; cs-gpios = <&gpio 51 1>; // D3 efm32,location = <1>; energymicro,location = <1>; status = "ok"; ks8851@0 { Loading Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.txt 0 → 100644 +28 −0 Original line number Diff line number Diff line Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface. Required properties: - compatible : "snps,dw-apb-ssi" - reg : The register base for the controller. - interrupts : One interrupt, used by the controller. - #address-cells : <1>, as required by generic SPI binding. - #size-cells : <0>, also as required by generic SPI binding. Optional properties: - cs-gpios : Specifies the gpio pis to be used for chipselects. - num-cs : The number of chipselects. If omitted, this will default to 4. Child nodes as per the generic SPI binding. Example: spi@fff00000 { compatible = "snps,dw-apb-ssi"; reg = <0xfff00000 0x1000>; interrupts = <0 154 4>; #address-cells = <1>; #size-cells = <0>; num-cs = <2>; cs-gpios = <&gpio0 13 0>, <&gpio0 14 0>; }; drivers/spi/spi-dw-mmio.c +18 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,9 @@ #include <linux/spi/spi.h> #include <linux/scatterlist.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_gpio.h> #include <linux/of_platform.h> #include "spi-dw.h" Loading @@ -33,6 +35,7 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) struct dw_spi *dws; struct resource *mem; int ret; int num_cs; dwsmmio = devm_kzalloc(&pdev->dev, sizeof(struct dw_spi_mmio), GFP_KERNEL); Loading Loading @@ -68,9 +71,16 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) return ret; dws->bus_num = pdev->id; dws->num_cs = 4; dws->max_freq = clk_get_rate(dwsmmio->clk); num_cs = 4; if (pdev->dev.of_node) of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs); dws->num_cs = num_cs; if (pdev->dev.of_node) { int i; Loading Loading @@ -114,12 +124,19 @@ static int dw_spi_mmio_remove(struct platform_device *pdev) return 0; } static const struct of_device_id dw_spi_mmio_of_match[] = { { .compatible = "snps,dw-apb-ssi", }, { /* end of table */} }; MODULE_DEVICE_TABLE(of, dw_spi_mmio_of_match); static struct platform_driver dw_spi_mmio_driver = { .probe = dw_spi_mmio_probe, .remove = dw_spi_mmio_remove, .driver = { .name = DRIVER_NAME, .owner = THIS_MODULE, .of_match_table = dw_spi_mmio_of_match, }, }; module_platform_driver(dw_spi_mmio_driver); Loading drivers/spi/spi-efm32.c +7 −1 Original line number Diff line number Diff line Loading @@ -294,10 +294,16 @@ static void efm32_spi_probe_dt(struct platform_device *pdev, u32 location; int ret; ret = of_property_read_u32(np, "energymicro,location", &location); if (ret) /* fall back to wrongly namespaced property */ ret = of_property_read_u32(np, "efm32,location", &location); if (ret) /* fall back to old and (wrongly) generic property "location" */ ret = of_property_read_u32(np, "location", &location); if (!ret) { dev_dbg(&pdev->dev, "using location %u\n", location); } else { Loading drivers/spi/spi-fsl-lib.c +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ int of_mpc8xxx_spi_probe(struct platform_device *ofdev) pinfo = devm_kzalloc(&ofdev->dev, sizeof(*pinfo), GFP_KERNEL); if (!pinfo) return -ENOMEM; return ret; pdata = &pinfo->pdata; dev->platform_data = pdata; Loading Loading
Documentation/devicetree/bindings/spi/efm32-spi.txt +7 −6 Original line number Diff line number Diff line Loading @@ -10,11 +10,12 @@ Required properties: - cs-gpios: see spi-bus.txt Recommended properties : - efm32,location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. If "efm32,location" property is not provided, keeping what is already configured in the hardware, so its either the reset default 0 or whatever the bootloader did. - energymicro,location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. If this property is not provided, keeping what is already configured in the hardware, so its either the reset default 0 or whatever the bootloader did. Example: Loading @@ -26,7 +27,7 @@ spi1: spi@0x4000c400 { /* USART1 */ interrupts = <15 16>; clocks = <&cmu 20>; cs-gpios = <&gpio 51 1>; // D3 efm32,location = <1>; energymicro,location = <1>; status = "ok"; ks8851@0 { Loading
Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.txt 0 → 100644 +28 −0 Original line number Diff line number Diff line Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface. Required properties: - compatible : "snps,dw-apb-ssi" - reg : The register base for the controller. - interrupts : One interrupt, used by the controller. - #address-cells : <1>, as required by generic SPI binding. - #size-cells : <0>, also as required by generic SPI binding. Optional properties: - cs-gpios : Specifies the gpio pis to be used for chipselects. - num-cs : The number of chipselects. If omitted, this will default to 4. Child nodes as per the generic SPI binding. Example: spi@fff00000 { compatible = "snps,dw-apb-ssi"; reg = <0xfff00000 0x1000>; interrupts = <0 154 4>; #address-cells = <1>; #size-cells = <0>; num-cs = <2>; cs-gpios = <&gpio0 13 0>, <&gpio0 14 0>; };
drivers/spi/spi-dw-mmio.c +18 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,9 @@ #include <linux/spi/spi.h> #include <linux/scatterlist.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_gpio.h> #include <linux/of_platform.h> #include "spi-dw.h" Loading @@ -33,6 +35,7 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) struct dw_spi *dws; struct resource *mem; int ret; int num_cs; dwsmmio = devm_kzalloc(&pdev->dev, sizeof(struct dw_spi_mmio), GFP_KERNEL); Loading Loading @@ -68,9 +71,16 @@ static int dw_spi_mmio_probe(struct platform_device *pdev) return ret; dws->bus_num = pdev->id; dws->num_cs = 4; dws->max_freq = clk_get_rate(dwsmmio->clk); num_cs = 4; if (pdev->dev.of_node) of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs); dws->num_cs = num_cs; if (pdev->dev.of_node) { int i; Loading Loading @@ -114,12 +124,19 @@ static int dw_spi_mmio_remove(struct platform_device *pdev) return 0; } static const struct of_device_id dw_spi_mmio_of_match[] = { { .compatible = "snps,dw-apb-ssi", }, { /* end of table */} }; MODULE_DEVICE_TABLE(of, dw_spi_mmio_of_match); static struct platform_driver dw_spi_mmio_driver = { .probe = dw_spi_mmio_probe, .remove = dw_spi_mmio_remove, .driver = { .name = DRIVER_NAME, .owner = THIS_MODULE, .of_match_table = dw_spi_mmio_of_match, }, }; module_platform_driver(dw_spi_mmio_driver); Loading
drivers/spi/spi-efm32.c +7 −1 Original line number Diff line number Diff line Loading @@ -294,10 +294,16 @@ static void efm32_spi_probe_dt(struct platform_device *pdev, u32 location; int ret; ret = of_property_read_u32(np, "energymicro,location", &location); if (ret) /* fall back to wrongly namespaced property */ ret = of_property_read_u32(np, "efm32,location", &location); if (ret) /* fall back to old and (wrongly) generic property "location" */ ret = of_property_read_u32(np, "location", &location); if (!ret) { dev_dbg(&pdev->dev, "using location %u\n", location); } else { Loading
drivers/spi/spi-fsl-lib.c +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ int of_mpc8xxx_spi_probe(struct platform_device *ofdev) pinfo = devm_kzalloc(&ofdev->dev, sizeof(*pinfo), GFP_KERNEL); if (!pinfo) return -ENOMEM; return ret; pdata = &pinfo->pdata; dev->platform_data = pdata; Loading