linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] support hisilicon i2c
@ 2013-07-26 13:22 Zhangfei Gao
  2013-07-26 13:22 ` [PATCH v4 1/2] i2c: designware: use module_platform_driver Zhangfei Gao
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Zhangfei Gao @ 2013-07-26 13:22 UTC (permalink / raw)
  To: linux-arm-kernel

V4:
resend for 3.11

v3:
patch 02, use size instead of threshold

v2:
Suggested by Baruch
Support hisilicon i2c in i2c-designware-platdrv.c, and adding two optional properties

Zhangfei Gao (2):
  i2c: designware: use module_platform_driver
  i2c: designware: add two optional property tx/rx-fifo-size

 .../devicetree/bindings/i2c/i2c-designware.txt     |    7 +++++++
 drivers/i2c/busses/i2c-designware-platdrv.c        |   17 +++++------------
 2 files changed, 12 insertions(+), 12 deletions(-)

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 1/2] i2c: designware: use module_platform_driver
  2013-07-26 13:22 [PATCH v4 0/2] support hisilicon i2c Zhangfei Gao
@ 2013-07-26 13:22 ` Zhangfei Gao
  2013-07-26 13:22 ` [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size Zhangfei Gao
  2013-08-05  2:13 ` [PATCH v4 0/2] support hisilicon i2c zhangfei gao
  2 siblings, 0 replies; 6+ messages in thread
From: Zhangfei Gao @ 2013-07-26 13:22 UTC (permalink / raw)
  To: linux-arm-kernel

Instead of use platform_driver_probe, use module_platform_driver
To support deferred probing
Also subsys_initcall may too early to auto set pinctl

Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Acked-by: Baruch Siach <baruch@tkos.co.il>
---
 drivers/i2c/busses/i2c-designware-platdrv.c |   14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 4c5fada..36ceebc 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -236,6 +236,7 @@ static SIMPLE_DEV_PM_OPS(dw_i2c_dev_pm_ops, dw_i2c_suspend, dw_i2c_resume);
 MODULE_ALIAS("platform:i2c_designware");
 
 static struct platform_driver dw_i2c_driver = {
+	.probe		= dw_i2c_probe,
 	.remove		= dw_i2c_remove,
 	.driver		= {
 		.name	= "i2c_designware",
@@ -245,18 +246,7 @@ static struct platform_driver dw_i2c_driver = {
 		.pm	= &dw_i2c_dev_pm_ops,
 	},
 };
-
-static int __init dw_i2c_init_driver(void)
-{
-	return platform_driver_probe(&dw_i2c_driver, dw_i2c_probe);
-}
-subsys_initcall(dw_i2c_init_driver);
-
-static void __exit dw_i2c_exit_driver(void)
-{
-	platform_driver_unregister(&dw_i2c_driver);
-}
-module_exit(dw_i2c_exit_driver);
+module_platform_driver(dw_i2c_driver);
 
 MODULE_AUTHOR("Baruch Siach <baruch@tkos.co.il>");
 MODULE_DESCRIPTION("Synopsys DesignWare I2C bus adapter");
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size
  2013-07-26 13:22 [PATCH v4 0/2] support hisilicon i2c Zhangfei Gao
  2013-07-26 13:22 ` [PATCH v4 1/2] i2c: designware: use module_platform_driver Zhangfei Gao
@ 2013-07-26 13:22 ` Zhangfei Gao
  2013-08-10 12:50   ` Mark Rutland
  2013-08-05  2:13 ` [PATCH v4 0/2] support hisilicon i2c zhangfei gao
  2 siblings, 1 reply; 6+ messages in thread
From: Zhangfei Gao @ 2013-07-26 13:22 UTC (permalink / raw)
  To: linux-arm-kernel

Some platform can not get fifo-size info form register DW_IC_COMP_PARAM_1.
Give chance to update rx-fifo-size and tx-fifo-size if provided in dts.

Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Acked-by: Baruch Siach <baruch@tkos.co.il>
---
 .../devicetree/bindings/i2c/i2c-designware.txt     |    7 +++++++
 drivers/i2c/busses/i2c-designware-platdrv.c        |    3 +++
 2 files changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
index 7fd7fa2..af0bf8f 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
@@ -6,6 +6,11 @@ Required properties :
  - reg : Offset and length of the register set for the device
  - interrupts : <IRQ> where IRQ is the interrupt number.
 
+Optional properties:
+
+ - rx-fifo-size : 1 cell, Rx fifo size
+ - tx-fifo-size : 1 cell, Tx fifo size
+
 Recommended properties :
 
  - clock-frequency : desired I2C bus clock frequency in Hz.
@@ -22,6 +27,8 @@ Example :
 		compatible = "snps,designware-i2c";
 		reg = <0xf0000 0x1000>;
 		interrupts = <11>;
+		rx-fifo-size = <16>;
+		tx-fifo-size = <16>;
 		clock-frequency = <400000>;
 	};
 
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 36ceebc..f657e65 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -86,6 +86,7 @@ static int dw_i2c_probe(struct platform_device *pdev)
 	struct dw_i2c_dev *dev;
 	struct i2c_adapter *adap;
 	struct resource *mem;
+	struct device_node *np = pdev->dev.of_node;
 	int irq, r;
 
 	irq = platform_get_irq(pdev, 0);
@@ -145,6 +146,8 @@ static int dw_i2c_probe(struct platform_device *pdev)
 		dev->rx_fifo_depth = ((param1 >> 8)  & 0xff) + 1;
 		dev->adapter.nr = pdev->id;
 	}
+	of_property_read_u32(np, "rx-fifo-size", &dev->rx_fifo_depth);
+	of_property_read_u32(np, "tx-fifo-size", &dev->tx_fifo_depth);
 	r = i2c_dw_init(dev);
 	if (r)
 		return r;
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v4 0/2] support hisilicon i2c
  2013-07-26 13:22 [PATCH v4 0/2] support hisilicon i2c Zhangfei Gao
  2013-07-26 13:22 ` [PATCH v4 1/2] i2c: designware: use module_platform_driver Zhangfei Gao
  2013-07-26 13:22 ` [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size Zhangfei Gao
@ 2013-08-05  2:13 ` zhangfei gao
  2 siblings, 0 replies; 6+ messages in thread
From: zhangfei gao @ 2013-08-05  2:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jul 26, 2013 at 9:22 PM, Zhangfei Gao <zhangfei.gao@linaro.org> wrote:
> V4:
> rebase on 3.11
>
> v3:
> patch 02, use size instead of threshold
>
> v2:
> Suggested by Baruch
> Support hisilicon i2c in i2c-designware-platdrv.c, and adding two optional properties
>
> Zhangfei Gao (2):
>   i2c: designware: use module_platform_driver
>   i2c: designware: add two optional property tx/rx-fifo-size
>
>  .../devicetree/bindings/i2c/i2c-designware.txt     |    7 +++++++
>  drivers/i2c/busses/i2c-designware-platdrv.c        |   17 +++++------------
>  2 files changed, 12 insertions(+), 12 deletions(-)
>

"Basically OK, but please resend for 3.12, so we get enough testing
before entering mainline. I am a bit anxious of side
effects and 3.11 is too near."

Dear Wolfram

The patches are rebased on 3.11 rc2 as your suggestion,
Do you have any other suggestion?

Thanks

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size
  2013-07-26 13:22 ` [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size Zhangfei Gao
@ 2013-08-10 12:50   ` Mark Rutland
  2013-08-11  7:29     ` zhangfei gao
  0 siblings, 1 reply; 6+ messages in thread
From: Mark Rutland @ 2013-08-10 12:50 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jul 26, 2013 at 02:22:18PM +0100, Zhangfei Gao wrote:
> Some platform can not get fifo-size info form register DW_IC_COMP_PARAM_1.

s/form/from/

Why can they not get info from the register? Is it not implemented, or
buggy? It would be nice to mention why.

> Give chance to update rx-fifo-size and tx-fifo-size if provided in dts.
> 
> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> Acked-by: Baruch Siach <baruch@tkos.co.il>
> ---
>  .../devicetree/bindings/i2c/i2c-designware.txt     |    7 +++++++
>  drivers/i2c/busses/i2c-designware-platdrv.c        |    3 +++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
> index 7fd7fa2..af0bf8f 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt
> +++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
> @@ -6,6 +6,11 @@ Required properties :
>   - reg : Offset and length of the register set for the device
>   - interrupts : <IRQ> where IRQ is the interrupt number.
>  
> +Optional properties:
> +
> + - rx-fifo-size : 1 cell, Rx fifo size
> + - tx-fifo-size : 1 cell, Tx fifo size

Units? I assume these are in bytes?

It would be nice to mention in the bidning when you need these
properties (i.e. only hwen you can't figure it out from
DW_IC_COMP_PARAM_1 becase ________.

Thanks,
Mark.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size
  2013-08-10 12:50   ` Mark Rutland
@ 2013-08-11  7:29     ` zhangfei gao
  0 siblings, 0 replies; 6+ messages in thread
From: zhangfei gao @ 2013-08-11  7:29 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, Aug 10, 2013 at 8:50 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> On Fri, Jul 26, 2013 at 02:22:18PM +0100, Zhangfei Gao wrote:
>> Some platform can not get fifo-size info form register DW_IC_COMP_PARAM_1.
>
> s/form/from/
>
> Why can they not get info from the register? Is it not implemented, or
> buggy? It would be nice to mention why.

Dear Mark

Thanks for asking me such question.
When trying to answer this question, I find this patch is not needed now.
It should be caused by my mistake.

Really appreciated.

>
>> Give chance to update rx-fifo-size and tx-fifo-size if provided in dts.
>>
>> Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
>> Acked-by: Baruch Siach <baruch@tkos.co.il>
>> ---
>>  .../devicetree/bindings/i2c/i2c-designware.txt     |    7 +++++++
>>  drivers/i2c/busses/i2c-designware-platdrv.c        |    3 +++
>>  2 files changed, 10 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
>> index 7fd7fa2..af0bf8f 100644
>> --- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt
>> +++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
>> @@ -6,6 +6,11 @@ Required properties :
>>   - reg : Offset and length of the register set for the device
>>   - interrupts : <IRQ> where IRQ is the interrupt number.
>>
>> +Optional properties:
>> +
>> + - rx-fifo-size : 1 cell, Rx fifo size
>> + - tx-fifo-size : 1 cell, Tx fifo size
>
> Units? I assume these are in bytes?
>
> It would be nice to mention in the bidning when you need these
> properties (i.e. only hwen you can't figure it out from
> DW_IC_COMP_PARAM_1 becase ________.
>
> Thanks,
> Mark.
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-08-11  7:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-26 13:22 [PATCH v4 0/2] support hisilicon i2c Zhangfei Gao
2013-07-26 13:22 ` [PATCH v4 1/2] i2c: designware: use module_platform_driver Zhangfei Gao
2013-07-26 13:22 ` [PATCH v4 2/2] i2c: designware: add two optional property tx/rx-fifo-size Zhangfei Gao
2013-08-10 12:50   ` Mark Rutland
2013-08-11  7:29     ` zhangfei gao
2013-08-05  2:13 ` [PATCH v4 0/2] support hisilicon i2c zhangfei gao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).