diff options
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 23 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-peripherals.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/devices.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-omap2/display.c | 39 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mcbsp.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap-secure.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap4-common.c | 10 |
9 files changed, 82 insertions, 52 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 904bd1dfcd2e..a8ba7b96dcd1 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -366,8 +366,8 @@ config OMAP3_SDRC_AC_TIMING | |||
366 | going on could result in system crashes; | 366 | going on could result in system crashes; |
367 | 367 | ||
368 | config OMAP4_ERRATA_I688 | 368 | config OMAP4_ERRATA_I688 |
369 | bool "OMAP4 errata: Async Bridge Corruption" | 369 | bool "OMAP4 errata: Async Bridge Corruption (BROKEN)" |
370 | depends on ARCH_OMAP4 | 370 | depends on ARCH_OMAP4 && BROKEN |
371 | select ARCH_HAS_BARRIERS | 371 | select ARCH_HAS_BARRIERS |
372 | help | 372 | help |
373 | If a data is stalled inside asynchronous bridge because of back | 373 | If a data is stalled inside asynchronous bridge because of back |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 2ceb75d21eb2..39fba9df17fb 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -602,20 +602,6 @@ static void __init omap_sfh7741prox_init(void) | |||
602 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); | 602 | __func__, OMAP4_SFH7741_ENABLE_GPIO, error); |
603 | } | 603 | } |
604 | 604 | ||
605 | static void sdp4430_hdmi_mux_init(void) | ||
606 | { | ||
607 | /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ | ||
608 | omap_mux_init_signal("hdmi_hpd", | ||
609 | OMAP_PIN_INPUT_PULLUP); | ||
610 | omap_mux_init_signal("hdmi_cec", | ||
611 | OMAP_PIN_INPUT_PULLUP); | ||
612 | /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */ | ||
613 | omap_mux_init_signal("hdmi_ddc_scl", | ||
614 | OMAP_PIN_INPUT_PULLUP); | ||
615 | omap_mux_init_signal("hdmi_ddc_sda", | ||
616 | OMAP_PIN_INPUT_PULLUP); | ||
617 | } | ||
618 | |||
619 | static struct gpio sdp4430_hdmi_gpios[] = { | 605 | static struct gpio sdp4430_hdmi_gpios[] = { |
620 | { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, | 606 | { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, |
621 | { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, | 607 | { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, |
@@ -833,9 +819,16 @@ static void omap_4430sdp_display_init(void) | |||
833 | pr_err("%s: Could not get display_sel GPIO\n", __func__); | 819 | pr_err("%s: Could not get display_sel GPIO\n", __func__); |
834 | 820 | ||
835 | sdp4430_lcd_init(); | 821 | sdp4430_lcd_init(); |
836 | sdp4430_hdmi_mux_init(); | ||
837 | sdp4430_picodlp_init(); | 822 | sdp4430_picodlp_init(); |
838 | omap_display_init(&sdp4430_dss_data); | 823 | omap_display_init(&sdp4430_dss_data); |
824 | /* | ||
825 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
826 | * later have external pull up on the HDMI I2C lines | ||
827 | */ | ||
828 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
829 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
830 | else | ||
831 | omap_hdmi_init(0); | ||
839 | } | 832 | } |
840 | 833 | ||
841 | #ifdef CONFIG_OMAP_MUX | 834 | #ifdef CONFIG_OMAP_MUX |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index e96a2e7ad36f..30ad40db2cf3 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -412,21 +412,6 @@ int __init omap4_panda_dvi_init(void) | |||
412 | return r; | 412 | return r; |
413 | } | 413 | } |
414 | 414 | ||
415 | |||
416 | static void omap4_panda_hdmi_mux_init(void) | ||
417 | { | ||
418 | /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ | ||
419 | omap_mux_init_signal("hdmi_hpd", | ||
420 | OMAP_PIN_INPUT_PULLUP); | ||
421 | omap_mux_init_signal("hdmi_cec", | ||
422 | OMAP_PIN_INPUT_PULLUP); | ||
423 | /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */ | ||
424 | omap_mux_init_signal("hdmi_ddc_scl", | ||
425 | OMAP_PIN_INPUT_PULLUP); | ||
426 | omap_mux_init_signal("hdmi_ddc_sda", | ||
427 | OMAP_PIN_INPUT_PULLUP); | ||
428 | } | ||
429 | |||
430 | static struct gpio panda_hdmi_gpios[] = { | 415 | static struct gpio panda_hdmi_gpios[] = { |
431 | { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, | 416 | { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, |
432 | { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, | 417 | { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, |
@@ -478,8 +463,16 @@ void omap4_panda_display_init(void) | |||
478 | if (r) | 463 | if (r) |
479 | pr_err("error initializing panda DVI\n"); | 464 | pr_err("error initializing panda DVI\n"); |
480 | 465 | ||
481 | omap4_panda_hdmi_mux_init(); | ||
482 | omap_display_init(&omap4_panda_dss_data); | 466 | omap_display_init(&omap4_panda_dss_data); |
467 | |||
468 | /* | ||
469 | * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and | ||
470 | * later have external pull up on the HDMI I2C lines | ||
471 | */ | ||
472 | if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2) | ||
473 | omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP); | ||
474 | else | ||
475 | omap_hdmi_init(0); | ||
483 | } | 476 | } |
484 | 477 | ||
485 | static void __init omap4_panda_init(void) | 478 | static void __init omap4_panda_init(void) |
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index d67bcdf724d7..acb4e77b39ef 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -945,6 +945,9 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = { | |||
945 | }, | 945 | }, |
946 | #endif | 946 | #endif |
947 | { | 947 | { |
948 | I2C_BOARD_INFO("bq27200", 0x55), | ||
949 | }, | ||
950 | { | ||
948 | I2C_BOARD_INFO("tpa6130a2", 0x60), | 951 | I2C_BOARD_INFO("tpa6130a2", 0x60), |
949 | .platform_data = &rx51_tpa6130a2_data, | 952 | .platform_data = &rx51_tpa6130a2_data, |
950 | } | 953 | } |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 46dfd1ae8f71..0b510ad01a00 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <plat/board.h> | 28 | #include <plat/board.h> |
29 | #include <plat/mcbsp.h> | 29 | #include <plat/mcbsp.h> |
30 | #include <plat/mmc.h> | 30 | #include <plat/mmc.h> |
31 | #include <plat/iommu.h> | ||
32 | #include <plat/dma.h> | 31 | #include <plat/dma.h> |
33 | #include <plat/omap_hwmod.h> | 32 | #include <plat/omap_hwmod.h> |
34 | #include <plat/omap_device.h> | 33 | #include <plat/omap_device.h> |
@@ -128,6 +127,10 @@ static struct platform_device omap2cam_device = { | |||
128 | }; | 127 | }; |
129 | #endif | 128 | #endif |
130 | 129 | ||
130 | #if defined(CONFIG_IOMMU_API) | ||
131 | |||
132 | #include <plat/iommu.h> | ||
133 | |||
131 | static struct resource omap3isp_resources[] = { | 134 | static struct resource omap3isp_resources[] = { |
132 | { | 135 | { |
133 | .start = OMAP3430_ISP_BASE, | 136 | .start = OMAP3430_ISP_BASE, |
@@ -224,6 +227,15 @@ int omap3_init_camera(struct isp_platform_data *pdata) | |||
224 | return platform_device_register(&omap3isp_device); | 227 | return platform_device_register(&omap3isp_device); |
225 | } | 228 | } |
226 | 229 | ||
230 | #else /* !CONFIG_IOMMU_API */ | ||
231 | |||
232 | int omap3_init_camera(struct isp_platform_data *pdata) | ||
233 | { | ||
234 | return 0; | ||
235 | } | ||
236 | |||
237 | #endif | ||
238 | |||
227 | static inline void omap_init_camera(void) | 239 | static inline void omap_init_camera(void) |
228 | { | 240 | { |
229 | #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE) | 241 | #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE) |
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index bc6cf863a563..3c446d1a1781 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <plat/omap-pm.h> | 30 | #include <plat/omap-pm.h> |
31 | #include "common.h" | 31 | #include "common.h" |
32 | 32 | ||
33 | #include "mux.h" | ||
33 | #include "control.h" | 34 | #include "control.h" |
34 | #include "display.h" | 35 | #include "display.h" |
35 | 36 | ||
@@ -97,6 +98,36 @@ static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initdata = { | |||
97 | { "dss_hdmi", "omapdss_hdmi", -1 }, | 98 | { "dss_hdmi", "omapdss_hdmi", -1 }, |
98 | }; | 99 | }; |
99 | 100 | ||
101 | static void omap4_hdmi_mux_pads(enum omap_hdmi_flags flags) | ||
102 | { | ||
103 | u32 reg; | ||
104 | u16 control_i2c_1; | ||
105 | |||
106 | /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ | ||
107 | omap_mux_init_signal("hdmi_hpd", | ||
108 | OMAP_PIN_INPUT_PULLUP); | ||
109 | omap_mux_init_signal("hdmi_cec", | ||
110 | OMAP_PIN_INPUT_PULLUP); | ||
111 | /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */ | ||
112 | omap_mux_init_signal("hdmi_ddc_scl", | ||
113 | OMAP_PIN_INPUT_PULLUP); | ||
114 | omap_mux_init_signal("hdmi_ddc_sda", | ||
115 | OMAP_PIN_INPUT_PULLUP); | ||
116 | |||
117 | /* | ||
118 | * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and | ||
119 | * HDMI_DDC_SCL_PULLUPRESX (bit 24) are set to disable | ||
120 | * internal pull up resistor. | ||
121 | */ | ||
122 | if (flags & OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP) { | ||
123 | control_i2c_1 = OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_1; | ||
124 | reg = omap4_ctrl_pad_readl(control_i2c_1); | ||
125 | reg |= (OMAP4_HDMI_DDC_SDA_PULLUPRESX_MASK | | ||
126 | OMAP4_HDMI_DDC_SCL_PULLUPRESX_MASK); | ||
127 | omap4_ctrl_pad_writel(reg, control_i2c_1); | ||
128 | } | ||
129 | } | ||
130 | |||
100 | static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | 131 | static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) |
101 | { | 132 | { |
102 | u32 enable_mask, enable_shift; | 133 | u32 enable_mask, enable_shift; |
@@ -130,6 +161,14 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | |||
130 | return 0; | 161 | return 0; |
131 | } | 162 | } |
132 | 163 | ||
164 | int omap_hdmi_init(enum omap_hdmi_flags flags) | ||
165 | { | ||
166 | if (cpu_is_omap44xx()) | ||
167 | omap4_hdmi_mux_pads(flags); | ||
168 | |||
169 | return 0; | ||
170 | } | ||
171 | |||
133 | static int omap_dsi_enable_pads(int dsi_id, unsigned lane_mask) | 172 | static int omap_dsi_enable_pads(int dsi_id, unsigned lane_mask) |
134 | { | 173 | { |
135 | if (cpu_is_omap44xx()) | 174 | if (cpu_is_omap44xx()) |
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c index 28fcb27005d2..fb4bcf81a183 100644 --- a/arch/arm/mach-omap2/mcbsp.c +++ b/arch/arm/mach-omap2/mcbsp.c | |||
@@ -156,6 +156,9 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) | |||
156 | else | 156 | else |
157 | /* The FIFO has 128 locations */ | 157 | /* The FIFO has 128 locations */ |
158 | pdata->buffer_size = 0x80; | 158 | pdata->buffer_size = 0x80; |
159 | } else if (oh->class->rev == MCBSP_CONFIG_TYPE4) { | ||
160 | /* The FIFO has 128 locations for all instances */ | ||
161 | pdata->buffer_size = 0x80; | ||
159 | } | 162 | } |
160 | 163 | ||
161 | if (oh->class->rev >= MCBSP_CONFIG_TYPE3) | 164 | if (oh->class->rev >= MCBSP_CONFIG_TYPE3) |
diff --git a/arch/arm/mach-omap2/omap-secure.c b/arch/arm/mach-omap2/omap-secure.c index 69f3c72d959b..d8f8ef40290f 100644 --- a/arch/arm/mach-omap2/omap-secure.c +++ b/arch/arm/mach-omap2/omap-secure.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/memblock.h> | 16 | #include <linux/memblock.h> |
17 | 17 | ||
18 | #include <asm/cacheflush.h> | 18 | #include <asm/cacheflush.h> |
19 | #include <asm/memblock.h> | ||
19 | 20 | ||
20 | #include <mach/omap-secure.h> | 21 | #include <mach/omap-secure.h> |
21 | 22 | ||
@@ -57,20 +58,10 @@ u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs, u32 arg1, u32 arg2, | |||
57 | /* Allocate the memory to save secure ram */ | 58 | /* Allocate the memory to save secure ram */ |
58 | int __init omap_secure_ram_reserve_memblock(void) | 59 | int __init omap_secure_ram_reserve_memblock(void) |
59 | { | 60 | { |
60 | phys_addr_t paddr; | ||
61 | u32 size = OMAP_SECURE_RAM_STORAGE; | 61 | u32 size = OMAP_SECURE_RAM_STORAGE; |
62 | 62 | ||
63 | size = ALIGN(size, SZ_1M); | 63 | size = ALIGN(size, SZ_1M); |
64 | paddr = memblock_alloc(size, SZ_1M); | 64 | omap_secure_memblock_base = arm_memblock_steal(size, SZ_1M); |
65 | if (!paddr) { | ||
66 | pr_err("%s: failed to reserve %x bytes\n", | ||
67 | __func__, size); | ||
68 | return -ENOMEM; | ||
69 | } | ||
70 | memblock_free(paddr, size); | ||
71 | memblock_remove(paddr, size); | ||
72 | |||
73 | omap_secure_memblock_base = paddr; | ||
74 | 65 | ||
75 | return 0; | 66 | return 0; |
76 | } | 67 | } |
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c index bc16c818c6b7..40a8fbc07e4b 100644 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <asm/hardware/gic.h> | 20 | #include <asm/hardware/gic.h> |
21 | #include <asm/hardware/cache-l2x0.h> | 21 | #include <asm/hardware/cache-l2x0.h> |
22 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
23 | #include <asm/memblock.h> | ||
23 | 24 | ||
24 | #include <plat/irqs.h> | 25 | #include <plat/irqs.h> |
25 | #include <plat/sram.h> | 26 | #include <plat/sram.h> |
@@ -61,13 +62,8 @@ static int __init omap_barriers_init(void) | |||
61 | return -ENODEV; | 62 | return -ENODEV; |
62 | 63 | ||
63 | size = ALIGN(PAGE_SIZE, SZ_1M); | 64 | size = ALIGN(PAGE_SIZE, SZ_1M); |
64 | paddr = memblock_alloc(size, SZ_1M); | 65 | paddr = arm_memblock_steal(size, SZ_1M); |
65 | if (!paddr) { | 66 | |
66 | pr_err("%s: failed to reserve 4 Kbytes\n", __func__); | ||
67 | return -ENOMEM; | ||
68 | } | ||
69 | memblock_free(paddr, size); | ||
70 | memblock_remove(paddr, size); | ||
71 | dram_io_desc[0].virtual = OMAP4_DRAM_BARRIER_VA; | 67 | dram_io_desc[0].virtual = OMAP4_DRAM_BARRIER_VA; |
72 | dram_io_desc[0].pfn = __phys_to_pfn(paddr); | 68 | dram_io_desc[0].pfn = __phys_to_pfn(paddr); |
73 | dram_io_desc[0].length = size; | 69 | dram_io_desc[0].length = size; |