[PATCH 2 15/18] I2C: OMAP2+: add correct functionality flags to all omap2plus i2c dev_attr
Cousson, Benoit
b-cousson at ti.com
Wed Mar 9 08:49:05 EST 2011
Hi Andy,
On 3/8/2011 12:09 PM, Andy Green wrote:
> This adds the new functionality flags for omap i2c unit to all OMAP2
> hwmod definitions
>
> Cc: patches at linaro.org
> Cc: Ben Dooks<ben-linux at fluff.org>
> Reported-by: Peter Maydell<peter.maydell at linaro.org>
> Signed-off-by: Andy Green<andy.green at linaro.org>
I have one minor comment about the OMAP4 dev_attr position in the structure. The point here is just to be aligned with the template used by the generator.
Acked-by: Benoit Cousson <b-cousson at ti.com>
> ---
>
> arch/arm/mach-omap2/omap_hwmod_2420_data.c | 7 ++++++-
> arch/arm/mach-omap2/omap_hwmod_2430_data.c | 3 +++
> arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 9 +++++++++
> arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 9 +++++++++
> 4 files changed, 27 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> index de92d75..fe70365 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> @@ -1450,7 +1450,12 @@ static struct omap_hwmod_class i2c_class = {
> .rev = OMAP_I2C_IP_VERSION_1,
> };
>
> -static struct omap_i2c_dev_attr i2c_dev_attr;
> +static struct omap_i2c_dev_attr i2c_dev_attr = {
> + .flags = OMAP_I2C_FLAG_NO_FIFO |
> + OMAP_I2C_FLAG_SIMPLE_CLOCK |
> + OMAP_I2C_FLAG_16BIT_DATA_REG |
> + OMAP_I2C_FLAG_BUS_SHIFT_2,
> +};
>
> /* I2C1 */
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> index d737b99..a30b100 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> @@ -1527,6 +1527,9 @@ static struct omap_hwmod_class i2c_class = {
>
> static struct omap_i2c_dev_attr i2c_dev_attr = {
> .fifo_depth = 8, /* bytes */
> + .flags = OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> + OMAP_I2C_FLAG_BUS_SHIFT_2 |
> + OMAP_I2C_FLAG_FORCE_19200_INT_CLK,
> };
>
> /* I2C1 */
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index 324162d..f804e78 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -1876,6 +1876,9 @@ static struct omap_hwmod omap3xxx_dss_venc_hwmod = {
>
> static struct omap_i2c_dev_attr i2c1_dev_attr = {
> .fifo_depth = 8, /* bytes */
> + .flags = OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> + OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
> + OMAP_I2C_FLAG_BUS_SHIFT_2,
> };
>
> static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
> @@ -1919,6 +1922,9 @@ static struct omap_hwmod omap3xxx_i2c1_hwmod = {
>
> static struct omap_i2c_dev_attr i2c2_dev_attr = {
> .fifo_depth = 8, /* bytes */
> + .flags = OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> + OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
> + OMAP_I2C_FLAG_BUS_SHIFT_2,
> };
>
> static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
> @@ -1962,6 +1968,9 @@ static struct omap_hwmod omap3xxx_i2c2_hwmod = {
>
> static struct omap_i2c_dev_attr i2c3_dev_attr = {
> .fifo_depth = 64, /* bytes */
> + .flags = OMAP_I2C_FLAG_APPLY_ERRATA_I207 |
> + OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
> + OMAP_I2C_FLAG_BUS_SHIFT_2,
> };
>
> static struct omap_hwmod_irq_info i2c3_mpu_irqs[] = {
> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> index 4b903c7..bad4b8e 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> @@ -27,6 +27,7 @@
> #include<plat/mcspi.h>
> #include<plat/mcbsp.h>
> #include<plat/mmc.h>
> +#include<plat/i2c.h>
>
> #include "omap_hwmod_common_data.h"
>
> @@ -2090,6 +2091,10 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
> .rev = OMAP_I2C_IP_VERSION_2,
> };
>
The generator is adding a (probably useless...) comment on top of the structure. For the comment I'd prefer to stick to the template. I'll do a massive cleanup when every OMAP4 drivers will be migrated to hwmod. And then OMAP2 & 3 at some point will stick to that as well.
> +static struct omap_i2c_dev_attr i2c_dev_attr = {
> + .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE,
> +};
> +
> /* i2c1 */
> static struct omap_hwmod omap44xx_i2c1_hwmod;
> static struct omap_hwmod_irq_info omap44xx_i2c1_irqs[] = {
> @@ -2140,6 +2145,7 @@ static struct omap_hwmod omap44xx_i2c1_hwmod = {
> },
dev_attr is there in the template:
+ .dev_attr =&i2c_dev_attr,
> .slaves = omap44xx_i2c1_slaves,
> .slaves_cnt = ARRAY_SIZE(omap44xx_i2c1_slaves),
> + .dev_attr =&i2c_dev_attr,
> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> };
>
> @@ -2193,6 +2199,7 @@ static struct omap_hwmod omap44xx_i2c2_hwmod = {
> },
> .slaves = omap44xx_i2c2_slaves,
> .slaves_cnt = ARRAY_SIZE(omap44xx_i2c2_slaves),
> + .dev_attr =&i2c_dev_attr,
> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> };
>
> @@ -2246,6 +2253,7 @@ static struct omap_hwmod omap44xx_i2c3_hwmod = {
> },
> .slaves = omap44xx_i2c3_slaves,
> .slaves_cnt = ARRAY_SIZE(omap44xx_i2c3_slaves),
> + .dev_attr =&i2c_dev_attr,
> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> };
>
> @@ -2299,6 +2307,7 @@ static struct omap_hwmod omap44xx_i2c4_hwmod = {
> },
> .slaves = omap44xx_i2c4_slaves,
> .slaves_cnt = ARRAY_SIZE(omap44xx_i2c4_slaves),
> + .dev_attr =&i2c_dev_attr,
> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> };
The OMAP4 part should look like the patch below. I've just updated the scripts to add the new data you introduced.
Regards,
Benoit
---
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index d3b2a46..d8365dc 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -27,6 +27,7 @@
#include <plat/mcspi.h>
#include <plat/mcbsp.h>
#include <plat/mmc.h>
+#include <plat/i2c.h>
#include "omap_hwmod_common_data.h"
@@ -2090,6 +2091,11 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
.rev = OMAP_I2C_IP_VERSION_2,
};
+/* i2c dev_attr */
+static struct omap_i2c_dev_attr i2c_dev_attr = {
+ .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE,
+};
+
/* i2c1 */
static struct omap_hwmod omap44xx_i2c1_hwmod;
static struct omap_hwmod_irq_info omap44xx_i2c1_irqs[] = {
@@ -2138,6 +2144,7 @@ static struct omap_hwmod omap44xx_i2c1_hwmod = {
.clkctrl_reg = OMAP4430_CM_L4PER_I2C1_CLKCTRL,
},
},
+ .dev_attr = &i2c_dev_attr,
.slaves = omap44xx_i2c1_slaves,
.slaves_cnt = ARRAY_SIZE(omap44xx_i2c1_slaves),
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
@@ -2191,6 +2198,7 @@ static struct omap_hwmod omap44xx_i2c2_hwmod = {
.clkctrl_reg = OMAP4430_CM_L4PER_I2C2_CLKCTRL,
},
},
+ .dev_attr = &i2c_dev_attr,
.slaves = omap44xx_i2c2_slaves,
.slaves_cnt = ARRAY_SIZE(omap44xx_i2c2_slaves),
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
@@ -2244,6 +2252,7 @@ static struct omap_hwmod omap44xx_i2c3_hwmod = {
.clkctrl_reg = OMAP4430_CM_L4PER_I2C3_CLKCTRL,
},
},
+ .dev_attr = &i2c_dev_attr,
.slaves = omap44xx_i2c3_slaves,
.slaves_cnt = ARRAY_SIZE(omap44xx_i2c3_slaves),
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
@@ -2297,6 +2306,7 @@ static struct omap_hwmod omap44xx_i2c4_hwmod = {
.clkctrl_reg = OMAP4430_CM_L4PER_I2C4_CLKCTRL,
},
},
+ .dev_attr = &i2c_dev_attr,
.slaves = omap44xx_i2c4_slaves,
.slaves_cnt = ARRAY_SIZE(omap44xx_i2c4_slaves),
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
--
1.7.0.4
More information about the linux-arm-kernel
mailing list