2018-11-26 19:03:26

by Parthiban Nallathambi

[permalink] [raw]
Subject: [PATCH v2 0/4] Add Actions Semi Owl family S700 I2C support

This patch series adds support for Actions Semi Owl SoC family S700
I2C controller. S700 provides 4 I2C masters and with cubieboard7
2 (I2C0 and I2C1) are exposed.

Added pinctrl definition for I2C controllers in cubieboard7. This patch
depends on s700 pinctrl driver support (yet to be merged),
https://lkml.org/lkml/2018/11/19/514
https://lore.kernel.org/patchwork/patch/1012859/

Changelog in v2:
- Initial version https://lore.kernel.org/patchwork/patch/1011911/ only
added the I2C nodes using s900 compatible property. Now, new s700
compatiable string is added and used for S700
- Device tree bindings added with s700 compatible string
- pinctrl definition for cubieboard7

Parthiban Nallathambi (4):
dt-bindings: i2c: Add S700 support for Actions Semi Soc's
i2c: Add Actions Semiconductor Owl family S700 I2C support
arm64: dts: actions: s700: Add I2C controller nodes
arm64: dts: actions: s700-cubieboard7: Enable I2C0 and I2C1

.../devicetree/bindings/i2c/i2c-owl.txt | 2 +-
.../boot/dts/actions/s700-cubieboard7.dts | 53 +++++++++++++++++++
arch/arm64/boot/dts/actions/s700.dtsi | 40 ++++++++++++++
drivers/i2c/busses/i2c-owl.c | 1 +
4 files changed, 95 insertions(+), 1 deletion(-)

--
2.17.2



2018-11-26 19:00:05

by Parthiban Nallathambi

[permalink] [raw]
Subject: [PATCH v2 3/4] arm64: dts: actions: s700: Add I2C controller nodes

Add I2C controller nodes for Actions Semiconductor S700 SoC.

Signed-off-by: Parthiban Nallathambi <[email protected]>
---
arch/arm64/boot/dts/actions/s700.dtsi | 40 +++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

diff --git a/arch/arm64/boot/dts/actions/s700.dtsi b/arch/arm64/boot/dts/actions/s700.dtsi
index 192c7b39c8c1..35fddba2af1c 100644
--- a/arch/arm64/boot/dts/actions/s700.dtsi
+++ b/arch/arm64/boot/dts/actions/s700.dtsi
@@ -174,6 +174,46 @@
#clock-cells = <1>;
};

+ i2c0: i2c@e0170000 {
+ compatible = "actions,s700-i2c";
+ reg = <0 0xe0170000 0 0x1000>;
+ clocks = <&cmu CLK_I2C0>;
+ interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c1: i2c@e0174000 {
+ compatible = "actions,s700-i2c";
+ reg = <0 0xe0174000 0 0x1000>;
+ clocks = <&cmu CLK_I2C1>;
+ interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c2: i2c@e0178000 {
+ compatible = "actions,s700-i2c";
+ reg = <0 0xe0178000 0 0x1000>;
+ clocks = <&cmu CLK_I2C2>;
+ interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c3: i2c@e017c000 {
+ compatible = "actions,s700-i2c";
+ reg = <0 0xe017c000 0 0x1000>;
+ clocks = <&cmu CLK_I2C3>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
sps: power-controller@e01b0100 {
compatible = "actions,s700-sps";
reg = <0x0 0xe01b0100 0x0 0x100>;
--
2.17.2


2018-11-26 19:00:26

by Parthiban Nallathambi

[permalink] [raw]
Subject: [PATCH v2 1/4] dt-bindings: i2c: Add S700 support for Actions Semi Soc's

Add s700 compatible string to Actions Semi SoC dt-bindings.

Signed-off-by: Parthiban Nallathambi <[email protected]>
---
Documentation/devicetree/bindings/i2c/i2c-owl.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/i2c/i2c-owl.txt b/Documentation/devicetree/bindings/i2c/i2c-owl.txt
index b743fe444e9f..dfa1197e0dbf 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-owl.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-owl.txt
@@ -2,7 +2,7 @@ Actions Semiconductor Owl I2C controller

Required properties:

-- compatible : Should be "actions,s900-i2c".
+- compatible : Should be "actions,s700-i2c" or "actions,s900-i2c".
- reg : Offset and length of the register set for the device.
- #address-cells : Should be 1.
- #size-cells : Should be 0.
--
2.17.2


2018-11-26 19:00:46

by Parthiban Nallathambi

[permalink] [raw]
Subject: [PATCH v2 4/4] arm64: dts: actions: s700-cubieboard7: Enable I2C0 and I2C1

Add pinctrl definitions for Actions Semiconductor S700 I2C controllers.
Pinctrl definitions are only available for I2C0, I2C1 and I2C2.
Enable I2C0 (PMIC), I2C1 (gyro, touchscreen) in cubieboard7.

Signed-off-by: Parthiban Nallathambi <[email protected]>
---
.../boot/dts/actions/s700-cubieboard7.dts | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)

diff --git a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
index 28f3f4a0f7f0..6a75fdd7ab42 100644
--- a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
+++ b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
@@ -37,3 +37,56 @@
&uart3 {
status = "okay";
};
+
+&i2c0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_default>;
+};
+
+&i2c1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_default>;
+};
+
+&i2c2 {
+ status = "disabled";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_default>;
+};
+
+&pinctrl {
+ i2c0_default: i2c0_default {
+ pinmux {
+ groups = "i2c0_mfp";
+ function = "i2c0";
+ };
+ pinconf {
+ pins = "i2c0_sclk", "i2c0_sdata";
+ bias-pull-up;
+ };
+ };
+
+ i2c1_default: i2c1_default {
+ pinmux {
+ groups = "i2c1_dummy";
+ function = "i2c1";
+ };
+ pinconf {
+ pins = "i2c1_sclk", "i2c1_sdata";
+ bias-pull-up;
+ };
+ };
+
+ i2c2_default: i2c2_default {
+ pinmux {
+ groups = "i2c2_dummy";
+ function = "i2c2";
+ };
+ pinconf {
+ pins = "i2c2_sclk", "i2c2_sdata";
+ bias-pull-up;
+ };
+ };
+};
--
2.17.2


2018-11-26 19:01:05

by Parthiban Nallathambi

[permalink] [raw]
Subject: [PATCH v2 2/4] i2c: Add Actions Semiconductor Owl family S700 I2C support

Add S700 to the list of devices supported by Owl I2C driver.

Add Actions Semiconductor Owl family S900 I2C driver.

Signed-off-by: Parthiban Nallathambi <[email protected]>
---
drivers/i2c/busses/i2c-owl.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-owl.c b/drivers/i2c/busses/i2c-owl.c
index 96b4572e6d9c..b6b5a495118b 100644
--- a/drivers/i2c/busses/i2c-owl.c
+++ b/drivers/i2c/busses/i2c-owl.c
@@ -475,6 +475,7 @@ static int owl_i2c_probe(struct platform_device *pdev)
}

static const struct of_device_id owl_i2c_of_match[] = {
+ { .compatible = "actions,s700-i2c" },
{ .compatible = "actions,s900-i2c" },
{ /* sentinel */ }
};
--
2.17.2


2018-12-10 11:41:52

by Parthiban Nallathambi

[permalink] [raw]
Subject: Re: [PATCH v2 0/4] Add Actions Semi Owl family S700 I2C support

Ping on this patch series!

On 11/26/18 7:58 PM, Parthiban Nallathambi wrote:
> This patch series adds support for Actions Semi Owl SoC family S700
> I2C controller. S700 provides 4 I2C masters and with cubieboard7
> 2 (I2C0 and I2C1) are exposed.
>
> Added pinctrl definition for I2C controllers in cubieboard7. This patch
> depends on s700 pinctrl driver support (yet to be merged),
> https://lkml.org/lkml/2018/11/19/514
> https://lore.kernel.org/patchwork/patch/1012859/
>
> Changelog in v2:
> - Initial version https://lore.kernel.org/patchwork/patch/1011911/ only
> added the I2C nodes using s900 compatible property. Now, new s700
> compatiable string is added and used for S700
> - Device tree bindings added with s700 compatible string
> - pinctrl definition for cubieboard7
>
> Parthiban Nallathambi (4):
> dt-bindings: i2c: Add S700 support for Actions Semi Soc's
> i2c: Add Actions Semiconductor Owl family S700 I2C support
> arm64: dts: actions: s700: Add I2C controller nodes
> arm64: dts: actions: s700-cubieboard7: Enable I2C0 and I2C1
>
> .../devicetree/bindings/i2c/i2c-owl.txt | 2 +-
> .../boot/dts/actions/s700-cubieboard7.dts | 53 +++++++++++++++++++
> arch/arm64/boot/dts/actions/s700.dtsi | 40 ++++++++++++++
> drivers/i2c/busses/i2c-owl.c | 1 +
> 4 files changed, 95 insertions(+), 1 deletion(-)
>

--
Thanks,
Parthiban N

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-22 Fax: (+49)-8142-66989-80 Email: [email protected]

2018-12-10 13:48:20

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v2 1/4] dt-bindings: i2c: Add S700 support for Actions Semi Soc's

On Mon, Nov 26, 2018 at 07:58:18PM +0100, Parthiban Nallathambi wrote:
> Add s700 compatible string to Actions Semi SoC dt-bindings.
>
> Signed-off-by: Parthiban Nallathambi <[email protected]>
> ---
> Documentation/devicetree/bindings/i2c/i2c-owl.txt | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-owl.txt b/Documentation/devicetree/bindings/i2c/i2c-owl.txt
> index b743fe444e9f..dfa1197e0dbf 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-owl.txt
> +++ b/Documentation/devicetree/bindings/i2c/i2c-owl.txt
> @@ -2,7 +2,7 @@ Actions Semiconductor Owl I2C controller
>
> Required properties:
>
> -- compatible : Should be "actions,s900-i2c".
> +- compatible : Should be "actions,s700-i2c" or "actions,s900-i2c".

Since this driver will also support S500 in future, the above could be
phrased as:

compatible: Should be one of the following:

- "actions,s700-i2c" for S700 SoC
- "actions,s900-i2c" for S900 SoC

Regards,
Mani

> - reg : Offset and length of the register set for the device.
> - #address-cells : Should be 1.
> - #size-cells : Should be 0.
> --
> 2.17.2
>

2018-12-10 13:50:36

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] arm64: dts: actions: s700: Add I2C controller nodes

On Mon, Nov 26, 2018 at 07:58:20PM +0100, Parthiban Nallathambi wrote:
> Add I2C controller nodes for Actions Semiconductor S700 SoC.
>
> Signed-off-by: Parthiban Nallathambi <[email protected]>

Ideally, dts patches should come before driver.

Reviewed-by: Manivannan Sadhasivam <[email protected]>

Cheers,
Mani

> ---
> arch/arm64/boot/dts/actions/s700.dtsi | 40 +++++++++++++++++++++++++++
> 1 file changed, 40 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/actions/s700.dtsi b/arch/arm64/boot/dts/actions/s700.dtsi
> index 192c7b39c8c1..35fddba2af1c 100644
> --- a/arch/arm64/boot/dts/actions/s700.dtsi
> +++ b/arch/arm64/boot/dts/actions/s700.dtsi
> @@ -174,6 +174,46 @@
> #clock-cells = <1>;
> };
>
> + i2c0: i2c@e0170000 {
> + compatible = "actions,s700-i2c";
> + reg = <0 0xe0170000 0 0x1000>;
> + clocks = <&cmu CLK_I2C0>;
> + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c1: i2c@e0174000 {
> + compatible = "actions,s700-i2c";
> + reg = <0 0xe0174000 0 0x1000>;
> + clocks = <&cmu CLK_I2C1>;
> + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c2: i2c@e0178000 {
> + compatible = "actions,s700-i2c";
> + reg = <0 0xe0178000 0 0x1000>;
> + clocks = <&cmu CLK_I2C2>;
> + interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c3: i2c@e017c000 {
> + compatible = "actions,s700-i2c";
> + reg = <0 0xe017c000 0 0x1000>;
> + clocks = <&cmu CLK_I2C3>;
> + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> sps: power-controller@e01b0100 {
> compatible = "actions,s700-sps";
> reg = <0x0 0xe01b0100 0x0 0x100>;
> --
> 2.17.2
>

2018-12-10 13:52:12

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] arm64: dts: actions: s700-cubieboard7: Enable I2C0 and I2C1

Hi Parthiban,

On Mon, Nov 26, 2018 at 07:58:21PM +0100, Parthiban Nallathambi wrote:
> Add pinctrl definitions for Actions Semiconductor S700 I2C controllers.
> Pinctrl definitions are only available for I2C0, I2C1 and I2C2.
> Enable I2C0 (PMIC), I2C1 (gyro, touchscreen) in cubieboard7.
>
> Signed-off-by: Parthiban Nallathambi <[email protected]>
> ---
> .../boot/dts/actions/s700-cubieboard7.dts | 53 +++++++++++++++++++
> 1 file changed, 53 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
> index 28f3f4a0f7f0..6a75fdd7ab42 100644
> --- a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
> +++ b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
> @@ -37,3 +37,56 @@
> &uart3 {
> status = "okay";
> };
> +
> +&i2c0 {

On the board DTS, node names should be sorted alphabetically!

Regards,
Mani

> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c0_default>;
> +};
> +
> +&i2c1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c1_default>;
> +};
> +
> +&i2c2 {
> + status = "disabled";
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_default>;
> +};
> +
> +&pinctrl {
> + i2c0_default: i2c0_default {
> + pinmux {
> + groups = "i2c0_mfp";
> + function = "i2c0";
> + };
> + pinconf {
> + pins = "i2c0_sclk", "i2c0_sdata";
> + bias-pull-up;
> + };
> + };
> +
> + i2c1_default: i2c1_default {
> + pinmux {
> + groups = "i2c1_dummy";
> + function = "i2c1";
> + };
> + pinconf {
> + pins = "i2c1_sclk", "i2c1_sdata";
> + bias-pull-up;
> + };
> + };
> +
> + i2c2_default: i2c2_default {
> + pinmux {
> + groups = "i2c2_dummy";
> + function = "i2c2";
> + };
> + pinconf {
> + pins = "i2c2_sclk", "i2c2_sdata";
> + bias-pull-up;
> + };
> + };
> +};
> --
> 2.17.2
>

2018-12-10 14:50:09

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] i2c: Add Actions Semiconductor Owl family S700 I2C support

On Mon, Nov 26, 2018 at 07:58:19PM +0100, Parthiban Nallathambi wrote:
> Add S700 to the list of devices supported by Owl I2C driver.
>
> Add Actions Semiconductor Owl family S900 I2C driver.

S700 ;-)

>
> Signed-off-by: Parthiban Nallathambi <[email protected]>

With the change in subject,

Reviewed-by: Manivannan Sadhasivam <[email protected]>

Cheers,
Mani

> ---
> drivers/i2c/busses/i2c-owl.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/i2c/busses/i2c-owl.c b/drivers/i2c/busses/i2c-owl.c
> index 96b4572e6d9c..b6b5a495118b 100644
> --- a/drivers/i2c/busses/i2c-owl.c
> +++ b/drivers/i2c/busses/i2c-owl.c
> @@ -475,6 +475,7 @@ static int owl_i2c_probe(struct platform_device *pdev)
> }
>
> static const struct of_device_id owl_i2c_of_match[] = {
> + { .compatible = "actions,s700-i2c" },
> { .compatible = "actions,s900-i2c" },
> { /* sentinel */ }
> };
> --
> 2.17.2
>