Commit ca9d817ab54077d5b8a814a7af9c8342a0641051

Authored by Fabio Estevam
Committed by Stefano Babic
1 parent f91c09acf5

mx6sabresd: Add Seiko WVGA panel support

Add support for the 4.3'' Seiko WVGA parallel display.

In order to direct the splash screen to the Seiko display:

=> setenv panel SEIKO-WVGA
=> save
=> reset

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Stefano Babic <sbabic@denx.de>

Showing 1 changed file with 61 additions and 0 deletions Side-by-side Diff

board/freescale/mx6sabresd/mx6sabresd.c
... ... @@ -51,6 +51,8 @@
51 51  
52 52 #define I2C_PAD MUX_PAD_CTRL(I2C_PAD_CTRL)
53 53  
  54 +#define DISP0_PWR_EN IMX_GPIO_NR(1, 21)
  55 +
54 56 int dram_init(void)
55 57 {
56 58 gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
... ... @@ -141,6 +143,45 @@
141 143 MX6_PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL),
142 144 };
143 145  
  146 +static iomux_v3_cfg_t const rgb_pads[] = {
  147 + MX6_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK | MUX_PAD_CTRL(NO_PAD_CTRL),
  148 + MX6_PAD_DI0_PIN15__IPU1_DI0_PIN15 | MUX_PAD_CTRL(NO_PAD_CTRL),
  149 + MX6_PAD_DI0_PIN2__IPU1_DI0_PIN02 | MUX_PAD_CTRL(NO_PAD_CTRL),
  150 + MX6_PAD_DI0_PIN3__IPU1_DI0_PIN03 | MUX_PAD_CTRL(NO_PAD_CTRL),
  151 + MX6_PAD_DI0_PIN4__IPU1_DI0_PIN04 | MUX_PAD_CTRL(NO_PAD_CTRL),
  152 + MX6_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 | MUX_PAD_CTRL(NO_PAD_CTRL),
  153 + MX6_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 | MUX_PAD_CTRL(NO_PAD_CTRL),
  154 + MX6_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 | MUX_PAD_CTRL(NO_PAD_CTRL),
  155 + MX6_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 | MUX_PAD_CTRL(NO_PAD_CTRL),
  156 + MX6_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 | MUX_PAD_CTRL(NO_PAD_CTRL),
  157 + MX6_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 | MUX_PAD_CTRL(NO_PAD_CTRL),
  158 + MX6_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 | MUX_PAD_CTRL(NO_PAD_CTRL),
  159 + MX6_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 | MUX_PAD_CTRL(NO_PAD_CTRL),
  160 + MX6_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 | MUX_PAD_CTRL(NO_PAD_CTRL),
  161 + MX6_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 | MUX_PAD_CTRL(NO_PAD_CTRL),
  162 + MX6_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 | MUX_PAD_CTRL(NO_PAD_CTRL),
  163 + MX6_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 | MUX_PAD_CTRL(NO_PAD_CTRL),
  164 + MX6_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 | MUX_PAD_CTRL(NO_PAD_CTRL),
  165 + MX6_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 | MUX_PAD_CTRL(NO_PAD_CTRL),
  166 + MX6_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 | MUX_PAD_CTRL(NO_PAD_CTRL),
  167 + MX6_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 | MUX_PAD_CTRL(NO_PAD_CTRL),
  168 + MX6_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 | MUX_PAD_CTRL(NO_PAD_CTRL),
  169 + MX6_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 | MUX_PAD_CTRL(NO_PAD_CTRL),
  170 + MX6_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 | MUX_PAD_CTRL(NO_PAD_CTRL),
  171 + MX6_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 | MUX_PAD_CTRL(NO_PAD_CTRL),
  172 + MX6_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 | MUX_PAD_CTRL(NO_PAD_CTRL),
  173 + MX6_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 | MUX_PAD_CTRL(NO_PAD_CTRL),
  174 + MX6_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 | MUX_PAD_CTRL(NO_PAD_CTRL),
  175 + MX6_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 | MUX_PAD_CTRL(NO_PAD_CTRL),
  176 + MX6_PAD_SD1_DAT3__GPIO1_IO21 | MUX_PAD_CTRL(NO_PAD_CTRL),
  177 +};
  178 +
  179 +static void enable_rgb(struct display_info_t const *dev)
  180 +{
  181 + imx_iomux_v3_setup_multiple_pads(rgb_pads, ARRAY_SIZE(rgb_pads));
  182 + gpio_direction_output(DISP0_PWR_EN, 1);
  183 +}
  184 +
144 185 static struct i2c_pads_info i2c_pad_info1 = {
145 186 .scl = {
146 187 .i2c_mode = MX6_PAD_KEY_COL3__I2C2_SCL | I2C_PAD,
... ... @@ -356,6 +397,26 @@
356 397 .hsync_len = 60,
357 398 .vsync_len = 10,
358 399 .sync = FB_SYNC_EXT,
  400 + .vmode = FB_VMODE_NONINTERLACED
  401 +} }, {
  402 + .bus = 0,
  403 + .addr = 0,
  404 + .pixfmt = IPU_PIX_FMT_RGB24,
  405 + .detect = NULL,
  406 + .enable = enable_rgb,
  407 + .mode = {
  408 + .name = "SEIKO-WVGA",
  409 + .refresh = 60,
  410 + .xres = 800,
  411 + .yres = 480,
  412 + .pixclock = 29850,
  413 + .left_margin = 89,
  414 + .right_margin = 164,
  415 + .upper_margin = 23,
  416 + .lower_margin = 10,
  417 + .hsync_len = 10,
  418 + .vsync_len = 10,
  419 + .sync = 0,
359 420 .vmode = FB_VMODE_NONINTERLACED
360 421 } } };
361 422 size_t display_count = ARRAY_SIZE(displays);