* [PATCH 1/9] ARM: OMAP2/3: hwmod data: update old names
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 2/9] ARM: OMAP3: hwmod data: fix interfaces for the MMC hwmods Paul Walmsley
` (7 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
Some of the 2xxx and 3xxx hwmod data files use the old naming style
for hwmods, ending in a "_hwmod". These names are used by the OMAP
integration code to map hwmods to platform_devices, so they need to be
consistent, or the platform_devices won't be created. Remove the
_hwmod suffix to conform with the rest of the OMAP SoC data.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/omap_hwmod_2420_data.c | 4 ++--
arch/arm/mach-omap2/omap_hwmod_2430_data.c | 6 +++---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 10 +++++-----
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
index a5409ce..02a8b39 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
@@ -1376,7 +1376,7 @@ static struct omap2_mcspi_dev_attr omap_mcspi1_dev_attr = {
};
static struct omap_hwmod omap2420_mcspi1_hwmod = {
- .name = "mcspi1_hwmod",
+ .name = "mcspi1",
.mpu_irqs = omap2_mcspi1_mpu_irqs,
.sdma_reqs = omap2_mcspi1_sdma_reqs,
.main_clk = "mcspi1_fck",
@@ -1405,7 +1405,7 @@ static struct omap2_mcspi_dev_attr omap_mcspi2_dev_attr = {
};
static struct omap_hwmod omap2420_mcspi2_hwmod = {
- .name = "mcspi2_hwmod",
+ .name = "mcspi2",
.mpu_irqs = omap2_mcspi2_mpu_irqs,
.sdma_reqs = omap2_mcspi2_sdma_reqs,
.main_clk = "mcspi2_fck",
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
index c4f56cb..e260ad7 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
@@ -1481,7 +1481,7 @@ static struct omap2_mcspi_dev_attr omap_mcspi1_dev_attr = {
};
static struct omap_hwmod omap2430_mcspi1_hwmod = {
- .name = "mcspi1_hwmod",
+ .name = "mcspi1",
.mpu_irqs = omap2_mcspi1_mpu_irqs,
.sdma_reqs = omap2_mcspi1_sdma_reqs,
.main_clk = "mcspi1_fck",
@@ -1510,7 +1510,7 @@ static struct omap2_mcspi_dev_attr omap_mcspi2_dev_attr = {
};
static struct omap_hwmod omap2430_mcspi2_hwmod = {
- .name = "mcspi2_hwmod",
+ .name = "mcspi2",
.mpu_irqs = omap2_mcspi2_mpu_irqs,
.sdma_reqs = omap2_mcspi2_sdma_reqs,
.main_clk = "mcspi2_fck",
@@ -1552,7 +1552,7 @@ static struct omap2_mcspi_dev_attr omap_mcspi3_dev_attr = {
};
static struct omap_hwmod omap2430_mcspi3_hwmod = {
- .name = "mcspi3_hwmod",
+ .name = "mcspi3",
.mpu_irqs = omap2430_mcspi3_mpu_irqs,
.sdma_reqs = omap2430_mcspi3_sdma_reqs,
.main_clk = "mcspi3_fck",
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 3c8dd92..536d0c6 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -1087,7 +1087,7 @@ static struct omap_hwmod omap3xxx_timer11_hwmod = {
.class = &omap3xxx_timer_hwmod_class,
};
-/* timer12*/
+/* timer12 */
static struct omap_hwmod omap3xxx_timer12_hwmod;
static struct omap_hwmod_irq_info omap3xxx_timer12_mpu_irqs[] = {
{ .irq = 95, },
@@ -2669,7 +2669,7 @@ static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = {
};
static struct omap_hwmod omap34xx_sr1_hwmod = {
- .name = "sr1_hwmod",
+ .name = "sr1",
.class = &omap34xx_smartreflex_hwmod_class,
.main_clk = "sr1_fck",
.vdd_name = "mpu_iva",
@@ -2688,7 +2688,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
};
static struct omap_hwmod omap36xx_sr1_hwmod = {
- .name = "sr1_hwmod",
+ .name = "sr1",
.class = &omap36xx_smartreflex_hwmod_class,
.main_clk = "sr1_fck",
.vdd_name = "mpu_iva",
@@ -2711,7 +2711,7 @@ static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = {
};
static struct omap_hwmod omap34xx_sr2_hwmod = {
- .name = "sr2_hwmod",
+ .name = "sr2",
.class = &omap34xx_smartreflex_hwmod_class,
.main_clk = "sr2_fck",
.vdd_name = "core",
@@ -2730,7 +2730,7 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
};
static struct omap_hwmod omap36xx_sr2_hwmod = {
- .name = "sr2_hwmod",
+ .name = "sr2",
.class = &omap36xx_smartreflex_hwmod_class,
.main_clk = "sr2_fck",
.vdd_name = "core",
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/9] ARM: OMAP3: hwmod data: fix interfaces for the MMC hwmods
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
2012-02-28 11:10 ` [PATCH 1/9] ARM: OMAP2/3: hwmod data: update old names Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 3/9] ARM: OMAP3: hwmod data: add DSS->L3 interconnect for 3430ES1 Paul Walmsley
` (6 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
Commit a52e2ab66d4a9305e1ba64d9b9d25754b6c70895 ("ARM: OMAP3: hwmod
data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1")
didn't link the MMC hwmods to the interconnects correctly. Future
patches will register hwmods by interface, so if this is not fixed,
the MMC IP blocks won't be registered. Update the interface data
records to point to the correct IP blocks.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 38 ++++++++++++++++++++++------
1 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 536d0c6..a432618 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -70,8 +70,10 @@ static struct omap_hwmod omap34xx_mcspi1;
static struct omap_hwmod omap34xx_mcspi2;
static struct omap_hwmod omap34xx_mcspi3;
static struct omap_hwmod omap34xx_mcspi4;
-static struct omap_hwmod omap3xxx_mmc1_hwmod;
-static struct omap_hwmod omap3xxx_mmc2_hwmod;
+static struct omap_hwmod omap3xxx_pre_es3_mmc1_hwmod;
+static struct omap_hwmod omap3xxx_es3plus_mmc1_hwmod;
+static struct omap_hwmod omap3xxx_pre_es3_mmc2_hwmod;
+static struct omap_hwmod omap3xxx_es3plus_mmc2_hwmod;
static struct omap_hwmod omap3xxx_mmc3_hwmod;
static struct omap_hwmod am35xx_usbhsotg_hwmod;
@@ -192,9 +194,18 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_core__l4_wkup = {
};
/* L4 CORE -> MMC1 interface */
-static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc1 = {
+static struct omap_hwmod_ocp_if omap3xxx_l4_core__pre_es3_mmc1 = {
.master = &omap3xxx_l4_core_hwmod,
- .slave = &omap3xxx_mmc1_hwmod,
+ .slave = &omap3xxx_pre_es3_mmc1_hwmod,
+ .clk = "mmchs1_ick",
+ .addr = omap2430_mmc1_addr_space,
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+ .flags = OMAP_FIREWALL_L4
+};
+
+static struct omap_hwmod_ocp_if omap3xxx_l4_core__es3plus_mmc1 = {
+ .master = &omap3xxx_l4_core_hwmod,
+ .slave = &omap3xxx_es3plus_mmc1_hwmod,
.clk = "mmchs1_ick",
.addr = omap2430_mmc1_addr_space,
.user = OCP_USER_MPU | OCP_USER_SDMA,
@@ -202,9 +213,18 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc1 = {
};
/* L4 CORE -> MMC2 interface */
-static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc2 = {
+static struct omap_hwmod_ocp_if omap3xxx_l4_core__pre_es3_mmc2 = {
+ .master = &omap3xxx_l4_core_hwmod,
+ .slave = &omap3xxx_pre_es3_mmc2_hwmod,
+ .clk = "mmchs2_ick",
+ .addr = omap2430_mmc2_addr_space,
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+ .flags = OMAP_FIREWALL_L4
+};
+
+static struct omap_hwmod_ocp_if omap3xxx_l4_core__es3plus_mmc2 = {
.master = &omap3xxx_l4_core_hwmod,
- .slave = &omap3xxx_mmc2_hwmod,
+ .slave = &omap3xxx_es3plus_mmc2_hwmod,
.clk = "mmchs2_ick",
.addr = omap2430_mmc2_addr_space,
.user = OCP_USER_MPU | OCP_USER_SDMA,
@@ -3141,7 +3161,8 @@ static struct omap_hwmod_opt_clk omap34xx_mmc1_opt_clks[] = {
};
static struct omap_hwmod_ocp_if *omap3xxx_mmc1_slaves[] = {
- &omap3xxx_l4_core__mmc1,
+ &omap3xxx_l4_core__pre_es3_mmc1,
+ &omap3xxx_l4_core__es3plus_mmc1,
};
static struct omap_mmc_dev_attr mmc1_dev_attr = {
@@ -3216,7 +3237,8 @@ static struct omap_hwmod_opt_clk omap34xx_mmc2_opt_clks[] = {
};
static struct omap_hwmod_ocp_if *omap3xxx_mmc2_slaves[] = {
- &omap3xxx_l4_core__mmc2,
+ &omap3xxx_l4_core__pre_es3_mmc2,
+ &omap3xxx_l4_core__es3plus_mmc2,
};
/* See 35xx errata 2.1.1.128 in SPRZ278F */
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/9] ARM: OMAP3: hwmod data: add DSS->L3 interconnect for 3430ES1
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
2012-02-28 11:10 ` [PATCH 1/9] ARM: OMAP2/3: hwmod data: update old names Paul Walmsley
2012-02-28 11:10 ` [PATCH 2/9] ARM: OMAP3: hwmod data: fix interfaces for the MMC hwmods Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data Paul Walmsley
` (5 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
The OMAP3 hwmod data was missing a DSS->L3 interconnect link for the
OMAP3430 ES1 DSS hwmod. Since the hwmod code and data is being modified
to register interfaces rather than hwmods, this would result in the DSS hwmod
not being registered correctly on OMAP3430ES1.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index a432618..48b6a88 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -133,6 +133,12 @@ static struct omap_hwmod_ocp_if *omap3xxx_l3_main_slaves[] = {
};
/* DSS -> l3 */
+static struct omap_hwmod_ocp_if omap3430es1_dss__l3 = {
+ .master = &omap3430es1_dss_core_hwmod,
+ .slave = &omap3xxx_l3_main_hwmod,
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
static struct omap_hwmod_ocp_if omap3xxx_dss__l3 = {
.master = &omap3xxx_dss_core_hwmod,
.slave = &omap3xxx_l3_main_hwmod,
@@ -1400,6 +1406,7 @@ static struct omap_hwmod_dma_info omap3xxx_dss_sdma_chs[] = {
/* dss master ports */
static struct omap_hwmod_ocp_if *omap3xxx_dss_masters[] = {
&omap3xxx_dss__l3,
+ &omap3430es1_dss__l3,
};
/* l4_core -> dss */
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
` (2 preceding siblings ...)
2012-02-28 11:10 ` [PATCH 3/9] ARM: OMAP3: hwmod data: add DSS->L3 interconnect for 3430ES1 Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-03-09 3:51 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 4/9] ARM: OMAP3: hwmod data: GPTIMER12 is attached to a separate interconnect Paul Walmsley
` (4 subsequent siblings)
8 siblings, 1 reply; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
Commit d34427267186827dfd62bd8cf726601fffb22534 ("OMAP3: PM: Adding
smartreflex hwmod data") added OMAP36xx-specific SmartReflex IP block
data, but attempted to share the interface data with the OMAP34xx IP
blocks. This causes some problems - for example, the 36xx IP blocks
won't be registered when the hwmod subsystem is modified to register
links, since they aren't connected to the rest of the data. So,
modify the OMAP36xx SmartReflex IP block data to use separate
interface data structures from the OMAP34xx SmartReflex IP blocks.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Thara Gopinath <thara@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 54 +++++++++++++++++++++-------
1 files changed, 40 insertions(+), 14 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 417a007..e6b4e76 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -66,6 +66,8 @@ static struct omap_hwmod omap3xxx_gpio5_hwmod;
static struct omap_hwmod omap3xxx_gpio6_hwmod;
static struct omap_hwmod omap34xx_sr1_hwmod;
static struct omap_hwmod omap34xx_sr2_hwmod;
+static struct omap_hwmod omap36xx_sr1_hwmod;
+static struct omap_hwmod omap36xx_sr2_hwmod;
static struct omap_hwmod omap34xx_mcspi1;
static struct omap_hwmod omap34xx_mcspi2;
static struct omap_hwmod omap34xx_mcspi3;
@@ -413,7 +415,7 @@ static struct omap_hwmod_addr_space omap3_sr1_addr_space[] = {
{ }
};
-static struct omap_hwmod_ocp_if omap3_l4_core__sr1 = {
+static struct omap_hwmod_ocp_if omap34xx_l4_core__sr1 = {
.master = &omap3xxx_l4_core_hwmod,
.slave = &omap34xx_sr1_hwmod,
.clk = "sr_l4_ick",
@@ -421,6 +423,14 @@ static struct omap_hwmod_ocp_if omap3_l4_core__sr1 = {
.user = OCP_USER_MPU,
};
+static struct omap_hwmod_ocp_if omap36xx_l4_core__sr1 = {
+ .master = &omap3xxx_l4_core_hwmod,
+ .slave = &omap36xx_sr1_hwmod,
+ .clk = "sr_l4_ick",
+ .addr = omap3_sr1_addr_space,
+ .user = OCP_USER_MPU,
+};
+
/* L4 CORE -> SR1 interface */
static struct omap_hwmod_addr_space omap3_sr2_addr_space[] = {
{
@@ -431,7 +441,7 @@ static struct omap_hwmod_addr_space omap3_sr2_addr_space[] = {
{ }
};
-static struct omap_hwmod_ocp_if omap3_l4_core__sr2 = {
+static struct omap_hwmod_ocp_if omap34xx_l4_core__sr2 = {
.master = &omap3xxx_l4_core_hwmod,
.slave = &omap34xx_sr2_hwmod,
.clk = "sr_l4_ick",
@@ -439,6 +449,14 @@ static struct omap_hwmod_ocp_if omap3_l4_core__sr2 = {
.user = OCP_USER_MPU,
};
+static struct omap_hwmod_ocp_if omap36xx_l4_core__sr2 = {
+ .master = &omap3xxx_l4_core_hwmod,
+ .slave = &omap36xx_sr2_hwmod,
+ .clk = "sr_l4_ick",
+ .addr = omap3_sr2_addr_space,
+ .user = OCP_USER_MPU,
+};
+
/*
* usbhsotg interface data
*/
@@ -2713,8 +2731,8 @@ static struct omap_hwmod_class omap36xx_smartreflex_hwmod_class = {
};
/* SR1 */
-static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = {
- &omap3_l4_core__sr1,
+static struct omap_hwmod_ocp_if *omap34xx_sr1_slaves[] = {
+ &omap34xx_l4_core__sr1,
};
static struct omap_hwmod omap34xx_sr1_hwmod = {
@@ -2731,11 +2749,15 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
.idlest_idle_bit = OMAP3430_EN_SR1_SHIFT,
},
},
- .slaves = omap3_sr1_slaves,
- .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves),
+ .slaves = omap34xx_sr1_slaves,
+ .slaves_cnt = ARRAY_SIZE(omap34xx_sr1_slaves),
.flags = HWMOD_SET_DEFAULT_CLOCKACT,
};
+static struct omap_hwmod_ocp_if *omap36xx_sr1_slaves[] = {
+ &omap36xx_l4_core__sr1,
+};
+
static struct omap_hwmod omap36xx_sr1_hwmod = {
.name = "sr1",
.class = &omap36xx_smartreflex_hwmod_class,
@@ -2750,13 +2772,13 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
.idlest_idle_bit = OMAP3430_EN_SR1_SHIFT,
},
},
- .slaves = omap3_sr1_slaves,
- .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves),
+ .slaves = omap36xx_sr1_slaves,
+ .slaves_cnt = ARRAY_SIZE(omap36xx_sr1_slaves),
};
/* SR2 */
-static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = {
- &omap3_l4_core__sr2,
+static struct omap_hwmod_ocp_if *omap34xx_sr2_slaves[] = {
+ &omap34xx_l4_core__sr2,
};
static struct omap_hwmod omap34xx_sr2_hwmod = {
@@ -2773,11 +2795,15 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
.idlest_idle_bit = OMAP3430_EN_SR2_SHIFT,
},
},
- .slaves = omap3_sr2_slaves,
- .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves),
+ .slaves = omap34xx_sr2_slaves,
+ .slaves_cnt = ARRAY_SIZE(omap34xx_sr2_slaves),
.flags = HWMOD_SET_DEFAULT_CLOCKACT,
};
+static struct omap_hwmod_ocp_if *omap36xx_sr2_slaves[] = {
+ &omap36xx_l4_core__sr2,
+};
+
static struct omap_hwmod omap36xx_sr2_hwmod = {
.name = "sr2",
.class = &omap36xx_smartreflex_hwmod_class,
@@ -2792,8 +2818,8 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
.idlest_idle_bit = OMAP3430_EN_SR2_SHIFT,
},
},
- .slaves = omap3_sr2_slaves,
- .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves),
+ .slaves = omap36xx_sr2_slaves,
+ .slaves_cnt = ARRAY_SIZE(omap36xx_sr2_slaves),
};
/*
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data
2012-02-28 11:10 ` [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data Paul Walmsley
@ 2012-03-09 3:51 ` Paul Walmsley
2012-03-09 8:20 ` Jean Pihet
0 siblings, 1 reply; 13+ messages in thread
From: Paul Walmsley @ 2012-03-09 3:51 UTC (permalink / raw)
To: linux-arm-kernel
Dropping this patch from this series due to conflicts with the SmartReflex
branch. It will be moved to a subsequent series.
- Paul
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data
2012-03-09 3:51 ` Paul Walmsley
@ 2012-03-09 8:20 ` Jean Pihet
2012-03-09 16:55 ` Paul Walmsley
0 siblings, 1 reply; 13+ messages in thread
From: Jean Pihet @ 2012-03-09 8:20 UTC (permalink / raw)
To: linux-arm-kernel
Hi Paul,
On Fri, Mar 9, 2012 at 4:51 AM, Paul Walmsley <paul@pwsan.com> wrote:
>
> Dropping this patch from this series due to conflicts with the SmartReflex
> branch. ?It will be moved to a subsequent series.
I can take this change as part of the series I am preparing for the SR
conversion to drivers/.
What do you thin?
> - Paul
Jean
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data
2012-03-09 8:20 ` Jean Pihet
@ 2012-03-09 16:55 ` Paul Walmsley
0 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-03-09 16:55 UTC (permalink / raw)
To: linux-arm-kernel
Hi
On Fri, 9 Mar 2012, Jean Pihet wrote:
> On Fri, Mar 9, 2012 at 4:51 AM, Paul Walmsley <paul@pwsan.com> wrote:
> >
> > Dropping this patch from this series due to conflicts with the SmartReflex
> > branch. ?It will be moved to a subsequent series.
> I can take this change as part of the series I am preparing for the SR
> conversion to drivers/.
> What do you thin?
I've already included it as part of another pull request...
- Paul
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 4/9] ARM: OMAP3: hwmod data: GPTIMER12 is attached to a separate interconnect
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
` (3 preceding siblings ...)
2012-02-28 11:10 ` [PATCH 5/9] ARM: OMAP36xx: hwmod data: fix SmartReflex interface data Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 6/9] ARM: OMAP4: hwmod data: remove bandgap hwmod Paul Walmsley
` (3 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
GPTIMER12 is attached to the L4 SEC interconnect, not directly to L4 WKUP.
Add the L4 SEC interconnect and attach GPTIMER12 to it.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 48b6a88..417a007 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -170,6 +170,7 @@ static struct omap_hwmod omap3xxx_l3_main_hwmod = {
};
static struct omap_hwmod omap3xxx_l4_wkup_hwmod;
+static struct omap_hwmod omap3xxx_l4_sec_hwmod;
static struct omap_hwmod omap3xxx_uart1_hwmod;
static struct omap_hwmod omap3xxx_uart2_hwmod;
static struct omap_hwmod omap3xxx_uart3_hwmod;
@@ -521,6 +522,13 @@ static struct omap_hwmod omap3xxx_l4_per_hwmod = {
.flags = HWMOD_NO_IDLEST,
};
+/* L4_WKUP -> L4_SEC interface */
+static struct omap_hwmod_ocp_if omap3xxx_l4_wkup__l4_sec = {
+ .master = &omap3xxx_l4_wkup_hwmod,
+ .slave = &omap3xxx_l4_sec_hwmod,
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
/* Slave interfaces on the L4_WKUP interconnect */
static struct omap_hwmod_ocp_if *omap3xxx_l4_wkup_slaves[] = {
&omap3xxx_l4_core__l4_wkup,
@@ -535,6 +543,20 @@ static struct omap_hwmod omap3xxx_l4_wkup_hwmod = {
.flags = HWMOD_NO_IDLEST,
};
+/* Slave interfaces on the L4_SEC interconnect */
+static struct omap_hwmod_ocp_if *omap3xxx_l4_sec_slaves[] = {
+ &omap3xxx_l4_wkup__l4_sec,
+};
+
+/* L4 SEC */
+static struct omap_hwmod omap3xxx_l4_sec_hwmod = {
+ .name = "l4_sec",
+ .class = &l4_hwmod_class,
+ .slaves = omap3xxx_l4_sec_slaves,
+ .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_sec_slaves),
+ .flags = HWMOD_NO_IDLEST,
+};
+
/* Master interfaces on the MPU device */
static struct omap_hwmod_ocp_if *omap3xxx_mpu_masters[] = {
&omap3xxx_mpu__l3_main,
@@ -1130,8 +1152,8 @@ static struct omap_hwmod_addr_space omap3xxx_timer12_addrs[] = {
};
/* l4_core -> timer12 */
-static struct omap_hwmod_ocp_if omap3xxx_l4_core__timer12 = {
- .master = &omap3xxx_l4_core_hwmod,
+static struct omap_hwmod_ocp_if omap3xxx_l4_sec__timer12 = {
+ .master = &omap3xxx_l4_sec_hwmod,
.slave = &omap3xxx_timer12_hwmod,
.clk = "gpt12_ick",
.addr = omap3xxx_timer12_addrs,
@@ -1140,7 +1162,7 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_core__timer12 = {
/* timer12 slave port */
static struct omap_hwmod_ocp_if *omap3xxx_timer12_slaves[] = {
- &omap3xxx_l4_core__timer12,
+ &omap3xxx_l4_sec__timer12,
};
/* timer12 hwmod */
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 6/9] ARM: OMAP4: hwmod data: remove bandgap hwmod
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
` (4 preceding siblings ...)
2012-02-28 11:10 ` [PATCH 4/9] ARM: OMAP3: hwmod data: GPTIMER12 is attached to a separate interconnect Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 8/9] ARM: OMAP4: hwmod data: uncomment some "excluded" hwmods Paul Walmsley
` (2 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
Commit 407a6888f7362cb3dabe69ea6d9dcf3c750dc56a ("OMAP4: hwmod data:
Add AESS, McPDM, bandgap, counter_32k, MMC, KBD, ISS & IPU") adds a
hwmod for the bandgap die temperature sensor IP block. This IP block
has no interconnect port or firewall region, nor does it have an
independent register space or OCP control registers. Its registers
are embedded in the System Control Module (SCM) IP block. So it
appears that the bandgap device should be created by the SCM driver.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Beno?t Cousson <b-cousson@ti.com>
---
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 30 ----------------------------
1 files changed, 0 insertions(+), 30 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 264c988..8dfed19 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -824,33 +824,6 @@ static struct omap_hwmod omap44xx_aess_hwmod = {
};
/*
- * 'bandgap' class
- * bangap reference for ldo regulators
- */
-
-static struct omap_hwmod_class omap44xx_bandgap_hwmod_class = {
- .name = "bandgap",
-};
-
-/* bandgap */
-static struct omap_hwmod_opt_clk bandgap_opt_clks[] = {
- { .role = "fclk", .clk = "bandgap_fclk" },
-};
-
-static struct omap_hwmod omap44xx_bandgap_hwmod = {
- .name = "bandgap",
- .class = &omap44xx_bandgap_hwmod_class,
- .clkdm_name = "l4_wkup_clkdm",
- .prcm = {
- .omap4 = {
- .clkctrl_offs = OMAP4_CM_WKUP_BANDGAP_CLKCTRL_OFFSET,
- },
- },
- .opt_clks = bandgap_opt_clks,
- .opt_clks_cnt = ARRAY_SIZE(bandgap_opt_clks),
-};
-
-/*
* 'counter' class
* 32-bit ordinary counter, clocked by the falling edge of the 32 khz clock
*/
@@ -5436,9 +5409,6 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
/* aess class */
/* &omap44xx_aess_hwmod, */
- /* bandgap class */
- &omap44xx_bandgap_hwmod,
-
/* counter class */
/* &omap44xx_counter_32k_hwmod, */
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 8/9] ARM: OMAP4: hwmod data: uncomment some "excluded" hwmods
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
` (5 preceding siblings ...)
2012-02-28 11:10 ` [PATCH 6/9] ARM: OMAP4: hwmod data: remove bandgap hwmod Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 7/9] ARM: OMAP4: hwmod data: add OCP_USER_DSP; mark omap44xx_dsp__iva appropriately Paul Walmsley
2012-02-28 11:10 ` [PATCH 9/9] ARM: OMAP2+: hwmod: extend OCP_* register offsets from 16 to 32 bits Paul Walmsley
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
Some hwmods were commented out from the OMAP4 data, under the theory
that they shouldn't be added until drivers were ready. But part of
the utility of the hwmod code is that it can reset and properly
initialize IP blocks that have no drivers associated with them.
Rather than commenting the links in the future hwmod data conversion
patches, discussing this with Benoit, it seems best to simply
uncomment them now.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Beno?t Cousson <b-cousson@ti.com>
---
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index f3fd64d..4190385 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -5408,10 +5408,10 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
&omap44xx_mpu_private_hwmod,
/* aess class */
-/* &omap44xx_aess_hwmod, */
+ &omap44xx_aess_hwmod,
/* counter class */
-/* &omap44xx_counter_32k_hwmod, */
+ &omap44xx_counter_32k_hwmod,
/* dma class */
&omap44xx_dma_system_hwmod,
@@ -5440,7 +5440,7 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
&omap44xx_gpio6_hwmod,
/* hsi class */
-/* &omap44xx_hsi_hwmod, */
+ &omap44xx_hsi_hwmod,
/* i2c class */
&omap44xx_i2c1_hwmod,
@@ -5452,7 +5452,7 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
&omap44xx_ipu_hwmod,
/* iss class */
-/* &omap44xx_iss_hwmod, */
+ &omap44xx_iss_hwmod,
/* iva class */
&omap44xx_iva_hwmod,
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 7/9] ARM: OMAP4: hwmod data: add OCP_USER_DSP; mark omap44xx_dsp__iva appropriately
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
` (6 preceding siblings ...)
2012-02-28 11:10 ` [PATCH 8/9] ARM: OMAP4: hwmod data: uncomment some "excluded" hwmods Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
2012-02-28 11:10 ` [PATCH 9/9] ARM: OMAP2+: hwmod: extend OCP_* register offsets from 16 to 32 bits Paul Walmsley
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
One of the OMAP4 links was missing OCP_USER flags, since it was only
used by the DSP initiator, and we did not have an OCP_USER_DSP flag.
Future patches will switch the hwmod code and data to register
interfaces, rather than hwmods, and it will be mandatory for all
interfaces to have at least one user bit set. This patch resolves the
issue by adding OCP_USER_DSP and marking the DSP-IVA interface
appropriately.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Beno?t Cousson <b-cousson@ti.com>
---
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 1 +
arch/arm/plat-omap/include/plat/omap_hwmod.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 8dfed19..f3fd64d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -1089,6 +1089,7 @@ static struct omap_hwmod_ocp_if omap44xx_dsp__iva = {
.master = &omap44xx_dsp_hwmod,
.slave = &omap44xx_iva_hwmod,
.clk = "dpll_iva_m5x2_ck",
+ .user = OCP_USER_DSP,
};
/* dsp master ports */
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 8814365..f0a0711 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -213,6 +213,7 @@ struct omap_hwmod_addr_space {
*/
#define OCP_USER_MPU (1 << 0)
#define OCP_USER_SDMA (1 << 1)
+#define OCP_USER_DSP (1 << 2)
/* omap_hwmod_ocp_if.flags bits */
#define OCPIF_SWSUP_IDLE (1 << 0)
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 9/9] ARM: OMAP2+: hwmod: extend OCP_* register offsets from 16 to 32 bits
2012-02-28 11:10 [PATCH 0/9] ARM: OMAP2+: hwmod data: cleanup in preparation for link array removal Paul Walmsley
` (7 preceding siblings ...)
2012-02-28 11:10 ` [PATCH 7/9] ARM: OMAP4: hwmod data: add OCP_USER_DSP; mark omap44xx_dsp__iva appropriately Paul Walmsley
@ 2012-02-28 11:10 ` Paul Walmsley
8 siblings, 0 replies; 13+ messages in thread
From: Paul Walmsley @ 2012-02-28 11:10 UTC (permalink / raw)
To: linux-arm-kernel
Extend the OCP_* register offsets in the struct
omap_hwmod_class_sysconfig to 32 bits. This is required to add the
OMAP4+ GPU hwmod, which uses OCP_* register offsets larger than 16
bits.
Another possible solution may be to simply add a single 16 bit offset
field in this structure, and to add code to factor that offset into
all OCP_* register accesses. This would save some memory, since
almost no modules need 32 bit offsets.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Beno?t Cousson <b-cousson@ti.com>
---
arch/arm/plat-omap/include/plat/omap_hwmod.h | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index f0a0711..083b6da 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -328,9 +328,9 @@ struct omap_hwmod_sysc_fields {
* then this field has to be populated with the correct offset structure.
*/
struct omap_hwmod_class_sysconfig {
- u16 rev_offs;
- u16 sysc_offs;
- u16 syss_offs;
+ u32 rev_offs;
+ u32 sysc_offs;
+ u32 syss_offs;
u16 sysc_flags;
struct omap_hwmod_sysc_fields *sysc_fields;
u8 srst_udelay;
^ permalink raw reply related [flat|nested] 13+ messages in thread