diff options
Diffstat (limited to 'arch/arm/mach-mx25')
-rw-r--r-- | arch/arm/mach-mx25/clock.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-mx25/devices-imx25.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c | 34 | ||||
-rw-r--r-- | arch/arm/mach-mx25/mach-cpuimx25.c | 14 |
4 files changed, 43 insertions, 18 deletions
diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c index 2179713873c..9e4a5578c2f 100644 --- a/arch/arm/mach-mx25/clock.c +++ b/arch/arm/mach-mx25/clock.c | |||
@@ -72,7 +72,7 @@ unsigned long get_rate_arm(struct clk *clk) | |||
72 | unsigned long rate = get_rate_mpll(); | 72 | unsigned long rate = get_rate_mpll(); |
73 | 73 | ||
74 | if (cctl & (1 << 14)) | 74 | if (cctl & (1 << 14)) |
75 | rate = (rate * 3) >> 1; | 75 | rate = (rate * 3) >> 2; |
76 | 76 | ||
77 | return rate / ((cctl >> 30) + 1); | 77 | return rate / ((cctl >> 30) + 1); |
78 | } | 78 | } |
@@ -99,7 +99,7 @@ static unsigned long get_rate_per(int per) | |||
99 | if (readl(CRM_BASE + 0x64) & (1 << per)) | 99 | if (readl(CRM_BASE + 0x64) & (1 << per)) |
100 | fref = get_rate_upll(); | 100 | fref = get_rate_upll(); |
101 | else | 101 | else |
102 | fref = get_rate_ipg(NULL); | 102 | fref = get_rate_ahb(NULL); |
103 | 103 | ||
104 | return fref / (val + 1); | 104 | return fref / (val + 1); |
105 | } | 105 | } |
@@ -261,7 +261,7 @@ DEFINE_CLOCK(esdhc2_clk, 1, CCM_CGCR1, 14, get_rate_esdhc2, NULL, | |||
261 | DEFINE_CLOCK(audmux_clk, 0, CCM_CGCR1, 0, NULL, NULL, NULL); | 261 | DEFINE_CLOCK(audmux_clk, 0, CCM_CGCR1, 0, NULL, NULL, NULL); |
262 | DEFINE_CLOCK(csi_clk, 0, CCM_CGCR1, 4, get_rate_csi, NULL, &csi_per_clk); | 262 | DEFINE_CLOCK(csi_clk, 0, CCM_CGCR1, 4, get_rate_csi, NULL, &csi_per_clk); |
263 | DEFINE_CLOCK(can1_clk, 0, CCM_CGCR1, 2, get_rate_ipg, NULL, NULL); | 263 | DEFINE_CLOCK(can1_clk, 0, CCM_CGCR1, 2, get_rate_ipg, NULL, NULL); |
264 | DEFINE_CLOCK(can2_clk, 0, CCM_CGCR1, 3, get_rate_ipg, NULL, NULL); | 264 | DEFINE_CLOCK(can2_clk, 1, CCM_CGCR1, 3, get_rate_ipg, NULL, NULL); |
265 | 265 | ||
266 | #define _REGISTER_CLOCK(d, n, c) \ | 266 | #define _REGISTER_CLOCK(d, n, c) \ |
267 | { \ | 267 | { \ |
diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h index 733aaee5bae..93afa10b13c 100644 --- a/arch/arm/mach-mx25/devices-imx25.h +++ b/arch/arm/mach-mx25/devices-imx25.h | |||
@@ -49,7 +49,6 @@ extern const struct imx_spi_imx_data imx25_spi_imx_data[] __initconst; | |||
49 | #define imx25_add_spi_imx1(pdata) imx25_add_spi_imx(1, pdata) | 49 | #define imx25_add_spi_imx1(pdata) imx25_add_spi_imx(1, pdata) |
50 | #define imx25_add_spi_imx2(pdata) imx25_add_spi_imx(2, pdata) | 50 | #define imx25_add_spi_imx2(pdata) imx25_add_spi_imx(2, pdata) |
51 | 51 | ||
52 | #define imx25_add_esdhc0(pdata) \ | 52 | extern const struct imx_esdhc_imx_data imx25_esdhc_data[] __initconst; |
53 | imx_add_esdhc(0, MX25_ESDHC1_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC1, pdata) | 53 | #define imx25_add_esdhc(id, pdata) \ |
54 | #define imx25_add_esdhc1(pdata) \ | 54 | imx_add_esdhc(&imx25_esdhc_data[id], pdata) |
55 | imx_add_esdhc(1, MX25_ESDHC2_BASE_ADDR, SZ_16K, MX25_INT_MMC_SDHC2, pdata) | ||
diff --git a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c index c1fe048c445..e765ac5d9a0 100644 --- a/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c +++ b/arch/arm/mach-mx25/eukrea_mbimxsd-baseboard.c | |||
@@ -116,6 +116,38 @@ static struct imx_fb_videomode eukrea_mximxsd_modes[] = { | |||
116 | }, | 116 | }, |
117 | .bpp = 16, | 117 | .bpp = 16, |
118 | .pcr = 0xCAD08B80, | 118 | .pcr = 0xCAD08B80, |
119 | }, { | ||
120 | .mode = { | ||
121 | .name = "DVI-VGA", | ||
122 | .refresh = 60, | ||
123 | .xres = 640, | ||
124 | .yres = 480, | ||
125 | .pixclock = 32000, | ||
126 | .hsync_len = 7, | ||
127 | .left_margin = 100, | ||
128 | .right_margin = 100, | ||
129 | .vsync_len = 7, | ||
130 | .upper_margin = 7, | ||
131 | .lower_margin = 100, | ||
132 | }, | ||
133 | .pcr = 0xFA208B80, | ||
134 | .bpp = 16, | ||
135 | }, { | ||
136 | .mode = { | ||
137 | .name = "DVI-SVGA", | ||
138 | .refresh = 60, | ||
139 | .xres = 800, | ||
140 | .yres = 600, | ||
141 | .pixclock = 25000, | ||
142 | .hsync_len = 7, | ||
143 | .left_margin = 75, | ||
144 | .right_margin = 75, | ||
145 | .vsync_len = 7, | ||
146 | .upper_margin = 7, | ||
147 | .lower_margin = 75, | ||
148 | }, | ||
149 | .pcr = 0xFA208B80, | ||
150 | .bpp = 16, | ||
119 | }, | 151 | }, |
120 | }; | 152 | }; |
121 | 153 | ||
@@ -245,7 +277,7 @@ void __init eukrea_mbimxsd25_baseboard_init(void) | |||
245 | imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); | 277 | imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); |
246 | 278 | ||
247 | imx25_add_flexcan1(NULL); | 279 | imx25_add_flexcan1(NULL); |
248 | imx25_add_esdhc0(NULL); | 280 | imx25_add_esdhc(0, NULL); |
249 | 281 | ||
250 | gpio_request(GPIO_LED1, "LED1"); | 282 | gpio_request(GPIO_LED1, "LED1"); |
251 | gpio_direction_output(GPIO_LED1, 1); | 283 | gpio_direction_output(GPIO_LED1, 1); |
diff --git a/arch/arm/mach-mx25/mach-cpuimx25.c b/arch/arm/mach-mx25/mach-cpuimx25.c index 21d9b9e9c92..3b28a75007a 100644 --- a/arch/arm/mach-mx25/mach-cpuimx25.c +++ b/arch/arm/mach-mx25/mach-cpuimx25.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <mach/mxc_nand.h> | 40 | #include <mach/mxc_nand.h> |
41 | #include <mach/imxfb.h> | 41 | #include <mach/imxfb.h> |
42 | #include <mach/mxc_ehci.h> | 42 | #include <mach/mxc_ehci.h> |
43 | #include <mach/ulpi.h> | ||
44 | #include <mach/iomux-mx25.h> | 43 | #include <mach/iomux-mx25.h> |
45 | 44 | ||
46 | #include "devices-imx25.h" | 45 | #include "devices-imx25.h" |
@@ -134,18 +133,13 @@ static void __init eukrea_cpuimx25_init(void) | |||
134 | ARRAY_SIZE(eukrea_cpuimx25_i2c_devices)); | 133 | ARRAY_SIZE(eukrea_cpuimx25_i2c_devices)); |
135 | imx25_add_imx_i2c0(&eukrea_cpuimx25_i2c0_data); | 134 | imx25_add_imx_i2c0(&eukrea_cpuimx25_i2c0_data); |
136 | 135 | ||
137 | #if defined(CONFIG_USB_ULPI) | 136 | if (otg_mode_host) |
138 | if (otg_mode_host) { | ||
139 | otg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, | ||
140 | ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT); | ||
141 | |||
142 | mxc_register_device(&mxc_otg, &otg_pdata); | 137 | mxc_register_device(&mxc_otg, &otg_pdata); |
143 | } | 138 | else |
144 | mxc_register_device(&mxc_usbh2, &usbh2_pdata); | ||
145 | #endif | ||
146 | if (!otg_mode_host) | ||
147 | mxc_register_device(&otg_udc_device, &otg_device_pdata); | 139 | mxc_register_device(&otg_udc_device, &otg_device_pdata); |
148 | 140 | ||
141 | mxc_register_device(&mxc_usbh2, &usbh2_pdata); | ||
142 | |||
149 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD | 143 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD |
150 | eukrea_mbimxsd25_baseboard_init(); | 144 | eukrea_mbimxsd25_baseboard_init(); |
151 | #endif | 145 | #endif |