aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pdata-quirks.c
diff options
context:
space:
mode:
authorSuman Anna <s-anna@ti.com>2014-03-05 19:24:13 -0500
committerTony Lindgren <tony@atomide.com>2014-03-12 12:49:29 -0400
commit910f1678bba914973c077a8b120444eb3bd979d6 (patch)
treee60953d92d6a87a122c387d05f7fbeb885daa1cb /arch/arm/mach-omap2/pdata-quirks.c
parent0ac4f03f62ce17ce96bab06d7b22bafc3c6f28f1 (diff)
ARM: OMAP2+: use pdata quirks for iommu reset lines
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> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/pdata-quirks.c')
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 9723886c18ba..24bd3da928fa 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -16,12 +16,14 @@
16#include <linux/wl12xx.h> 16#include <linux/wl12xx.h>
17 17
18#include <linux/platform_data/pinctrl-single.h> 18#include <linux/platform_data/pinctrl-single.h>
19#include <linux/platform_data/iommu-omap.h>
19 20
20#include "am35xx.h" 21#include "am35xx.h"
21#include "common.h" 22#include "common.h"
22#include "common-board-devices.h" 23#include "common-board-devices.h"
23#include "dss-common.h" 24#include "dss-common.h"
24#include "control.h" 25#include "control.h"
26#include "omap_device.h"
25 27
26struct pdata_init { 28struct pdata_init {
27 const char *compatible; 29 const char *compatible;
@@ -78,6 +80,12 @@ static void __init hsmmc2_internal_input_clk(void)
78 omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); 80 omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1);
79} 81}
80 82
83static struct iommu_platform_data omap3_iommu_pdata = {
84 .reset_name = "mmu",
85 .assert_reset = omap_device_assert_hardreset,
86 .deassert_reset = omap_device_deassert_hardreset,
87};
88
81static int omap3_sbc_t3730_twl_callback(struct device *dev, 89static int omap3_sbc_t3730_twl_callback(struct device *dev,
82 unsigned gpio, 90 unsigned gpio,
83 unsigned ngpio) 91 unsigned ngpio)
@@ -231,6 +239,12 @@ static void __init omap4_panda_legacy_init(void)
231 omap4_panda_display_init_of(); 239 omap4_panda_display_init_of();
232 legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53); 240 legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
233} 241}
242
243static struct iommu_platform_data omap4_iommu_pdata = {
244 .reset_name = "mmu_cache",
245 .assert_reset = omap_device_assert_hardreset,
246 .deassert_reset = omap_device_deassert_hardreset,
247};
234#endif 248#endif
235 249
236#ifdef CONFIG_SOC_AM33XX 250#ifdef CONFIG_SOC_AM33XX
@@ -292,6 +306,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
292#ifdef CONFIG_ARCH_OMAP3 306#ifdef CONFIG_ARCH_OMAP3
293 OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata), 307 OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata),
294 OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata), 308 OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata),
309 OF_DEV_AUXDATA("ti,omap2-iommu", 0x5d000000, "5d000000.mmu",
310 &omap3_iommu_pdata),
295 /* Only on am3517 */ 311 /* Only on am3517 */
296 OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), 312 OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
297 OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", 313 OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
@@ -300,6 +316,10 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
300#ifdef CONFIG_ARCH_OMAP4 316#ifdef CONFIG_ARCH_OMAP4
301 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata), 317 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
302 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata), 318 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
319 OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
320 &omap4_iommu_pdata),
321 OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
322 &omap4_iommu_pdata),
303#endif 323#endif
304 { /* sentinel */ }, 324 { /* sentinel */ },
305}; 325};