* [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15
@ 2014-03-06 0:24 Suman Anna
2014-03-06 0:24 ` [PATCH 01/10] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
` (10 more replies)
0 siblings, 11 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
Hi Paul, Benoit,
This is a repost as per Tony's request [3] of all the OMAP IOMMU DT support
patches that are under arch/arm. The series just assimilates patches 8
through 13 from the v3 OMAP IOMMU DT adaptation for 3.15 series [1], and
all the v2 patches from the OMAP IOMMU DTS nodes [2].
The only change made with respect to the patches above is in the OMAP4
and OMAP5 DTS nodes - I have adjusted the reg sizes from 0xff to 0x100.
Can you please provide your acks on the hwmod patches and DTS
patches?
regards
Suman
[1] http://marc.info/?l=linux-omap&m=139362022805667&w=2
[2] http://marc.info/?l=linux-omap&m=139362062805816&w=2
[3] http://marc.info/?l=linux-omap&m=139404802021252&w=2
Florian Vaussard (4):
ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2
ARM: dts: OMAP3: Update ISP IOMMU node
ARM: dts: OMAP3: Add IVA IOMMU node
ARM: dts: OMAP4: Add IOMMU nodes
Suman Anna (6):
ARM: OMAP3: fix iva mmu programming issues
ARM: OMAP2+: change the ISP device archdata MMU name for DT
ARM: OMAP2+: use pdata quirks for iommu reset lines
ARM: OMAP5: hwmod data: add mmu data for ipu & dsp
ARM: OMAP2+: extend iommu pdata-quirks to OMAP5
ARM: dts: OMAP5: Add IOMMU nodes
arch/arm/boot/dts/omap3.dtsi | 15 ++++--
arch/arm/boot/dts/omap4.dtsi | 15 ++++++
arch/arm/boot/dts/omap5.dtsi | 15 ++++++
arch/arm/mach-omap2/clockdomains3xxx_data.c | 2 +-
arch/arm/mach-omap2/devices.c | 3 ++
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 ++---
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 83 +++++++++++++++++++++++++++++
arch/arm/mach-omap2/pdata-quirks.c | 24 +++++++++
arch/arm/plat-omap/Kconfig | 3 --
9 files changed, 157 insertions(+), 15 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 01/10] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 02/10] ARM: OMAP3: fix iva mmu programming issues Suman Anna
` (9 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
From: Florian Vaussard <florian.vaussard@epfl.ch>
CONFIG_OMAP_IOMMU_IVA2 was defined originally to avoid conflicting
usage by tidspbridge and other iommu users. The same can be achieved
by marking the DT node disabled, so remove this obsolete flag and
the corresponding hwmod data can be enabled.
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
[s-anna at ti.com: revise commit log]
Signed-off-by: Suman Anna <s-anna@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 8 --------
arch/arm/plat-omap/Kconfig | 3 ---
2 files changed, 11 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 4c3b1e6..81dd071 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -3029,8 +3029,6 @@ static struct omap_hwmod omap3xxx_mmu_isp_hwmod = {
.flags = HWMOD_NO_IDLEST,
};
-#ifdef CONFIG_OMAP_IOMMU_IVA2
-
/* mmu iva */
static struct omap_mmu_dev_attr mmu_iva_dev_attr = {
@@ -3082,8 +3080,6 @@ static struct omap_hwmod omap3xxx_mmu_iva_hwmod = {
.flags = HWMOD_NO_IDLEST,
};
-#endif
-
/* l4_per -> gpio4 */
static struct omap_hwmod_addr_space omap3xxx_gpio4_addrs[] = {
{
@@ -3855,9 +3851,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_l4_core__hdq1w,
&omap3xxx_sad2d__l3,
&omap3xxx_l4_core__mmu_isp,
-#ifdef CONFIG_OMAP_IOMMU_IVA2
&omap3xxx_l3_main__mmu_iva,
-#endif
&omap34xx_l4_core__ssi,
NULL
};
@@ -3881,9 +3875,7 @@ static struct omap_hwmod_ocp_if *omap36xx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_l4_core__hdq1w,
&omap3xxx_sad2d__l3,
&omap3xxx_l4_core__mmu_isp,
-#ifdef CONFIG_OMAP_IOMMU_IVA2
&omap3xxx_l3_main__mmu_iva,
-#endif
NULL
};
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index 436ea97..02fc10d 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -86,9 +86,6 @@ config OMAP_MUX_WARNINGS
to change the pin multiplexing setup. When there are no warnings
printed, it's safe to deselect OMAP_MUX for your product.
-config OMAP_IOMMU_IVA2
- bool
-
config OMAP_MPU_TIMER
bool "Use mpu timer"
depends on ARCH_OMAP1
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 02/10] ARM: OMAP3: fix iva mmu programming issues
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
2014-03-06 0:24 ` [PATCH 01/10] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-12 15:15 ` Paul Walmsley
2014-03-06 0:24 ` [PATCH 03/10] ARM: OMAP2+: change the ISP device archdata MMU name for DT Suman Anna
` (8 subsequent siblings)
10 siblings, 1 reply; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
The IVA MMU is not functional when used through the hwmod and
omap_device layers. Add fixes to clockdomain and hwmod data
to have it functional. The hwmod changes are needed to enable
the clock, and the SWSUP change is needed to wakeup the domain
because the power domain is programmed to be in RET, and there
is no automatic power domain switching to ON.
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/clockdomains3xxx_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-omap2/clockdomains3xxx_data.c b/arch/arm/mach-omap2/clockdomains3xxx_data.c
index e6b91e5..f03dc97 100644
--- a/arch/arm/mach-omap2/clockdomains3xxx_data.c
+++ b/arch/arm/mach-omap2/clockdomains3xxx_data.c
@@ -247,7 +247,7 @@ static struct clockdomain neon_clkdm = {
static struct clockdomain iva2_clkdm = {
.name = "iva2_clkdm",
.pwrdm = { .name = "iva2_pwrdm" },
- .flags = CLKDM_CAN_HWSUP_SWSUP,
+ .flags = CLKDM_CAN_SWSUP,
.dep_bit = OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT,
.wkdep_srcs = iva2_wkdeps,
.clktrctrl_mask = OMAP3430_CLKTRCTRL_IVA2_MASK,
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 81dd071..9c7e23a 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -3068,12 +3068,16 @@ static struct omap_hwmod omap3xxx_mmu_iva_hwmod = {
.name = "mmu_iva",
.class = &omap3xxx_mmu_hwmod_class,
.mpu_irqs = omap3xxx_mmu_iva_irqs,
+ .clkdm_name = "iva2_clkdm",
.rst_lines = omap3xxx_mmu_iva_resets,
.rst_lines_cnt = ARRAY_SIZE(omap3xxx_mmu_iva_resets),
.main_clk = "iva2_ck",
.prcm = {
.omap2 = {
.module_offs = OMAP3430_IVA2_MOD,
+ .module_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT,
+ .idlest_reg_id = 1,
+ .idlest_idle_bit = OMAP3430_ST_IVA2_SHIFT,
},
},
.dev_attr = &mmu_iva_dev_attr,
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 03/10] ARM: OMAP2+: change the ISP device archdata MMU name for DT
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
2014-03-06 0:24 ` [PATCH 01/10] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
2014-03-06 0:24 ` [PATCH 02/10] ARM: OMAP3: fix iva mmu programming issues Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 04/10] ARM: OMAP2+: use pdata quirks for iommu reset lines Suman Anna
` (7 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
The IOMMU DT adaptation support uses the device name instead
of an iommu object name. Fixup the ISP device archdata MMU
name at runtime if using DT-boot. This allows the OMAP3 camera
to be functional in both legacy and DT boots. The iommu object
names should eventually vanish when all the IOMMU users have
been converted to DT nodes.
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/devices.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 0dd6398..e58609b 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -229,6 +229,9 @@ static struct omap_iommu_arch_data omap3_isp_iommu = {
int omap3_init_camera(struct isp_platform_data *pdata)
{
+ if (of_have_populated_dt())
+ omap3_isp_iommu.name = "480bd400.mmu";
+
omap3isp_device.dev.platform_data = pdata;
omap3isp_device.dev.archdata.iommu = &omap3_isp_iommu;
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 04/10] ARM: OMAP2+: use pdata quirks for iommu reset lines
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (2 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 03/10] ARM: OMAP2+: change the ISP device archdata MMU name for DT Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 05/10] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
` (6 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
The OMAP iommu driver performs the reset management for the
iommu instances in processor sub-systems using the omap_device
API which are currently supplied as platform data ops. Use pdata
quirks to maintain the functionality as the OMAP iommu driver
gets converted to use DT nodes, until the reset portions are
decoupled from omap_hwmod/omap_device into a separate reset
driver.
This patch adds the pdata quirks for the reset management of
iommus within the DSP (OMAP3 & OMAP4) and IPU subsystems (OMAP4).
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/pdata-quirks.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 3d5b24d..74e094a 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -16,12 +16,14 @@
#include <linux/wl12xx.h>
#include <linux/platform_data/pinctrl-single.h>
+#include <linux/platform_data/iommu-omap.h>
#include "am35xx.h"
#include "common.h"
#include "common-board-devices.h"
#include "dss-common.h"
#include "control.h"
+#include "omap_device.h"
struct pdata_init {
const char *compatible;
@@ -92,6 +94,12 @@ static void __init hsmmc2_internal_input_clk(void)
omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1);
}
+static struct iommu_platform_data omap3_iommu_pdata = {
+ .reset_name = "mmu",
+ .assert_reset = omap_device_assert_hardreset,
+ .deassert_reset = omap_device_deassert_hardreset,
+};
+
static int omap3_sbc_t3730_twl_callback(struct device *dev,
unsigned gpio,
unsigned ngpio)
@@ -185,6 +193,12 @@ static void __init omap4_panda_legacy_init(void)
legacy_init_ehci_clk("auxclk3_ck");
legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
}
+
+static struct iommu_platform_data omap4_iommu_pdata = {
+ .reset_name = "mmu_cache",
+ .assert_reset = omap_device_assert_hardreset,
+ .deassert_reset = omap_device_deassert_hardreset,
+};
#endif
#ifdef CONFIG_SOC_OMAP5
@@ -240,6 +254,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
#ifdef CONFIG_ARCH_OMAP3
OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata),
OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata),
+ OF_DEV_AUXDATA("ti,omap2-iommu", 0x5d000000, "5d000000.mmu",
+ &omap3_iommu_pdata),
/* Only on am3517 */
OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
@@ -248,6 +264,10 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
#ifdef CONFIG_ARCH_OMAP4
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
+ OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
+ &omap4_iommu_pdata),
+ OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
+ &omap4_iommu_pdata),
#endif
{ /* sentinel */ },
};
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 05/10] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (3 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 04/10] ARM: OMAP2+: use pdata quirks for iommu reset lines Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-12 15:18 ` Paul Walmsley
2014-03-06 0:24 ` [PATCH 06/10] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5 Suman Anna
` (5 subsequent siblings)
10 siblings, 1 reply; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
A new MMU hwmod class and data structures are created
to represent the MMUs within the IPU and DSP processor
subsystems in OMAP5. The MMUs in OMAP5 are identical to
those in OMAP4.
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 83 ++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index e297d62..8923172 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -1122,6 +1122,71 @@ static struct omap_hwmod omap54xx_mmc5_hwmod = {
};
/*
+ * 'mmu' class
+ * The memory management unit performs virtual to physical address translation
+ * for its requestors.
+ */
+
+static struct omap_hwmod_class_sysconfig omap54xx_mmu_sysc = {
+ .rev_offs = 0x0000,
+ .sysc_offs = 0x0010,
+ .syss_offs = 0x0014,
+ .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
+ SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
+ SYSS_HAS_RESET_STATUS),
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
+ .sysc_fields = &omap_hwmod_sysc_type1,
+};
+
+static struct omap_hwmod_class omap54xx_mmu_hwmod_class = {
+ .name = "mmu",
+ .sysc = &omap54xx_mmu_sysc,
+};
+
+static struct omap_hwmod_rst_info omap54xx_mmu_dsp_resets[] = {
+ { .name = "mmu_cache", .rst_shift = 1 },
+};
+
+static struct omap_hwmod omap54xx_mmu_dsp_hwmod = {
+ .name = "mmu_dsp",
+ .class = &omap54xx_mmu_hwmod_class,
+ .clkdm_name = "dsp_clkdm",
+ .rst_lines = omap54xx_mmu_dsp_resets,
+ .rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_dsp_resets),
+ .main_clk = "dpll_iva_h11x2_ck",
+ .prcm = {
+ .omap4 = {
+ .clkctrl_offs = OMAP54XX_CM_DSP_DSP_CLKCTRL_OFFSET,
+ .rstctrl_offs = OMAP54XX_RM_DSP_RSTCTRL_OFFSET,
+ .context_offs = OMAP54XX_RM_DSP_DSP_CONTEXT_OFFSET,
+ .modulemode = MODULEMODE_HWCTRL,
+ },
+ },
+};
+
+/* mmu ipu */
+static struct omap_hwmod_rst_info omap54xx_mmu_ipu_resets[] = {
+ { .name = "mmu_cache", .rst_shift = 2 },
+};
+
+static struct omap_hwmod omap54xx_mmu_ipu_hwmod = {
+ .name = "mmu_ipu",
+ .class = &omap54xx_mmu_hwmod_class,
+ .clkdm_name = "ipu_clkdm",
+ .rst_lines = omap54xx_mmu_ipu_resets,
+ .rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_ipu_resets),
+ .main_clk = "dpll_core_h22x2_ck",
+ .prcm = {
+ .omap4 = {
+ .clkctrl_offs = OMAP54XX_CM_IPU_IPU_CLKCTRL_OFFSET,
+ .rstctrl_offs = OMAP54XX_RM_IPU_RSTCTRL_OFFSET,
+ .context_offs = OMAP54XX_RM_IPU_IPU_CONTEXT_OFFSET,
+ .modulemode = MODULEMODE_HWCTRL,
+ },
+ },
+};
+
+/*
* 'mpu' class
* mpu sub-system
*/
@@ -1763,6 +1828,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_1 = {
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
+/* l4_cfg -> mmu_dsp */
+static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mmu_dsp = {
+ .master = &omap54xx_l4_cfg_hwmod,
+ .slave = &omap54xx_mmu_dsp_hwmod,
+ .clk = "l4_root_clk_div",
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
/* mpu -> l3_main_1 */
static struct omap_hwmod_ocp_if omap54xx_mpu__l3_main_1 = {
.master = &omap54xx_mpu_hwmod,
@@ -1787,6 +1860,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_2 = {
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
+/* l3_main_2 -> mmu_ipu */
+static struct omap_hwmod_ocp_if omap54xx_l3_main_2__mmu_ipu = {
+ .master = &omap54xx_l3_main_2_hwmod,
+ .slave = &omap54xx_mmu_ipu_hwmod,
+ .clk = "l3_iclk_div",
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
/* l3_main_1 -> l3_main_3 */
static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l3_main_3 = {
.master = &omap54xx_l3_main_1_hwmod,
@@ -2345,6 +2426,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
&omap54xx_l4_wkup__counter_32k,
&omap54xx_l4_cfg__dma_system,
&omap54xx_l4_abe__dmic,
+ &omap54xx_l4_cfg__mmu_dsp,
&omap54xx_mpu__emif1,
&omap54xx_mpu__emif2,
&omap54xx_l4_wkup__gpio1,
@@ -2360,6 +2442,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
&omap54xx_l4_per__i2c3,
&omap54xx_l4_per__i2c4,
&omap54xx_l4_per__i2c5,
+ &omap54xx_l3_main_2__mmu_ipu,
&omap54xx_l4_wkup__kbd,
&omap54xx_l4_cfg__mailbox,
&omap54xx_l4_abe__mcbsp1,
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 06/10] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (4 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 05/10] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 07/10] ARM: dts: OMAP3: Update ISP IOMMU node Suman Anna
` (4 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
OMAP5 has the same iommus as OMAP4, so extend the OMAP4
iommu pdata quirks for OMAP5 as well.
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/pdata-quirks.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 74e094a..551877f 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -193,7 +193,9 @@ static void __init omap4_panda_legacy_init(void)
legacy_init_ehci_clk("auxclk3_ck");
legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
}
+#endif
+#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
static struct iommu_platform_data omap4_iommu_pdata = {
.reset_name = "mmu_cache",
.assert_reset = omap_device_assert_hardreset,
@@ -264,6 +266,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
#ifdef CONFIG_ARCH_OMAP4
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
+#endif
+#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
&omap4_iommu_pdata),
OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 07/10] ARM: dts: OMAP3: Update ISP IOMMU node
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (5 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 06/10] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5 Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 08/10] ARM: dts: OMAP3: Add IVA " Suman Anna
` (3 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
From: Florian Vaussard <florian.vaussard@epfl.ch>
Update the IOMMU node for the camera subsystem as per the
OMAP IOMMU bindings.
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
[s-anna at ti.com: corrected interrupt number]
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/boot/dts/omap3.dtsi | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index a5fc83b..f7a47e3 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -411,10 +411,11 @@
};
mmu_isp: mmu at 480bd400 {
- compatible = "ti,omap3-mmu-isp";
- ti,hwmods = "mmu_isp";
+ compatible = "ti,omap2-iommu";
reg = <0x480bd400 0x80>;
- interrupts = <8>;
+ interrupts = <24>;
+ ti,hwmods = "mmu_isp";
+ ti,#tlb-entries = <8>;
};
wdt2: wdt at 48314000 {
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 08/10] ARM: dts: OMAP3: Add IVA IOMMU node
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (6 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 07/10] ARM: dts: OMAP3: Update ISP IOMMU node Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 09/10] ARM: dts: OMAP4: Add IOMMU nodes Suman Anna
` (2 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
From: Florian Vaussard <florian.vaussard@epfl.ch>
Add the DT node for the IOMMU within the DSP subsystem. The entry
is disabled to keep in line with the hwmod usage as intended by
the deprecated CONFIG_OMAP_IOMMU_IVA2 flag.
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
[s-anna at ti.com: split the entry and disable the node]
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/boot/dts/omap3.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index f7a47e3..9574a9e 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -418,6 +418,14 @@
ti,#tlb-entries = <8>;
};
+ mmu_iva: mmu at 5d000000 {
+ compatible = "ti,omap2-iommu";
+ reg = <0x5d000000 0x80>;
+ interrupts = <28>;
+ ti,hwmods = "mmu_iva";
+ status = "disabled";
+ };
+
wdt2: wdt at 48314000 {
compatible = "ti,omap3-wdt";
reg = <0x48314000 0x80>;
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 09/10] ARM: dts: OMAP4: Add IOMMU nodes
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (7 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 08/10] ARM: dts: OMAP3: Add IVA " Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-06 0:24 ` [PATCH 10/10] ARM: dts: OMAP5: " Suman Anna
2014-03-11 21:49 ` [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
From: Florian Vaussard <florian.vaussard@epfl.ch>
Add the IOMMU nodes for the DSP and IPU subsystems. The MMU
within the IPU sub-system also supports a bus error back
capability, not available on the DSP MMU.
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
[s-anna at ti.com: IPU bus error back addition]
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/boot/dts/omap4.dtsi | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index d3f8a6e..2b88d97 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -461,6 +461,21 @@
dma-names = "tx", "rx";
};
+ mmu_dsp: mmu at 4a066000 {
+ compatible = "ti,omap4-iommu";
+ reg = <0x4a066000 0x100>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+ ti,hwmods = "mmu_dsp";
+ };
+
+ mmu_ipu: mmu at 55082000 {
+ compatible = "ti,omap4-iommu";
+ reg = <0x55082000 0x100>;
+ interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+ ti,hwmods = "mmu_ipu";
+ ti,iommu-bus-err-back;
+ };
+
wdt2: wdt at 4a314000 {
compatible = "ti,omap4-wdt", "ti,omap3-wdt";
reg = <0x4a314000 0x80>;
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 10/10] ARM: dts: OMAP5: Add IOMMU nodes
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (8 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 09/10] ARM: dts: OMAP4: Add IOMMU nodes Suman Anna
@ 2014-03-06 0:24 ` Suman Anna
2014-03-11 21:49 ` [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
10 siblings, 0 replies; 17+ messages in thread
From: Suman Anna @ 2014-03-06 0:24 UTC (permalink / raw)
To: linux-arm-kernel
The IOMMU DT nodes have been added for the DSP and IPU
subsystems. The MMUs in OMAP5 are identical to those in
OMAP4, including the bus error back capability on IPU.
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/boot/dts/omap5.dtsi | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index a72813a..4c16255 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -513,6 +513,21 @@
dma-names = "tx", "rx";
};
+ mmu_dsp: mmu at 4a066000 {
+ compatible = "ti,omap4-iommu";
+ reg = <0x4a066000 0x100>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+ ti,hwmods = "mmu_dsp";
+ };
+
+ mmu_ipu: mmu at 55082000 {
+ compatible = "ti,omap4-iommu";
+ reg = <0x55082000 0x100>;
+ interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+ ti,hwmods = "mmu_ipu";
+ ti,iommu-bus-err-back;
+ };
+
keypad: keypad at 4ae1c000 {
compatible = "ti,omap4-keypad";
reg = <0x4ae1c000 0x400>;
--
1.9.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
` (9 preceding siblings ...)
2014-03-06 0:24 ` [PATCH 10/10] ARM: dts: OMAP5: " Suman Anna
@ 2014-03-11 21:49 ` Suman Anna
2014-03-12 17:04 ` Tony Lindgren
10 siblings, 1 reply; 17+ messages in thread
From: Suman Anna @ 2014-03-11 21:49 UTC (permalink / raw)
To: linux-arm-kernel
Hi Paul,
On 03/05/2014 06:24 PM, Suman Anna wrote:
> Hi Paul, Benoit,
>
> This is a repost as per Tony's request [3] of all the OMAP IOMMU DT support
> patches that are under arch/arm. The series just assimilates patches 8
> through 13 from the v3 OMAP IOMMU DT adaptation for 3.15 series [1], and
> all the v2 patches from the OMAP IOMMU DTS nodes [2].
>
> The only change made with respect to the patches above is in the OMAP4
> and OMAP5 DTS nodes - I have adjusted the reg sizes from 0xff to 0x100.
>
> Can you please provide your acks on the hwmod patches and DTS
> patches?
Ping. Can you review and provide your acks for Patches 2 and 5 (the
hwmod patches) for Tony to pick up all the patches in the series?
regards
Suman
>
> [1] http://marc.info/?l=linux-omap&m=139362022805667&w=2
> [2] http://marc.info/?l=linux-omap&m=139362062805816&w=2
> [3] http://marc.info/?l=linux-omap&m=139404802021252&w=2
>
> Florian Vaussard (4):
> ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2
> ARM: dts: OMAP3: Update ISP IOMMU node
> ARM: dts: OMAP3: Add IVA IOMMU node
> ARM: dts: OMAP4: Add IOMMU nodes
>
> Suman Anna (6):
> ARM: OMAP3: fix iva mmu programming issues
> ARM: OMAP2+: change the ISP device archdata MMU name for DT
> ARM: OMAP2+: use pdata quirks for iommu reset lines
> ARM: OMAP5: hwmod data: add mmu data for ipu & dsp
> ARM: OMAP2+: extend iommu pdata-quirks to OMAP5
> ARM: dts: OMAP5: Add IOMMU nodes
>
> arch/arm/boot/dts/omap3.dtsi | 15 ++++--
> arch/arm/boot/dts/omap4.dtsi | 15 ++++++
> arch/arm/boot/dts/omap5.dtsi | 15 ++++++
> arch/arm/mach-omap2/clockdomains3xxx_data.c | 2 +-
> arch/arm/mach-omap2/devices.c | 3 ++
> arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 ++---
> arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 83 +++++++++++++++++++++++++++++
> arch/arm/mach-omap2/pdata-quirks.c | 24 +++++++++
> arch/arm/plat-omap/Kconfig | 3 --
> 9 files changed, 157 insertions(+), 15 deletions(-)
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 02/10] ARM: OMAP3: fix iva mmu programming issues
2014-03-06 0:24 ` [PATCH 02/10] ARM: OMAP3: fix iva mmu programming issues Suman Anna
@ 2014-03-12 15:15 ` Paul Walmsley
0 siblings, 0 replies; 17+ messages in thread
From: Paul Walmsley @ 2014-03-12 15:15 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 5 Mar 2014, Suman Anna wrote:
> The IVA MMU is not functional when used through the hwmod and
> omap_device layers. Add fixes to clockdomain and hwmod data
> to have it functional. The hwmod changes are needed to enable
> the clock, and the SWSUP change is needed to wakeup the domain
> because the power domain is programmed to be in RET, and there
> is no automatic power domain switching to ON.
>
> Cc: Paul Walmsley <paul@pwsan.com>
> Signed-off-by: Suman Anna <s-anna@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
- Paul
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 05/10] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp
2014-03-06 0:24 ` [PATCH 05/10] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
@ 2014-03-12 15:18 ` Paul Walmsley
0 siblings, 0 replies; 17+ messages in thread
From: Paul Walmsley @ 2014-03-12 15:18 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 5 Mar 2014, Suman Anna wrote:
> A new MMU hwmod class and data structures are created
> to represent the MMUs within the IPU and DSP processor
> subsystems in OMAP5. The MMUs in OMAP5 are identical to
> those in OMAP4.
>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Benoit Cousson <bcousson@baylibre.com>
> Signed-off-by: Suman Anna <s-anna@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
- Paul
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15
2014-03-11 21:49 ` [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
@ 2014-03-12 17:04 ` Tony Lindgren
2014-03-12 17:22 ` Suman Anna
0 siblings, 1 reply; 17+ messages in thread
From: Tony Lindgren @ 2014-03-12 17:04 UTC (permalink / raw)
To: linux-arm-kernel
* Suman Anna <s-anna@ti.com> [140311 14:52]:
> Hi Paul,
>
> On 03/05/2014 06:24 PM, Suman Anna wrote:
> >Hi Paul, Benoit,
> >
> >This is a repost as per Tony's request [3] of all the OMAP IOMMU DT support
> >patches that are under arch/arm. The series just assimilates patches 8
> >through 13 from the v3 OMAP IOMMU DT adaptation for 3.15 series [1], and
> >all the v2 patches from the OMAP IOMMU DTS nodes [2].
> >
> >The only change made with respect to the patches above is in the OMAP4
> >and OMAP5 DTS nodes - I have adjusted the reg sizes from 0xff to 0x100.
> >
> >Can you please provide your acks on the hwmod patches and DTS
> >patches?
>
> Ping. Can you review and provide your acks for Patches 2 and 5 (the
> hwmod patches) for Tony to pick up all the patches in the series?
Applied all with Paul's acks into omap-for-v3.15/dt. As it's getting
so late to the merge window, no guarantees it will actually get
pulled.
For the pdata-quirks.c changes, I assume you are working on
implementing the reset driver mentioned in the related patch?
Regards,
Tony
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15
2014-03-12 17:04 ` Tony Lindgren
@ 2014-03-12 17:22 ` Suman Anna
2014-03-12 17:29 ` Tony Lindgren
0 siblings, 1 reply; 17+ messages in thread
From: Suman Anna @ 2014-03-12 17:22 UTC (permalink / raw)
To: linux-arm-kernel
On 03/12/2014 12:04 PM, Tony Lindgren wrote:
> * Suman Anna <s-anna@ti.com> [140311 14:52]:
>> Hi Paul,
>>
>> On 03/05/2014 06:24 PM, Suman Anna wrote:
>>> Hi Paul, Benoit,
>>>
>>> This is a repost as per Tony's request [3] of all the OMAP IOMMU DT support
>>> patches that are under arch/arm. The series just assimilates patches 8
>>> through 13 from the v3 OMAP IOMMU DT adaptation for 3.15 series [1], and
>>> all the v2 patches from the OMAP IOMMU DTS nodes [2].
>>>
>>> The only change made with respect to the patches above is in the OMAP4
>>> and OMAP5 DTS nodes - I have adjusted the reg sizes from 0xff to 0x100.
>>>
>>> Can you please provide your acks on the hwmod patches and DTS
>>> patches?
>>
>> Ping. Can you review and provide your acks for Patches 2 and 5 (the
>> hwmod patches) for Tony to pick up all the patches in the series?
>
> Applied all with Paul's acks into omap-for-v3.15/dt. As it's getting
> so late to the merge window, no guarantees it will actually get
> pulled.
Thanks Tony.
>
> For the pdata-quirks.c changes, I assume you are working on
> implementing the reset driver mentioned in the related patch?
>
Dan Murphy is currently working on this, and there is still some work to
be done before it can be posted to the lists.
regards
Suman
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15
2014-03-12 17:22 ` Suman Anna
@ 2014-03-12 17:29 ` Tony Lindgren
0 siblings, 0 replies; 17+ messages in thread
From: Tony Lindgren @ 2014-03-12 17:29 UTC (permalink / raw)
To: linux-arm-kernel
* Suman Anna <s-anna@ti.com> [140312 10:25]:
> On 03/12/2014 12:04 PM, Tony Lindgren wrote:
> >
> >For the pdata-quirks.c changes, I assume you are working on
> >implementing the reset driver mentioned in the related patch?
> >
>
> Dan Murphy is currently working on this, and there is still some
> work to be done before it can be posted to the lists.
OK thanks for the update, good to hear.
Tony
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2014-03-12 17:29 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-06 0:24 [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
2014-03-06 0:24 ` [PATCH 01/10] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
2014-03-06 0:24 ` [PATCH 02/10] ARM: OMAP3: fix iva mmu programming issues Suman Anna
2014-03-12 15:15 ` Paul Walmsley
2014-03-06 0:24 ` [PATCH 03/10] ARM: OMAP2+: change the ISP device archdata MMU name for DT Suman Anna
2014-03-06 0:24 ` [PATCH 04/10] ARM: OMAP2+: use pdata quirks for iommu reset lines Suman Anna
2014-03-06 0:24 ` [PATCH 05/10] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
2014-03-12 15:18 ` Paul Walmsley
2014-03-06 0:24 ` [PATCH 06/10] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5 Suman Anna
2014-03-06 0:24 ` [PATCH 07/10] ARM: dts: OMAP3: Update ISP IOMMU node Suman Anna
2014-03-06 0:24 ` [PATCH 08/10] ARM: dts: OMAP3: Add IVA " Suman Anna
2014-03-06 0:24 ` [PATCH 09/10] ARM: dts: OMAP4: Add IOMMU nodes Suman Anna
2014-03-06 0:24 ` [PATCH 10/10] ARM: dts: OMAP5: " Suman Anna
2014-03-11 21:49 ` [PATCH 00/10] arch/arm OMAP IOMMU patches for 3.15 Suman Anna
2014-03-12 17:04 ` Tony Lindgren
2014-03-12 17:22 ` Suman Anna
2014-03-12 17:29 ` Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).