[PATCH 2/2] pca100: Add displays and framebuffer support.
Christian Hemp
c.hemp at phytec.de
Tue Dec 13 03:16:47 EST 2011
Add displays and framebuffer support for pca100.
Signed-off-by: Christian Hemp <c.hemp at phytec.de>
---
arch/arm/boards/phycard-i.MX27/pca100.c | 105 +++++++++++++++++++++++++++++++
1 files changed, 105 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boards/phycard-i.MX27/pca100.c b/arch/arm/boards/phycard-i.MX27/pca100.c
index babb766..c7af75e 100644
--- a/arch/arm/boards/phycard-i.MX27/pca100.c
+++ b/arch/arm/boards/phycard-i.MX27/pca100.c
@@ -35,6 +35,7 @@
#include <io.h>
#include <mach/imx-nand.h>
#include <mach/imx-pll.h>
+#include <mach/imxfb.h>
#include <gpio.h>
#include <asm/mmu.h>
#include <usb/isp1504.h>
@@ -58,6 +59,82 @@ struct imx_nand_platform_data nand_info = {
.flash_bbt = 1,
};
+static struct imx_fb_videomode imxfb_mode[] = {
+ {
+ .mode = {
+ .name = "Primeview-PD050VL1",
+ .refresh = 60,
+ .xres = 640,
+ .yres = 480,
+ .pixclock = 40000, /* in ps (25MHz) */
+ .hsync_len = 32,
+ .left_margin = 112,
+ .right_margin = 36,
+ .vsync_len = 2,
+ .upper_margin = 33,
+ .lower_margin = 33,
+ },
+ .pcr = 0xF0C88080,
+ .bpp = 16,
+ }, {
+ .mode = {
+ .name = "Primeview-PD035VL1",
+ .refresh = 60,
+ .xres = 640,
+ .yres = 480,
+ .pixclock = 40000, /* in ps (25 MHz) */
+ .hsync_len = 30,
+ .left_margin = 98,
+ .right_margin = 36,
+ .vsync_len = 2,
+ .upper_margin = 15,
+ .lower_margin = 33,
+ },
+ .pcr = 0xF0C88080,
+ .bpp = 16,
+ }, {
+ .mode = {
+ .name = "Primeview-PD104SLF",
+ .refresh = 60,
+ .xres = 800,
+ .yres = 600,
+ .pixclock = 25000, /* in ps (40,0 MHz) */
+ .hsync_len = 40,
+ .left_margin = 174,
+ .right_margin = 174,
+ .vsync_len = 4,
+ .upper_margin = 24,
+ .lower_margin = 23,
+ },
+ .pcr = 0xF0C88080,
+ .bpp = 16,
+ }, {
+ .mode = {
+ .name = "Primeview-PM070WL4",
+ .refresh = 60,
+ .xres = 800,
+ .yres = 480,
+ .pixclock = 31250, /* in ps (32 MHz) */
+ .hsync_len = 40,
+ .left_margin = 174,
+ .right_margin = 174,
+ .vsync_len = 2,
+ .upper_margin = 33,
+ .lower_margin = 23,
+ },
+ .pcr = 0xF0C88080,
+ .bpp = 16,
+ },
+};
+
+static struct imx_fb_platform_data pca100_fb_data = {
+ .mode = imxfb_mode,
+ .num_modes = ARRAY_SIZE(imxfb_mode),
+ .pwmr = 0x00A903FF,
+ .lscr1 = 0x00120300,
+ .dmacr = 0x00040060,
+};
+
#ifdef CONFIG_USB
static void pca100_usb_register(void)
{
@@ -182,6 +259,33 @@ static int pca100_devices_init(void)
PE2_PF_USBOTG_DIR,
PE24_PF_USBOTG_CLK,
PE25_PF_USBOTG_DATA7,
+ /* display */
+ PA5_PF_LSCLK,
+ PA6_PF_LD0,
+ PA7_PF_LD1,
+ PA8_PF_LD2,
+ PA9_PF_LD3,
+ PA10_PF_LD4,
+ PA11_PF_LD5,
+ PA12_PF_LD6,
+ PA13_PF_LD7,
+ PA14_PF_LD8,
+ PA15_PF_LD9,
+ PA16_PF_LD10,
+ PA17_PF_LD11,
+ PA18_PF_LD12,
+ PA19_PF_LD13,
+ PA20_PF_LD14,
+ PA21_PF_LD15,
+ PA22_PF_LD16,
+ PA23_PF_LD17,
+ PA26_PF_PS,
+ PA28_PF_HSYNC,
+ PA29_PF_VSYNC,
+ PA31_PF_OE_ACD,
+ /* external I2C */
+ PD17_PF_I2C_DATA,
+ PD18_PF_I2C_CLK,
};
PCCR0 |= PCCR0_SDHC2_EN;
@@ -195,6 +299,7 @@ static int pca100_devices_init(void)
imx27_add_nand(&nand_info);
imx27_add_fec(&fec_info);
imx27_add_mmc0(NULL);
+ imx27_add_fb(&pca100_fb_data);
PCCR1 |= PCCR1_PERCLK2_EN;
--
1.7.0.4
More information about the barebox
mailing list