spi: sh-msiof: Remove unneeded clock name
Subsystems (3)
PATCH v2 1/4 spi: sh-msiof: Remove unneeded clock name
From: Bastian Hecht <[email protected]>
clk_get() no longer needs a character string for associating the right clock as this is done via the device struct now.
---
v2: no changes
drivers/spi/spi-sh-msiof.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/spi/spi-sh-msiof.c +2 -4
@@ -597,7 +597,6 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)struct resource *r;struct spi_master *master;struct sh_msiof_spi_priv *p; -char clk_name[16 ];int i;int ret;
@@ -614,10 +613,9 @@ static int sh_msiof_spi_probe(struct platform_device *pdev) p->info = pdev->dev.platform_data;init_completion (&p->done); -snprintf (clk_name,sizeof (clk_name),"msiof%d" , pdev->id); - p->clk =clk_get (&pdev->dev, clk_name); + p->clk =clk_get (&pdev->dev,NULL );if (IS_ERR (p->clk)) { -dev_err (&pdev->dev,"cannot get clock \"%s\"\n" , clk_name); +dev_err (&pdev->dev,"cannot get clock\n" ); ret =PTR_ERR (p->clk); goto err1; }
Signature · 1 line
1.7.9.5
PATCH v2 2/4 spi: Add SH Mobile series as dependency to MSIOF controller
From: Bastian Hecht <[email protected]>
The MSIOF hardware block is used in the SH Mobile series as well, so we add it here.
---
v2: no changes
drivers/spi/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/spi/Kconfig +2 -2
@@ -341,10 +341,10 @@ config SPI_SC18IS602 config SPI_SH_MSIOF tristate "SuperH MSIOF SPI controller" - depends on SUPERH && HAVE_CLK + depends on (SUPERH || ARCH_SHMOBILE) && HAVE_CLK select SPI_BITBANG help - SPI driver for SuperH MSIOF blocks. + SPI driver for SuperH and SH Mobile MSIOF blocks. config SPI_SH tristate "SuperH SPI controller"
Signature · 1 line
1.7.9.5
PATCH v2 2/4 spi: Add SH Mobile series as dependency to MSIOF controller
Quoted 7 lines · Bastian Hecht
From: Bastian Hecht <[email protected]>
The MSIOF hardware block is used in the SH Mobile series as well, so we add it here.
Signed-off-by Bastian Hecht <[email protected]>---
Also already applied.
g.
PATCH v2 3/4 spi: sh-msiof: Add device tree parsing to driver
In reply to Bastian HechtFrom: Bastian Hecht <[email protected]>
This adds the capability to retrieve setup data from the device tree node. The usage of platform data is still available.
---
v2:
- renamed property "chip_select" to "num-cs"
- renamed property "tx_fifo_size" to "renesas,tx-fifo-size"
- renamed property "rx_fifo_size" to "renesas,rx-fifo-size"
drivers/spi/spi-sh-msiof.c | 56 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-)
drivers/spi/spi-sh-msiof.c +55 -1
@@ -20,6 +20,7 @@#include <linux/io.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/of.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h>
@@ -592,6 +593,37 @@ static u32 sh_msiof_spi_txrx_word(struct spi_device *spi, unsigned nsecs,return 0 ; } +#ifdef CONFIG_OF +static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt (struct device *dev) +{ +struct sh_msiof_spi_info *info; +struct device_node *np = dev->of_node; +u32 num_cs =0 ; + + info =devm_kzalloc (dev,sizeof (struct sh_msiof_spi_info ),GFP_KERNEL ); +if (!info) { +dev_err (dev,"failed to allocate setup data\n" ); +return NULL ; + } + +/* Parse the MSIOF properties */ +of_property_read_u32 (np,"num-cs" , &num_cs); +of_property_read_u32 (np,"renesas,tx-fifo-size" , + &info->tx_fifo_override); +of_property_read_u32 (np,"renesas,rx-fifo-size" , + &info->rx_fifo_override); + + info->num_chipselect = num_cs; + +return info; +} +#else +static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt (struct device *dev) +{ +return NULL ; +} +#endif +static int sh_msiof_spi_probe (struct platform_device *pdev) {struct resource *r;
@@ -610,7 +642,17 @@ static int sh_msiof_spi_probe(struct platform_device *pdev) p =spi_master_get_devdata (master);platform_set_drvdata (pdev, p); - p->info = pdev->dev.platform_data; +if (pdev->dev.of_node) + p->info =sh_msiof_spi_parse_dt (&pdev->dev); +else + p->info = pdev->dev.platform_data; + +if (!p->info) { +dev_err (&pdev->dev,"failed to obtain device info\n" ); + ret = -ENXIO ; + goto err1; + } +init_completion (&p->done); p->clk =clk_get (&pdev->dev,NULL );
@@ -715,6 +757,17 @@ static int sh_msiof_spi_runtime_nop(struct device *dev)return 0 ; } +#ifdef CONFIG_OF +static const struct of_device_id sh_msiof_match[] = { + { .compatible ="renesas,sh-msiof" , }, + { .compatible ="renesas,sh-mobile-msiof" , }, + {}, +}; +MODULE_DEVICE_TABLE (of, sh_msiof_match); +#else +#define sh_msiof_match NULL +#endif +static struct dev_pm_ops sh_msiof_spi_dev_pm_ops = { .runtime_suspend = sh_msiof_spi_runtime_nop, .runtime_resume = sh_msiof_spi_runtime_nop,
@@ -727,6 +780,7 @@ static struct platform_driver sh_msiof_spi_drv = { .name = "spi_sh_msiof", .owner = THIS_MODULE, .pm = &sh_msiof_spi_dev_pm_ops, + .of_match_table = sh_msiof_match, }, };module_platform_driver (sh_msiof_spi_drv);
Signature · 1 line
1.7.9.5
PATCH v2 3/4 spi: sh-msiof: Add device tree parsing to driver
Hi, Bastian.
Quoted 88 lines · Bastian Hecht
From: Bastian Hecht <[email protected]>
This adds the capability to retrieve setup data from the device tree node. The usage of platform data is still available.
Signed-off-by Bastian Hecht <[email protected]>---
v2:
- renamed property "chip_select" to "num-cs"
- renamed property "tx_fifo_size" to "renesas,tx-fifo-size"
- renamed property "rx_fifo_size" to "renesas,rx-fifo-size"drivers/spi/spi-sh-msiof.c | 56 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-)drivers/spi/spi-sh-msiof.c +43
-1@@ -20,6 +20,7 @@#include <linux/io.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/of.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> @@ -592,6 +593,37 @@ static u32 sh_msiof_spi_txrx_word(struct spi_device *spi, unsigned nsecs,return 0 ; } +#ifdef CONFIG_OF +static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt (struct device *dev) +{ +struct sh_msiof_spi_info *info; +struct device_node *np = dev->of_node; +u32 num_cs =0 ; + + info =devm_kzalloc (dev,sizeof (struct sh_msiof_spi_info ),GFP_KERNEL ); +if (!info) { +dev_err (dev,"failed to allocate setup data\n" ); +return NULL ; + } + +/* Parse the MSIOF properties */ +of_property_read_u32 (np,"num-cs" , &num_cs); +of_property_read_u32 (np,"renesas,tx-fifo-size" , + &info->tx_fifo_override); +of_property_read_u32 (np,"renesas,rx-fifo-size" , + &info->rx_fifo_override); + + info->num_chipselect = num_cs; + +return info; +} +#else +static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt (struct device *dev) +{ +return NULL ; +} +#endif +static int sh_msiof_spi_probe (struct platform_device *pdev) {struct resource *r;@@ -610,7 +642,17 @@ static int sh_msiof_spi_probe(struct platform_device *pdev) p =spi_master_get_devdata (master);platform_set_drvdata (pdev, p); - p->info = pdev->dev.platform_data; +if (pdev->dev.of_node) + p->info =sh_msiof_spi_parse_dt (&pdev->dev); +else + p->info = pdev->dev.platform_data; + +if (!p->info) { +dev_err (&pdev->dev,"failed to obtain device info\n" ); + ret = -ENXIO ; + goto err1; + } +init_completion (&p->done); p->clk =clk_get (&pdev->dev,NULL );@@ -715,6 +757,17 @@ static int sh_msiof_spi_runtime_nop(struct device *dev)return 0 ; }
drivers/spi/spi-sh-msiof.c static int sh_msiof_spi_runtime_nop(struct device *dev) · line 769
Quoted 10 lines
drivers/spi/spi-sh-msiof.c +10
-0+#ifdef CONFIG_OF +static const struct of_device_id sh_msiof_match[] = { + { .compatible ="renesas,sh-msiof" , }, + { .compatible ="renesas,sh-mobile-msiof" , }, + {}, +}; +MODULE_DEVICE_TABLE (of, sh_msiof_match); +#else +#define sh_msiof_match NULL +#endif
You can remove ifdef if you use of_match_ptr().
drivers/spi/spi-sh-msiof.c static struct platform_driver sh_msiof_spi_drv = { · line 783
Quoted 9 lines
drivers/spi/spi-sh-msiof.c +2
-0+static struct dev_pm_ops sh_msiof_spi_dev_pm_ops = { .runtime_suspend = sh_msiof_spi_runtime_nop, .runtime_resume = sh_msiof_spi_runtime_nop,@@ -727,6 +780,7 @@ static struct platform_driver sh_msiof_spi_drv = { .name = "spi_sh_msiof", .owner = THIS_MODULE, .pm = &sh_msiof_spi_dev_pm_ops, + .of_match_table = sh_msiof_match,
You can use of_match_ptr(sh_msiof_match).
Quoted 5 lines
drivers/spi/spi-sh-msiof.c +0
-1}, };module_platform_driver (sh_msiof_spi_drv); --1.7.9.5
Best regards,
Nobuhiro
Signature · 3 lines
Nobuhiro Iwamatsu
iwamatsu at {nigauri.org / debian.org}
GPG ID: 40AD1FA6PATCH v2 3/4 spi: sh-msiof: Add device tree parsing to driver
Hi Nobuhiro,
2012/12/17 Nobuhiro Iwamatsu <[email protected]>:
Quoted 104 lines
Hi, Bastian.
Quoted 88 lines · Bastian Hecht
From: Bastian Hecht <[email protected]>
This adds the capability to retrieve setup data from the device tree node. The usage of platform data is still available.
Signed-off-by Bastian Hecht <[email protected]>---
v2:
- renamed property "chip_select" to "num-cs"
- renamed property "tx_fifo_size" to "renesas,tx-fifo-size"
- renamed property "rx_fifo_size" to "renesas,rx-fifo-size"drivers/spi/spi-sh-msiof.c | 56 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-)drivers/spi/spi-sh-msiof.c +43
-1@@ -20,6 +20,7 @@#include <linux/io.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/of.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> @@ -592,6 +593,37 @@ static u32 sh_msiof_spi_txrx_word(struct spi_device *spi, unsigned nsecs,return 0 ; } +#ifdef CONFIG_OF +static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt (struct device *dev) +{ +struct sh_msiof_spi_info *info; +struct device_node *np = dev->of_node; +u32 num_cs =0 ; + + info =devm_kzalloc (dev,sizeof (struct sh_msiof_spi_info ),GFP_KERNEL ); +if (!info) { +dev_err (dev,"failed to allocate setup data\n" ); +return NULL ; + } + +/* Parse the MSIOF properties */ +of_property_read_u32 (np,"num-cs" , &num_cs); +of_property_read_u32 (np,"renesas,tx-fifo-size" , + &info->tx_fifo_override); +of_property_read_u32 (np,"renesas,rx-fifo-size" , + &info->rx_fifo_override); + + info->num_chipselect = num_cs; + +return info; +} +#else +static struct sh_msiof_spi_info *sh_msiof_spi_parse_dt (struct device *dev) +{ +return NULL ; +} +#endif +static int sh_msiof_spi_probe (struct platform_device *pdev) {struct resource *r;@@ -610,7 +642,17 @@ static int sh_msiof_spi_probe(struct platform_device *pdev) p =spi_master_get_devdata (master);platform_set_drvdata (pdev, p); - p->info = pdev->dev.platform_data; +if (pdev->dev.of_node) + p->info =sh_msiof_spi_parse_dt (&pdev->dev); +else + p->info = pdev->dev.platform_data; + +if (!p->info) { +dev_err (&pdev->dev,"failed to obtain device info\n" ); + ret = -ENXIO ; + goto err1; + } +init_completion (&p->done); p->clk =clk_get (&pdev->dev,NULL );@@ -715,6 +757,17 @@ static int sh_msiof_spi_runtime_nop(struct device *dev)return 0 ; }drivers/spi/spi-sh-msiof.c static int sh_msiof_spi_runtime_nop(struct device *dev) · line 769
Quoted 10 lines
drivers/spi/spi-sh-msiof.c +10
-0+#ifdef CONFIG_OF +static const struct of_device_id sh_msiof_match[] = { + { .compatible ="renesas,sh-msiof" , }, + { .compatible ="renesas,sh-mobile-msiof" , }, + {}, +}; +MODULE_DEVICE_TABLE (of, sh_msiof_match); +#else +#define sh_msiof_match NULL +#endif You can remove ifdef if you use
of_match_ptr().
Quoted 12 lines
drivers/spi/spi-sh-msiof.c static struct platform_driver sh_msiof_spi_drv = { · line 783
Quoted 9 lines
drivers/spi/spi-sh-msiof.c +2
-0+static struct dev_pm_ops sh_msiof_spi_dev_pm_ops = { .runtime_suspend = sh_msiof_spi_runtime_nop, .runtime_resume = sh_msiof_spi_runtime_nop,@@ -727,6 +780,7 @@ static struct platform_driver sh_msiof_spi_drv = { .name = "spi_sh_msiof", .owner = THIS_MODULE, .pm = &sh_msiof_spi_dev_pm_ops, + .of_match_table = sh_msiof_match,You can use
of_match_ptr(sh_msiof_match).
Ok very nice, will do so.
Thanks,
Bastian
Quoted 13 lines
Quoted 5 lines
drivers/spi/spi-sh-msiof.c +0
-1}, };module_platform_driver (sh_msiof_spi_drv); --1.7.9.5
Best regards,
Nobuhiro--
Nobuhiro Iwamatsu
iwamatsu at {nigauri.org / debian.org}
GPG ID: 40AD1FA6
Grant Likely
AppliedPATCH v2 3/4 spi: sh-msiof: Add device tree parsing to driver
Quoted 13 lines · Bastian Hecht
Hi Nobuhiro,
2012/12/17 Nobuhiro Iwamatsu <[email protected]>:
Quoted 10 lines
Hi, Bastian.
Quoted 7 lines · Bastian Hecht
From: Bastian Hecht <[email protected]>
This adds the capability to retrieve setup data from the device tree node. The usage of platform data is still available.
Signed-off-by Bastian Hecht <[email protected]>---
Applied, thanks.
Quoted 6 lines
Quoted 4 lines
Quoted 1 line
+ .of_match_table =
sh_msiof_match,You can use
of_match_ptr(sh_msiof_match).Ok very nice, will do so.
Please send a fixup patch for this change.
g.
PATCH v2 4/4 devicetree: Add Renesas SH Mobile MSIOF spi controller binding doc
In reply to Bastian HechtFrom: Bastian Hecht <[email protected]>
Add binding documentation for Renesas' MSIOF SPI controller.
---
v2:
- renamed property "chip_select" to "num-cs"
- renamed property "tx_fifo_size" to "renesas,tx-fifo-size"
- renamed property "rx_fifo_size" to "renesas,rx-fifo-size"
Documentation/devicetree/bindings/spi/sh-msiof.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Documentation/devicetree/bindings/spi/sh-msiof.txt
Documentation/devicetree/bindings/spi/sh-msiof.txt new file +12 -0
@@ -0,0 +1,12 @@ +Renesas MSIOF spi controller + +Required properties: +- compatible : "renesas,sh-msiof" for SuperH or + "renesas,sh-mobile-msiof" for SH Mobile series +- reg : Offset and length of the register set for the device +- interrupts : interrupt line used by MSIOF + +Optional properties: +- num-cs : total number of chip-selects +- renesas,tx-fifo-size : Overrides the default tx fifo size given in words +- renesas,rx-fifo-size : Overrides the default rx fifo size given in words
Signature · 1 line
1.7.9.5
Grant Likely
AppliedPATCH v2 4/4 devicetree: Add Renesas SH Mobile MSIOF spi controller binding doc
Quoted 5 lines · Bastian Hecht
From: Bastian Hecht <[email protected]>
Add binding documentation for Renesas' MSIOF SPI controller.
Signed-off-by Bastian Hecht <[email protected]>
Applied, but squashed together with patch 3. I prefer to see documentation and code changes applied together.
g.
Signature · 2 lines
Grant Likely, B.Sc, P.Eng. Secret Lab Technologies, Ltd.
PATCH v2 1/4 spi: sh-msiof: Remove unneeded clock name
In reply to Bastian HechtQuoted 6 lines · Bastian Hecht
From: Bastian Hecht <[email protected]>
clk_get()no longer needs a character string for associating the right clock as this is done via the device struct now.Signed-off-by Bastian Hecht <[email protected]>
This change is already in mainline.
g.