diff mbox

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

Message ID 20160525125341.10044-2-rk@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ravikumar Kattekola May 25, 2016, 12:53 p.m. UTC
dra72x device has i2c6 controller.
Adding hwmod definition for the same.

Reference DRA72x TRM [ SPRUHP2Q ]

Signed-off-by: Ravikumar Kattekola <rk@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Nishanth Menon May 25, 2016, 4:10 p.m. UTC | #1
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 <rk@ti.com>
> ---
>  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.
Lokesh Vutla May 26, 2016, 3:55 a.m. UTC | #2
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 <rk@ti.com>
> ---
>  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,
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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,