diff options
Diffstat (limited to 'arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c')
-rw-r--r-- | arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c | 59 |
1 files changed, 53 insertions, 6 deletions
diff --git a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c index f8f15e3ac7a0..1abc10d52922 100644 --- a/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c +++ b/arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c | |||
@@ -43,14 +43,13 @@ | |||
43 | #include <mach/ipu.h> | 43 | #include <mach/ipu.h> |
44 | #include <mach/mx3fb.h> | 44 | #include <mach/mx3fb.h> |
45 | #include <mach/audmux.h> | 45 | #include <mach/audmux.h> |
46 | #include <mach/ssi.h> | ||
47 | 46 | ||
48 | #include "devices-imx35.h" | 47 | #include "devices-imx35.h" |
49 | #include "devices.h" | 48 | #include "devices.h" |
50 | 49 | ||
51 | static const struct fb_videomode fb_modedb[] = { | 50 | static const struct fb_videomode fb_modedb[] = { |
52 | { | 51 | { |
53 | .name = "CMO_QVGA", | 52 | .name = "CMO-QVGA", |
54 | .refresh = 60, | 53 | .refresh = 60, |
55 | .xres = 320, | 54 | .xres = 320, |
56 | .yres = 240, | 55 | .yres = 240, |
@@ -65,6 +64,40 @@ static const struct fb_videomode fb_modedb[] = { | |||
65 | .vmode = FB_VMODE_NONINTERLACED, | 64 | .vmode = FB_VMODE_NONINTERLACED, |
66 | .flag = 0, | 65 | .flag = 0, |
67 | }, | 66 | }, |
67 | { | ||
68 | .name = "DVI-VGA", | ||
69 | .refresh = 60, | ||
70 | .xres = 640, | ||
71 | .yres = 480, | ||
72 | .pixclock = 32000, | ||
73 | .left_margin = 100, | ||
74 | .right_margin = 100, | ||
75 | .upper_margin = 7, | ||
76 | .lower_margin = 100, | ||
77 | .hsync_len = 7, | ||
78 | .vsync_len = 7, | ||
79 | .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT | | ||
80 | FB_SYNC_OE_ACT_HIGH | FB_SYNC_CLK_INVERT, | ||
81 | .vmode = FB_VMODE_NONINTERLACED, | ||
82 | .flag = 0, | ||
83 | }, | ||
84 | { | ||
85 | .name = "DVI-SVGA", | ||
86 | .refresh = 60, | ||
87 | .xres = 800, | ||
88 | .yres = 600, | ||
89 | .pixclock = 25000, | ||
90 | .left_margin = 75, | ||
91 | .right_margin = 75, | ||
92 | .upper_margin = 7, | ||
93 | .lower_margin = 75, | ||
94 | .hsync_len = 7, | ||
95 | .vsync_len = 7, | ||
96 | .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT | | ||
97 | FB_SYNC_OE_ACT_HIGH | FB_SYNC_CLK_INVERT, | ||
98 | .vmode = FB_VMODE_NONINTERLACED, | ||
99 | .flag = 0, | ||
100 | }, | ||
68 | }; | 101 | }; |
69 | 102 | ||
70 | static struct ipu_platform_data mx3_ipu_data = { | 103 | static struct ipu_platform_data mx3_ipu_data = { |
@@ -73,7 +106,7 @@ static struct ipu_platform_data mx3_ipu_data = { | |||
73 | 106 | ||
74 | static struct mx3fb_platform_data mx3fb_pdata = { | 107 | static struct mx3fb_platform_data mx3fb_pdata = { |
75 | .dma_dev = &mx3_ipu.dev, | 108 | .dma_dev = &mx3_ipu.dev, |
76 | .name = "CMO_QVGA", | 109 | .name = "CMO-QVGA", |
77 | .mode = fb_modedb, | 110 | .mode = fb_modedb, |
78 | .num_modes = ARRAY_SIZE(fb_modedb), | 111 | .num_modes = ARRAY_SIZE(fb_modedb), |
79 | }; | 112 | }; |
@@ -120,6 +153,16 @@ static struct pad_desc eukrea_mbimxsd_pads[] = { | |||
120 | MX35_PAD_STXD4__AUDMUX_AUD4_TXD, | 153 | MX35_PAD_STXD4__AUDMUX_AUD4_TXD, |
121 | MX35_PAD_SRXD4__AUDMUX_AUD4_RXD, | 154 | MX35_PAD_SRXD4__AUDMUX_AUD4_RXD, |
122 | MX35_PAD_SCK4__AUDMUX_AUD4_TXC, | 155 | MX35_PAD_SCK4__AUDMUX_AUD4_TXC, |
156 | /* CAN2 */ | ||
157 | MX35_PAD_TX5_RX0__CAN2_TXCAN, | ||
158 | MX35_PAD_TX4_RX1__CAN2_RXCAN, | ||
159 | /* SDCARD */ | ||
160 | MX35_PAD_SD1_CMD__ESDHC1_CMD, | ||
161 | MX35_PAD_SD1_CLK__ESDHC1_CLK, | ||
162 | MX35_PAD_SD1_DATA0__ESDHC1_DAT0, | ||
163 | MX35_PAD_SD1_DATA1__ESDHC1_DAT1, | ||
164 | MX35_PAD_SD1_DATA2__ESDHC1_DAT2, | ||
165 | MX35_PAD_SD1_DATA3__ESDHC1_DAT3, | ||
123 | }; | 166 | }; |
124 | 167 | ||
125 | #define GPIO_LED1 (2 * 32 + 29) | 168 | #define GPIO_LED1 (2 * 32 + 29) |
@@ -206,7 +249,8 @@ static struct i2c_board_info eukrea_mbimxsd_i2c_devices[] = { | |||
206 | }, | 249 | }, |
207 | }; | 250 | }; |
208 | 251 | ||
209 | struct imx_ssi_platform_data eukrea_mbimxsd_ssi_pdata = { | 252 | static const |
253 | struct imx_ssi_platform_data eukrea_mbimxsd_ssi_pdata __initconst = { | ||
210 | .flags = IMX_SSI_SYN | IMX_SSI_NET | IMX_SSI_USE_I2S_SLAVE, | 254 | .flags = IMX_SSI_SYN | IMX_SSI_NET | IMX_SSI_USE_I2S_SLAVE, |
211 | }; | 255 | }; |
212 | 256 | ||
@@ -242,7 +286,10 @@ void __init eukrea_mbimxsd35_baseboard_init(void) | |||
242 | mxc_register_device(&mx3_ipu, &mx3_ipu_data); | 286 | mxc_register_device(&mx3_ipu, &mx3_ipu_data); |
243 | mxc_register_device(&mx3_fb, &mx3fb_pdata); | 287 | mxc_register_device(&mx3_fb, &mx3fb_pdata); |
244 | 288 | ||
245 | mxc_register_device(&imx_ssi_device0, &eukrea_mbimxsd_ssi_pdata); | 289 | imx35_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); |
290 | |||
291 | imx35_add_flexcan1(NULL); | ||
292 | imx35_add_esdhc(0, NULL); | ||
246 | 293 | ||
247 | gpio_request(GPIO_LED1, "LED1"); | 294 | gpio_request(GPIO_LED1, "LED1"); |
248 | gpio_direction_output(GPIO_LED1, 1); | 295 | gpio_direction_output(GPIO_LED1, 1); |
@@ -254,7 +301,7 @@ void __init eukrea_mbimxsd35_baseboard_init(void) | |||
254 | 301 | ||
255 | gpio_request(GPIO_LCDPWR, "LCDPWR"); | 302 | gpio_request(GPIO_LCDPWR, "LCDPWR"); |
256 | gpio_direction_output(GPIO_LCDPWR, 1); | 303 | gpio_direction_output(GPIO_LCDPWR, 1); |
257 | gpio_free(GPIO_SWITCH1); | 304 | gpio_free(GPIO_LCDPWR); |
258 | 305 | ||
259 | i2c_register_board_info(0, eukrea_mbimxsd_i2c_devices, | 306 | i2c_register_board_info(0, eukrea_mbimxsd_i2c_devices, |
260 | ARRAY_SIZE(eukrea_mbimxsd_i2c_devices)); | 307 | ARRAY_SIZE(eukrea_mbimxsd_i2c_devices)); |