[PATCH 0/2] arm: dra7: Add i2c6 instance hwmod and dt entries

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH 0/2] arm: dra7: Add i2c6 instance hwmod and dt entries

Ravikumar Kattekola
DRA72x devices have a sixth i2c ocntroller instance.
Following patches add the required hwmod structure and
device tree nodes.

Reference doc: DRA72x TRM [ SPRUHP2Q ]

Tested on :
DRA72x Rev B EVM

Ravikumar Kattekola (2):
  arm: dra7: Add hwmod entry for i2c6
  dts: dra7: Add device tree node for i2c6

 arch/arm/boot/dts/dra7.dtsi               | 11 +++++++++++
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
 2 files changed, 34 insertions(+)

--
2.8.2.396.g5fe494c

Reply | Threaded
Open this post in threaded view
|

[PATCH 2/2] dts: dra7: Add device tree node for i2c6

Ravikumar Kattekola
DRA72x devices have an extra i2c controller instance - i2c6
Adding device description for the same.

Reference : DRA72x_SR1.0 TRM [ SPRUHP2Q ]

Signed-off-by: Ravikumar Kattekola <[hidden email]>
---
 arch/arm/boot/dts/dra7.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index 3a8f397..84729a1 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -27,6 +27,7 @@
  i2c2 = &i2c3;
  i2c3 = &i2c4;
  i2c4 = &i2c5;
+ i2c5 = &i2c6;
  serial0 = &uart1;
  serial1 = &uart2;
  serial2 = &uart3;
@@ -929,6 +930,16 @@
  status = "disabled";
  };
 
+ i2c6: i2c@48458000 {
+ compatible = "ti,omap4-i2c";
+ reg = <0x48458000 0x100>;
+ interrupts = <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ ti,hwmods = "i2c6";
+ status = "disabled";
+ };
+
  mmc1: mmc@4809c000 {
  compatible = "ti,omap4-hsmmc";
  reg = <0x4809c000 0x400>;
--
2.8.2.396.g5fe494c

Reply | Threaded
Open this post in threaded view
|

[PATCH 1/2] arm: dra7: Add hwmod entry for i2c6

Ravikumar Kattekola
In reply to this post by Ravikumar Kattekola
dra72x device has i2c6 controller.
Adding hwmod definition for the same.

Reference DRA72x TRM [ SPRUHP2Q ]

Signed-off-by: Ravikumar Kattekola <[hidden email]>
---
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
index d0e7e525..b84c0f7 100644
--- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
@@ -1127,6 +1127,20 @@ static struct omap_hwmod dra7xx_i2c5_hwmod = {
  .dev_attr = &i2c_dev_attr,
 };
 
+/* i2c6 */
+static struct omap_hwmod dra7xx_i2c6_hwmod = {
+ .name = "i2c6",
+ .class = &dra7xx_i2c_hwmod_class,
+ .clkdm_name = "l4per2_clkdm",
+ .flags = HWMOD_16BIT_REG | HWMOD_SET_DEFAULT_CLOCKACT,
+ .main_clk = "func_96m_fclk",
+ .prcm = {
+ .omap4 = {
+ },
+ },
+ .dev_attr = &i2c_dev_attr,
+};
+
 /*
  * 'mailbox' class
  *
@@ -3186,6 +3200,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per1__i2c5 = {
  .user = OCP_USER_MPU | OCP_USER_SDMA,
 };
 
+/* l4_per2 -> i2c6 */
+static struct omap_hwmod_ocp_if dra7xx_l4_per2__i2c6 = {
+ .master = &dra7xx_l4_per2_hwmod,
+ .slave = &dra7xx_i2c6_hwmod,
+ .clk = "l3_iclk_div",
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
 /* l4_cfg -> mailbox1 */
 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mailbox1 = {
  .master = &dra7xx_l4_cfg_hwmod,
@@ -3857,6 +3879,7 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
  &dra7xx_l4_per1__i2c3,
  &dra7xx_l4_per1__i2c4,
  &dra7xx_l4_per1__i2c5,
+ &dra7xx_l4_per2__i2c6,
  &dra7xx_l4_cfg__mailbox1,
  &dra7xx_l4_per3__mailbox2,
  &dra7xx_l4_per3__mailbox3,
--
2.8.2.396.g5fe494c

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 0/2] arm: dra7: Add i2c6 instance hwmod and dt entries

Nishanth Menon
In reply to this post by Ravikumar Kattekola
On 05/25/2016 07:53 AM, Ravikumar Kattekola wrote:

> DRA72x devices have a sixth i2c ocntroller instance.
> Following patches add the required hwmod structure and
> device tree nodes.
>
> Reference doc: DRA72x TRM [ SPRUHP2Q ]
>
> Tested on :
> DRA72x Rev B EVM
>
> Ravikumar Kattekola (2):
>   arm: dra7: Add hwmod entry for i2c6
>   dts: dra7: Add device tree node for i2c6
>
>  arch/arm/boot/dts/dra7.dtsi               | 11 +++++++++++
>  arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>  2 files changed, 34 insertions(+)
>
NAK. reasoning:
a) i2c6 is a custom IP integration with completely non-standard
dependencies with cross device dependencies for pretty much a specific
usecase -> usage is pretty much limited for generic support - the
decision is NOT to support this instance in Linux kernel - internal
discussion forwarded to developer.
b) the patches themselves are wrong -> it applies to DRA72x not
generic DRA7x platform
c) patches themselves are in the wrong format (wrong subject line etc).
d) patches don't handle the SoC internal device dependencies either ->
in short will not function in a generic solution for all variations of
platforms.

--
Regards,
Nishanth Menon
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 1/2] arm: dra7: Add hwmod entry for i2c6

Nishanth Menon
In reply to this post by Ravikumar Kattekola
On 05/25/2016 07:53 AM, Ravikumar Kattekola wrote:

> dra72x device has i2c6 controller.
> Adding hwmod definition for the same.
>
> Reference DRA72x TRM [ SPRUHP2Q ]
>
> Signed-off-by: Ravikumar Kattekola <[hidden email]>
> ---
>  arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
> index d0e7e525..b84c0f7 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
> @@ -1127,6 +1127,20 @@ static struct omap_hwmod dra7xx_i2c5_hwmod = {
>   .dev_attr = &i2c_dev_attr,
>  };
>  
> +/* i2c6 */
> +static struct omap_hwmod dra7xx_i2c6_hwmod = {
> + .name = "i2c6",
> + .class = &dra7xx_i2c_hwmod_class,
> + .clkdm_name = "l4per2_clkdm",
> + .flags = HWMOD_16BIT_REG | HWMOD_SET_DEFAULT_CLOCKACT,
> + .main_clk = "func_96m_fclk",
> + .prcm = {
> + .omap4 = {
> + },
> + },
> + .dev_attr = &i2c_dev_attr,
> +};
> +
>  /*
>   * 'mailbox' class
>   *
> @@ -3186,6 +3200,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per1__i2c5 = {
>   .user = OCP_USER_MPU | OCP_USER_SDMA,
>  };
>  
> +/* l4_per2 -> i2c6 */
> +static struct omap_hwmod_ocp_if dra7xx_l4_per2__i2c6 = {
> + .master = &dra7xx_l4_per2_hwmod,
> + .slave = &dra7xx_i2c6_hwmod,
> + .clk = "l3_iclk_div",
> + .user = OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
>  /* l4_cfg -> mailbox1 */
>  static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mailbox1 = {
>   .master = &dra7xx_l4_cfg_hwmod,
> @@ -3857,6 +3879,7 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
>   &dra7xx_l4_per1__i2c3,
>   &dra7xx_l4_per1__i2c4,
>   &dra7xx_l4_per1__i2c5,
> + &dra7xx_l4_per2__i2c6,
>   &dra7xx_l4_cfg__mailbox1,
>   &dra7xx_l4_per3__mailbox2,
>   &dra7xx_l4_per3__mailbox3,
>

responding to the specific patches themselves:
NAK. reasoning:
a) i2c6 is a custom IP integration with completely non-standard
dependencies with cross device dependencies for pretty much a specific
usecase -> usage is pretty much limited for generic support - the
decision is NOT to support this instance in Linux kernel - internal
discussion forwarded to developer.
b) the patches themselves are wrong -> it applies to DRA72x not
generic DRA7x platform
c) patches themselves are in the wrong format (wrong subject line etc).
d) patches don't handle the SoC internal device dependencies either ->
in short will not function in a generic solution for all variations of
platforms.

--
Regards,
Nishanth Menon
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 2/2] dts: dra7: Add device tree node for i2c6

Nishanth Menon
In reply to this post by Ravikumar Kattekola
On 05/25/2016 07:53 AM, Ravikumar Kattekola wrote:

> DRA72x devices have an extra i2c controller instance - i2c6
> Adding device description for the same.
>
> Reference : DRA72x_SR1.0 TRM [ SPRUHP2Q ]
>
> Signed-off-by: Ravikumar Kattekola <[hidden email]>
> ---
>  arch/arm/boot/dts/dra7.dtsi | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
> index 3a8f397..84729a1 100644
> --- a/arch/arm/boot/dts/dra7.dtsi
> +++ b/arch/arm/boot/dts/dra7.dtsi
> @@ -27,6 +27,7 @@
>   i2c2 = &i2c3;
>   i2c3 = &i2c4;
>   i2c4 = &i2c5;
> + i2c5 = &i2c6;
>   serial0 = &uart1;
>   serial1 = &uart2;
>   serial2 = &uart3;
> @@ -929,6 +930,16 @@
>   status = "disabled";
>   };
>  
> + i2c6: i2c@48458000 {
> + compatible = "ti,omap4-i2c";
> + reg = <0x48458000 0x100>;
> + interrupts = <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + ti,hwmods = "i2c6";
> + status = "disabled";
> + };
> +
>   mmc1: mmc@4809c000 {
>   compatible = "ti,omap4-hsmmc";
>   reg = <0x4809c000 0x400>;
>
NAK again for the same reasoning.

--
Regards,
Nishanth Menon
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 1/2] arm: dra7: Add hwmod entry for i2c6

Lokesh Vutla
In reply to this post by Ravikumar Kattekola


On Wednesday 25 May 2016 06:23 PM, Ravikumar Kattekola wrote:

> dra72x device has i2c6 controller.
> Adding hwmod definition for the same.
>
> Reference DRA72x TRM [ SPRUHP2Q ]
>
> Signed-off-by: Ravikumar Kattekola <[hidden email]>
> ---
>  arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
> index d0e7e525..b84c0f7 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
> @@ -1127,6 +1127,20 @@ static struct omap_hwmod dra7xx_i2c5_hwmod = {
>   .dev_attr = &i2c_dev_attr,
>  };
>  
> +/* i2c6 */
> +static struct omap_hwmod dra7xx_i2c6_hwmod = {
> + .name = "i2c6",
> + .class = &dra7xx_i2c_hwmod_class,
> + .clkdm_name = "l4per2_clkdm",
> + .flags = HWMOD_16BIT_REG | HWMOD_SET_DEFAULT_CLOCKACT,
> + .main_clk = "func_96m_fclk",
> + .prcm = {
> + .omap4 = {
> + },
> + },
> + .dev_attr = &i2c_dev_attr,
> +};
> +
>  /*
>   * 'mailbox' class
>   *
> @@ -3186,6 +3200,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per1__i2c5 = {
>   .user = OCP_USER_MPU | OCP_USER_SDMA,
>  };
>  
> +/* l4_per2 -> i2c6 */
> +static struct omap_hwmod_ocp_if dra7xx_l4_per2__i2c6 = {
> + .master = &dra7xx_l4_per2_hwmod,
> + .slave = &dra7xx_i2c6_hwmod,
> + .clk = "l3_iclk_div",
> + .user = OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
>  /* l4_cfg -> mailbox1 */
>  static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mailbox1 = {
>   .master = &dra7xx_l4_cfg_hwmod,
> @@ -3857,6 +3879,7 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
>   &dra7xx_l4_per1__i2c3,
>   &dra7xx_l4_per1__i2c4,
>   &dra7xx_l4_per1__i2c5,
> + &dra7xx_l4_per2__i2c6,

If it is available only on dra72x, register the hwmod under
dra72x_hwmod_ocp_ifs. Also in $subject use dra72x to make things clear.

Thanks and regards,
Lokesh

>   &dra7xx_l4_cfg__mailbox1,
>   &dra7xx_l4_per3__mailbox2,
>   &dra7xx_l4_per3__mailbox3,
>
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 0/2] arm: dra7: Add i2c6 instance hwmod and dt entries

Tero Kristo
In reply to this post by Nishanth Menon
On 25/05/16 19:09, Nishanth Menon wrote:

> On 05/25/2016 07:53 AM, Ravikumar Kattekola wrote:
>> DRA72x devices have a sixth i2c ocntroller instance.
>> Following patches add the required hwmod structure and
>> device tree nodes.
>>
>> Reference doc: DRA72x TRM [ SPRUHP2Q ]
>>
>> Tested on :
>> DRA72x Rev B EVM
>>
>> Ravikumar Kattekola (2):
>>    arm: dra7: Add hwmod entry for i2c6
>>    dts: dra7: Add device tree node for i2c6
>>
>>   arch/arm/boot/dts/dra7.dtsi               | 11 +++++++++++
>>   arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>>   2 files changed, 34 insertions(+)
>>
> NAK. reasoning:
> a) i2c6 is a custom IP integration with completely non-standard
> dependencies with cross device dependencies for pretty much a specific
> usecase -> usage is pretty much limited for generic support - the
> decision is NOT to support this instance in Linux kernel - internal
> discussion forwarded to developer.
> b) the patches themselves are wrong -> it applies to DRA72x not
> generic DRA7x platform
> c) patches themselves are in the wrong format (wrong subject line etc).
> d) patches don't handle the SoC internal device dependencies either ->
> in short will not function in a generic solution for all variations of
> platforms.
>

Yes please drop this, attempting to support it in upstream is just going
to cause unnecessary pain.

-Tero