All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] mx25: framebuffer support
@ 2010-02-10  7:25 ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

This set of patches adds support for the i.MX25 LCD controller block using the 
imxfb driver. Platform code for the i.MX25 PDK board is also added.

Tested on the i.MX25 PDK.

Baruch Siach (3):
  imxfb: add support for i.MX25
  mx25: add platform support for imxfb
  mx25pdk: add LCD support

 arch/arm/mach-mx25/clock.c                  |   12 ++++++
 arch/arm/mach-mx25/devices.c                |   23 +++++++++++
 arch/arm/mach-mx25/devices.h                |    1 +
 arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
 arch/arm/plat-mxc/include/mach/mx25.h       |    2 +
 drivers/video/Kconfig                       |    2 +-
 7 files changed, 96 insertions(+), 1 deletions(-)


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 0/3] mx25: framebuffer support
@ 2010-02-10  7:25 ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

This set of patches adds support for the i.MX25 LCD controller block using the 
imxfb driver. Platform code for the i.MX25 PDK board is also added.

Tested on the i.MX25 PDK.

Baruch Siach (3):
  imxfb: add support for i.MX25
  mx25: add platform support for imxfb
  mx25pdk: add LCD support

 arch/arm/mach-mx25/clock.c                  |   12 ++++++
 arch/arm/mach-mx25/devices.c                |   23 +++++++++++
 arch/arm/mach-mx25/devices.h                |    1 +
 arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
 arch/arm/plat-mxc/include/mach/mx25.h       |    2 +
 drivers/video/Kconfig                       |    2 +-
 7 files changed, 96 insertions(+), 1 deletions(-)

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
  2010-02-10  7:25 ` Baruch Siach
@ 2010-02-10  7:25   ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 drivers/video/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..7ff9acc 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -402,7 +402,7 @@ config FB_SA1100
 
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
@ 2010-02-10  7:25   ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 drivers/video/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..7ff9acc 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -402,7 +402,7 @@ config FB_SA1100
 
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
  2010-02-10  7:25 ` Baruch Siach
@ 2010-02-10  7:25   ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/clock.c            |   12 ++++++++++++
 arch/arm/mach-mx25/devices.c          |   23 +++++++++++++++++++++++
 arch/arm/mach-mx25/devices.h          |    1 +
 arch/arm/plat-mxc/include/mach/mx25.h |    2 ++
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index 744b52a..56bf958 100644
--- a/arch/arm/mach-mx25/clock.c
+++ b/arch/arm/mach-mx25/clock.c
@@ -124,6 +124,11 @@ static unsigned long get_rate_gpt(struct clk *clk)
 	return get_rate_per(5);
 }
 
+static unsigned long get_rate_lcdc(struct clk *clk)
+{
+	return get_rate_per(7);
+}
+
 static unsigned long get_rate_otg(struct clk *clk)
 {
 	return 48000000; /* FIXME */
@@ -167,6 +172,8 @@ DEFINE_CLOCK(cspi1_clk,  0, CCM_CGCR1,  5, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi2_clk,  0, CCM_CGCR1,  6, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi3_clk,  0, CCM_CGCR1,  7, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(fec_ahb_clk, 0, CCM_CGCR0, 23, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_ahb_clk, 0, CCM_CGCR0, 24, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_per_clk, 0, CCM_CGCR0,  7, NULL,	 NULL, &lcdc_ahb_clk);
 DEFINE_CLOCK(uart1_clk,  0, CCM_CGCR2, 14, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart2_clk,  0, CCM_CGCR2, 15, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart3_clk,  0, CCM_CGCR2, 16, get_rate_uart, NULL, &uart_per_clk);
@@ -183,6 +190,7 @@ DEFINE_CLOCK(tsc_clk,	 0, CCM_CGCR2, 13, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(i2c_clk,	 0, CCM_CGCR0,  6, get_rate_i2c, NULL, NULL);
 DEFINE_CLOCK(fec_clk,	 0, CCM_CGCR1, 15, get_rate_ipg, NULL, &fec_ahb_clk);
 DEFINE_CLOCK(dryice_clk, 0, CCM_CGCR1,  8, get_rate_ipg, NULL, NULL);
+DEFINE_CLOCK(lcdc_clk,	 0, CCM_CGCR1, 29, get_rate_lcdc, NULL, &lcdc_per_clk);
 
 #define _REGISTER_CLOCK(d, n, c)	\
 	{				\
@@ -216,6 +224,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk)
 	_REGISTER_CLOCK("fec.0", NULL, fec_clk)
 	_REGISTER_CLOCK("imxdi_rtc.0", NULL, dryice_clk)
+	_REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk)
 };
 
 int __init mx25_clocks_init(void)
@@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
 	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
 	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
 
+	/* Clock source for lcdc is upll */
+	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
+
 	mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
 
 	return 0;
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c
index b0b75fc..3f4b8a0 100644
--- a/arch/arm/mach-mx25/devices.c
+++ b/arch/arm/mach-mx25/devices.c
@@ -477,3 +477,26 @@ struct platform_device mx25_rtc_device = {
 	.num_resources	= ARRAY_SIZE(mx25_rtc_resources),
 	.resource	= mx25_rtc_resources,
 };
+
+static struct resource mx25_fb_resources[] = {
+	{
+		.start	= MX25_LCDC_BASE_ADDR,
+		.end	= MX25_LCDC_BASE_ADDR + 0xfff,
+		.flags	= IORESOURCE_MEM,
+	},
+	{
+		.start	= MX25_INT_LCDC,
+		.end	= MX25_INT_LCDC,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+struct platform_device mx25_fb_device = {
+	.name		= "imx-fb",
+	.id		= 0,
+	.resource	= mx25_fb_resources,
+	.num_resources	= ARRAY_SIZE(mx25_fb_resources),
+	.dev		= {
+		.coherent_dma_mask = 0xFFFFFFFF,
+	},
+};
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h
index 37e6a08..39560e1 100644
--- a/arch/arm/mach-mx25/devices.h
+++ b/arch/arm/mach-mx25/devices.h
@@ -20,3 +20,4 @@ extern struct platform_device mxc_i2c_device2;
 extern struct platform_device mx25_fec_device;
 extern struct platform_device mxc_nand_device;
 extern struct platform_device mx25_rtc_device;
+extern struct platform_device mx25_fb_device;
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 215c4d8..f29798d 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -44,9 +44,11 @@
 #define MX25_FEC_BASE_ADDR		0x50038000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
+#define MX25_LCDC_BASE_ADDR		0x53fbc000
 
 #define MX25_INT_DRYICE	25
 #define MX25_INT_FEC	57
 #define MX25_INT_NANDFC	33
+#define MX25_INT_LCDC	39
 
 #endif /* __MACH_MX25_H__ */
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
@ 2010-02-10  7:25   ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/clock.c            |   12 ++++++++++++
 arch/arm/mach-mx25/devices.c          |   23 +++++++++++++++++++++++
 arch/arm/mach-mx25/devices.h          |    1 +
 arch/arm/plat-mxc/include/mach/mx25.h |    2 ++
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index 744b52a..56bf958 100644
--- a/arch/arm/mach-mx25/clock.c
+++ b/arch/arm/mach-mx25/clock.c
@@ -124,6 +124,11 @@ static unsigned long get_rate_gpt(struct clk *clk)
 	return get_rate_per(5);
 }
 
+static unsigned long get_rate_lcdc(struct clk *clk)
+{
+	return get_rate_per(7);
+}
+
 static unsigned long get_rate_otg(struct clk *clk)
 {
 	return 48000000; /* FIXME */
@@ -167,6 +172,8 @@ DEFINE_CLOCK(cspi1_clk,  0, CCM_CGCR1,  5, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi2_clk,  0, CCM_CGCR1,  6, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi3_clk,  0, CCM_CGCR1,  7, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(fec_ahb_clk, 0, CCM_CGCR0, 23, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_ahb_clk, 0, CCM_CGCR0, 24, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_per_clk, 0, CCM_CGCR0,  7, NULL,	 NULL, &lcdc_ahb_clk);
 DEFINE_CLOCK(uart1_clk,  0, CCM_CGCR2, 14, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart2_clk,  0, CCM_CGCR2, 15, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart3_clk,  0, CCM_CGCR2, 16, get_rate_uart, NULL, &uart_per_clk);
@@ -183,6 +190,7 @@ DEFINE_CLOCK(tsc_clk,	 0, CCM_CGCR2, 13, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(i2c_clk,	 0, CCM_CGCR0,  6, get_rate_i2c, NULL, NULL);
 DEFINE_CLOCK(fec_clk,	 0, CCM_CGCR1, 15, get_rate_ipg, NULL, &fec_ahb_clk);
 DEFINE_CLOCK(dryice_clk, 0, CCM_CGCR1,  8, get_rate_ipg, NULL, NULL);
+DEFINE_CLOCK(lcdc_clk,	 0, CCM_CGCR1, 29, get_rate_lcdc, NULL, &lcdc_per_clk);
 
 #define _REGISTER_CLOCK(d, n, c)	\
 	{				\
@@ -216,6 +224,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk)
 	_REGISTER_CLOCK("fec.0", NULL, fec_clk)
 	_REGISTER_CLOCK("imxdi_rtc.0", NULL, dryice_clk)
+	_REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk)
 };
 
 int __init mx25_clocks_init(void)
@@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
 	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
 	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
 
+	/* Clock source for lcdc is upll */
+	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
+
 	mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
 
 	return 0;
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c
index b0b75fc..3f4b8a0 100644
--- a/arch/arm/mach-mx25/devices.c
+++ b/arch/arm/mach-mx25/devices.c
@@ -477,3 +477,26 @@ struct platform_device mx25_rtc_device = {
 	.num_resources	= ARRAY_SIZE(mx25_rtc_resources),
 	.resource	= mx25_rtc_resources,
 };
+
+static struct resource mx25_fb_resources[] = {
+	{
+		.start	= MX25_LCDC_BASE_ADDR,
+		.end	= MX25_LCDC_BASE_ADDR + 0xfff,
+		.flags	= IORESOURCE_MEM,
+	},
+	{
+		.start	= MX25_INT_LCDC,
+		.end	= MX25_INT_LCDC,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+struct platform_device mx25_fb_device = {
+	.name		= "imx-fb",
+	.id		= 0,
+	.resource	= mx25_fb_resources,
+	.num_resources	= ARRAY_SIZE(mx25_fb_resources),
+	.dev		= {
+		.coherent_dma_mask = 0xFFFFFFFF,
+	},
+};
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h
index 37e6a08..39560e1 100644
--- a/arch/arm/mach-mx25/devices.h
+++ b/arch/arm/mach-mx25/devices.h
@@ -20,3 +20,4 @@ extern struct platform_device mxc_i2c_device2;
 extern struct platform_device mx25_fec_device;
 extern struct platform_device mxc_nand_device;
 extern struct platform_device mx25_rtc_device;
+extern struct platform_device mx25_fb_device;
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 215c4d8..f29798d 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -44,9 +44,11 @@
 #define MX25_FEC_BASE_ADDR		0x50038000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
+#define MX25_LCDC_BASE_ADDR		0x53fbc000
 
 #define MX25_INT_DRYICE	25
 #define MX25_INT_FEC	57
 #define MX25_INT_NANDFC	33
+#define MX25_INT_LCDC	39
 
 #endif /* __MACH_MX25_H__ */
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 3/3] mx25pdk: add LCD support
  2010-02-10  7:25 ` Baruch Siach
@ 2010-02-10  7:25   ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
 2 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c
index f4e8b98..6d9dd33 100644
--- a/arch/arm/mach-mx25/mx25pdk.c
+++ b/arch/arm/mach-mx25/mx25pdk.c
@@ -35,6 +35,7 @@
 #include <mach/imx-uart.h>
 #include <mach/mx25.h>
 #include <mach/mxc_nand.h>
+#include <mach/imxfb.h>
 #include "devices.h"
 #include <mach/iomux.h>
 
@@ -54,6 +55,31 @@ static struct pad_desc mx25pdk_pads[] = {
 	MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
 	MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */
 	MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */
+
+	/* LCD */
+	MX25_PAD_LD0__LD0,
+	MX25_PAD_LD1__LD1,
+	MX25_PAD_LD2__LD2,
+	MX25_PAD_LD3__LD3,
+	MX25_PAD_LD4__LD4,
+	MX25_PAD_LD5__LD5,
+	MX25_PAD_LD6__LD6,
+	MX25_PAD_LD7__LD7,
+	MX25_PAD_LD8__LD8,
+	MX25_PAD_LD9__LD9,
+	MX25_PAD_LD10__LD10,
+	MX25_PAD_LD11__LD11,
+	MX25_PAD_LD12__LD12,
+	MX25_PAD_LD13__LD13,
+	MX25_PAD_LD14__LD14,
+	MX25_PAD_LD15__LD15,
+	MX25_PAD_GPIO_E__LD16,
+	MX25_PAD_GPIO_F__LD17,
+	MX25_PAD_HSYNC__HSYNC,
+	MX25_PAD_VSYNC__VSYNC,
+	MX25_PAD_LSCLK__LSCLK,
+	MX25_PAD_OE_ACD__OE_ACD,
+	MX25_PAD_CONTRAST__CONTRAST,
 };
 
 static struct fec_platform_data mx25_fec_pdata = {
@@ -83,6 +109,34 @@ static struct mxc_nand_platform_data mx25pdk_nand_board_info = {
 	.flash_bbt	= 1,
 };
 
+static struct imx_fb_videomode mx25pdk_modes[] = {
+	{
+		.mode	= {
+			.name		= "CRT-VGA",
+			.refresh	= 60,
+			.xres		= 640,
+			.yres		= 480,
+			.pixclock	= 39683,
+			.left_margin	= 45,
+			.right_margin	= 114,
+			.upper_margin	= 33,
+			.lower_margin	= 11,
+			.hsync_len	= 1,
+			.vsync_len	= 1,
+		},
+		.bpp	= 16,
+		.pcr	= 0xFA208B80,
+	},
+};
+
+static struct imx_fb_platform_data mx25pdk_fb_pdata = {
+	.mode		= mx25pdk_modes,
+	.num_modes	= ARRAY_SIZE(mx25pdk_modes),
+	.pwmr		= 0x00A903FF,
+	.lscr1		= 0x00120300,
+	.dmacr		= 0x00020010,
+};
+
 static void __init mx25pdk_init(void)
 {
 	mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
@@ -92,6 +146,7 @@ static void __init mx25pdk_init(void)
 	mxc_register_device(&mxc_usbh2, NULL);
 	mxc_register_device(&mxc_nand_device, &mx25pdk_nand_board_info);
 	mxc_register_device(&mx25_rtc_device, NULL);
+	mxc_register_device(&mx25_fb_device, &mx25pdk_fb_pdata);
 
 	mx25pdk_fec_reset();
 	mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
index 9af494f..5418d52 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
@@ -462,9 +462,11 @@
 #define MX25_PAD_GPIO_C__CAN2_TX	IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_D__GPIO_D		IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_E__LD16		IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_D__CAN2_RX	IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_E__GPIO_E		IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_F__LD17		IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_E__AUD7_TXD	IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL)
 
 #define MX25_PAD_GPIO_F__GPIO_F		IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL)
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 3/3] mx25pdk: add LCD support
@ 2010-02-10  7:25   ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  7:25 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
 2 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c
index f4e8b98..6d9dd33 100644
--- a/arch/arm/mach-mx25/mx25pdk.c
+++ b/arch/arm/mach-mx25/mx25pdk.c
@@ -35,6 +35,7 @@
 #include <mach/imx-uart.h>
 #include <mach/mx25.h>
 #include <mach/mxc_nand.h>
+#include <mach/imxfb.h>
 #include "devices.h"
 #include <mach/iomux.h>
 
@@ -54,6 +55,31 @@ static struct pad_desc mx25pdk_pads[] = {
 	MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
 	MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */
 	MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */
+
+	/* LCD */
+	MX25_PAD_LD0__LD0,
+	MX25_PAD_LD1__LD1,
+	MX25_PAD_LD2__LD2,
+	MX25_PAD_LD3__LD3,
+	MX25_PAD_LD4__LD4,
+	MX25_PAD_LD5__LD5,
+	MX25_PAD_LD6__LD6,
+	MX25_PAD_LD7__LD7,
+	MX25_PAD_LD8__LD8,
+	MX25_PAD_LD9__LD9,
+	MX25_PAD_LD10__LD10,
+	MX25_PAD_LD11__LD11,
+	MX25_PAD_LD12__LD12,
+	MX25_PAD_LD13__LD13,
+	MX25_PAD_LD14__LD14,
+	MX25_PAD_LD15__LD15,
+	MX25_PAD_GPIO_E__LD16,
+	MX25_PAD_GPIO_F__LD17,
+	MX25_PAD_HSYNC__HSYNC,
+	MX25_PAD_VSYNC__VSYNC,
+	MX25_PAD_LSCLK__LSCLK,
+	MX25_PAD_OE_ACD__OE_ACD,
+	MX25_PAD_CONTRAST__CONTRAST,
 };
 
 static struct fec_platform_data mx25_fec_pdata = {
@@ -83,6 +109,34 @@ static struct mxc_nand_platform_data mx25pdk_nand_board_info = {
 	.flash_bbt	= 1,
 };
 
+static struct imx_fb_videomode mx25pdk_modes[] = {
+	{
+		.mode	= {
+			.name		= "CRT-VGA",
+			.refresh	= 60,
+			.xres		= 640,
+			.yres		= 480,
+			.pixclock	= 39683,
+			.left_margin	= 45,
+			.right_margin	= 114,
+			.upper_margin	= 33,
+			.lower_margin	= 11,
+			.hsync_len	= 1,
+			.vsync_len	= 1,
+		},
+		.bpp	= 16,
+		.pcr	= 0xFA208B80,
+	},
+};
+
+static struct imx_fb_platform_data mx25pdk_fb_pdata = {
+	.mode		= mx25pdk_modes,
+	.num_modes	= ARRAY_SIZE(mx25pdk_modes),
+	.pwmr		= 0x00A903FF,
+	.lscr1		= 0x00120300,
+	.dmacr		= 0x00020010,
+};
+
 static void __init mx25pdk_init(void)
 {
 	mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
@@ -92,6 +146,7 @@ static void __init mx25pdk_init(void)
 	mxc_register_device(&mxc_usbh2, NULL);
 	mxc_register_device(&mxc_nand_device, &mx25pdk_nand_board_info);
 	mxc_register_device(&mx25_rtc_device, NULL);
+	mxc_register_device(&mx25_fb_device, &mx25pdk_fb_pdata);
 
 	mx25pdk_fec_reset();
 	mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
index 9af494f..5418d52 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
@@ -462,9 +462,11 @@
 #define MX25_PAD_GPIO_C__CAN2_TX	IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_D__GPIO_D		IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_E__LD16		IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_D__CAN2_RX	IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_E__GPIO_E		IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_F__LD17		IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_E__AUD7_TXD	IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL)
 
 #define MX25_PAD_GPIO_F__GPIO_F		IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL)
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* Re: [PATCH 1/3] imxfb: add support for i.MX25
  2010-02-10  7:25   ` Baruch Siach
@ 2010-02-10  7:50     ` Uwe Kleine-König
  -1 siblings, 0 replies; 42+ messages in thread
From:  @ 2010-02-10  7:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Wed, Feb 10, 2010 at 09:25:18AM +0200, Baruch Siach wrote:
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
>  drivers/video/Kconfig |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 5a5c303..7ff9acc 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -402,7 +402,7 @@ config FB_SA1100
>  
>  config FB_IMX
>  	tristate "Motorola i.MX LCD support"
> -	depends on FB && (ARCH_MX1 || ARCH_MX2)
> +	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
Can we make this

	depends on FB && HAVE_FB_IMX

and let the archs select HAVE_FB_IMX?

And is "FB" really necessary?  The snipplet above is in an

	menuconfig FB
		...
	endmenu

block.  (And there are many other items depending explicitly on FB.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
@ 2010-02-10  7:50     ` Uwe Kleine-König
  0 siblings, 0 replies; 42+ messages in thread
From: Uwe Kleine-König @ 2010-02-10  7:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Wed, Feb 10, 2010 at 09:25:18AM +0200, Baruch Siach wrote:
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
>  drivers/video/Kconfig |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 5a5c303..7ff9acc 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -402,7 +402,7 @@ config FB_SA1100
>  
>  config FB_IMX
>  	tristate "Motorola i.MX LCD support"
> -	depends on FB && (ARCH_MX1 || ARCH_MX2)
> +	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
Can we make this

	depends on FB && HAVE_FB_IMX

and let the archs select HAVE_FB_IMX?

And is "FB" really necessary?  The snipplet above is in an

	menuconfig FB
		...
	endmenu

block.  (And there are many other items depending explicitly on FB.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 2/3] mx25: add platform support for imxfb
  2010-02-10  7:25   ` Baruch Siach
@ 2010-02-10  7:53     ` Uwe Kleine-König
  -1 siblings, 0 replies; 42+ messages in thread
From:  @ 2010-02-10  7:53 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Wed, Feb 10, 2010 at 09:25:19AM +0200, Baruch Siach wrote:
> @@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
>  	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
>  	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
>  
> +	/* Clock source for lcdc is upll */
> +	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
> +
0x64?  Please define a register name for that constant.  Ditto for 7.

Note I didn't look in the hardware manual, but I wonder if that should
better go in the enable routine for lcdc?


Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
@ 2010-02-10  7:53     ` Uwe Kleine-König
  0 siblings, 0 replies; 42+ messages in thread
From: Uwe Kleine-König @ 2010-02-10  7:53 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Wed, Feb 10, 2010 at 09:25:19AM +0200, Baruch Siach wrote:
> @@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
>  	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
>  	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
>  
> +	/* Clock source for lcdc is upll */
> +	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
> +
0x64?  Please define a register name for that constant.  Ditto for 7.

Note I didn't look in the hardware manual, but I wonder if that should
better go in the enable routine for lcdc?


Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 1/3] imxfb: add support for i.MX25
  2010-02-10  7:50     ` Uwe Kleine-König
@ 2010-02-10  8:15       ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  8:15 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 08:50:07AM +0100, Uwe Kleine-König wrote:
> On Wed, Feb 10, 2010 at 09:25:18AM +0200, Baruch Siach wrote:
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > ---
> >  drivers/video/Kconfig |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> > index 5a5c303..7ff9acc 100644
> > --- a/drivers/video/Kconfig
> > +++ b/drivers/video/Kconfig
> > @@ -402,7 +402,7 @@ config FB_SA1100
> >  
> >  config FB_IMX
> >  	tristate "Motorola i.MX LCD support"
> > -	depends on FB && (ARCH_MX1 || ARCH_MX2)
> > +	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
> Can we make this
> 
> 	depends on FB && HAVE_FB_IMX
> 
> and let the archs select HAVE_FB_IMX?

I just wanted to do the minimal working change. Do you want me to send a patch 
updating each ARCH's Kconfig?

> And is "FB" really necessary?  The snipplet above is in an
> 
> 	menuconfig FB
> 		...
> 	endmenu
> 
> block.  (And there are many other items depending explicitly on FB.)

I don't know. As above, I'd rather do the minimal change.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
@ 2010-02-10  8:15       ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  8:15 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 08:50:07AM +0100, Uwe Kleine-K?nig wrote:
> On Wed, Feb 10, 2010 at 09:25:18AM +0200, Baruch Siach wrote:
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > ---
> >  drivers/video/Kconfig |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> > index 5a5c303..7ff9acc 100644
> > --- a/drivers/video/Kconfig
> > +++ b/drivers/video/Kconfig
> > @@ -402,7 +402,7 @@ config FB_SA1100
> >  
> >  config FB_IMX
> >  	tristate "Motorola i.MX LCD support"
> > -	depends on FB && (ARCH_MX1 || ARCH_MX2)
> > +	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
> Can we make this
> 
> 	depends on FB && HAVE_FB_IMX
> 
> and let the archs select HAVE_FB_IMX?

I just wanted to do the minimal working change. Do you want me to send a patch 
updating each ARCH's Kconfig?

> And is "FB" really necessary?  The snipplet above is in an
> 
> 	menuconfig FB
> 		...
> 	endmenu
> 
> block.  (And there are many other items depending explicitly on FB.)

I don't know. As above, I'd rather do the minimal change.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 1/3] imxfb: add support for i.MX25
  2010-02-10  8:15       ` Baruch Siach
@ 2010-02-10  8:26         ` Uwe Kleine-König
  -1 siblings, 0 replies; 42+ messages in thread
From:  @ 2010-02-10  8:26 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Baruch,

On Wed, Feb 10, 2010 at 10:15:13AM +0200, Baruch Siach wrote:
> On Wed, Feb 10, 2010 at 08:50:07AM +0100, Uwe Kleine-König wrote:
> > On Wed, Feb 10, 2010 at 09:25:18AM +0200, Baruch Siach wrote:
> > > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > > ---
> > >  drivers/video/Kconfig |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> > > index 5a5c303..7ff9acc 100644
> > > --- a/drivers/video/Kconfig
> > > +++ b/drivers/video/Kconfig
> > > @@ -402,7 +402,7 @@ config FB_SA1100
> > >  
> > >  config FB_IMX
> > >  	tristate "Motorola i.MX LCD support"
> > > -	depends on FB && (ARCH_MX1 || ARCH_MX2)
> > > +	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
> > Can we make this
> > 
> > 	depends on FB && HAVE_FB_IMX
> > 
> > and let the archs select HAVE_FB_IMX?
> 
> I just wanted to do the minimal working change. Do you want me to send a patch 
> updating each ARCH's Kconfig?
Of course this should go in a seperate patch, so this is your chance to
increase your patch count even further :-)

For now I'd do the following to minimize inter-tree dependencies:

	* remove all explicit dependencies on FB in the above block
	* define
		config HAVE_FB_IMX
		bool
	  just before config FB_IMX and add it to the latter's
	  dependencies, such that it reads:

		depends on HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2

and when this change hit's Linus' tree let ARCH_MX1 and ARCH_MX2 select
HAVE_FB_IMX, too and remove it from the list.

I don't care when you add ARCH_MX25 as everything is more or less
orthogonal here.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
@ 2010-02-10  8:26         ` Uwe Kleine-König
  0 siblings, 0 replies; 42+ messages in thread
From: Uwe Kleine-König @ 2010-02-10  8:26 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Baruch,

On Wed, Feb 10, 2010 at 10:15:13AM +0200, Baruch Siach wrote:
> On Wed, Feb 10, 2010 at 08:50:07AM +0100, Uwe Kleine-K?nig wrote:
> > On Wed, Feb 10, 2010 at 09:25:18AM +0200, Baruch Siach wrote:
> > > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > > ---
> > >  drivers/video/Kconfig |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> > > index 5a5c303..7ff9acc 100644
> > > --- a/drivers/video/Kconfig
> > > +++ b/drivers/video/Kconfig
> > > @@ -402,7 +402,7 @@ config FB_SA1100
> > >  
> > >  config FB_IMX
> > >  	tristate "Motorola i.MX LCD support"
> > > -	depends on FB && (ARCH_MX1 || ARCH_MX2)
> > > +	depends on FB && (ARCH_MX1 || ARCH_MX2 || ARCH_MX25)
> > Can we make this
> > 
> > 	depends on FB && HAVE_FB_IMX
> > 
> > and let the archs select HAVE_FB_IMX?
> 
> I just wanted to do the minimal working change. Do you want me to send a patch 
> updating each ARCH's Kconfig?
Of course this should go in a seperate patch, so this is your chance to
increase your patch count even further :-)

For now I'd do the following to minimize inter-tree dependencies:

	* remove all explicit dependencies on FB in the above block
	* define
		config HAVE_FB_IMX
		bool
	  just before config FB_IMX and add it to the latter's
	  dependencies, such that it reads:

		depends on HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2

and when this change hit's Linus' tree let ARCH_MX1 and ARCH_MX2 select
HAVE_FB_IMX, too and remove it from the list.

I don't care when you add ARCH_MX25 as everything is more or less
orthogonal here.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 2/3] mx25: add platform support for imxfb
  2010-02-10  7:53     ` Uwe Kleine-König
@ 2010-02-10  8:33       ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  8:33 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 08:53:15AM +0100, Uwe Kleine-König wrote:
> On Wed, Feb 10, 2010 at 09:25:19AM +0200, Baruch Siach wrote:
> > @@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
> >  	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
> >  	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
> >  
> > +	/* Clock source for lcdc is upll */
> > +	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
> > +
> 0x64?  Please define a register name for that constant.

I just followed the precedence set in the get_rate_per() routine above.  
Defining a register name is obviously better.

> Ditto for 7.

See arch/arm/mach-mx3/clock.c:mx31_clocks_init() and 
arch/arm/mach-mx3/clock-imx35.c:mx35_clocks_init(). This is probably a matter 
for a separate cleanup patch.

> Note I didn't look in the hardware manual, but I wonder if that should
> better go in the enable routine for lcdc?

OK. I'll do it there.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
@ 2010-02-10  8:33       ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10  8:33 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 08:53:15AM +0100, Uwe Kleine-K?nig wrote:
> On Wed, Feb 10, 2010 at 09:25:19AM +0200, Baruch Siach wrote:
> > @@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
> >  	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
> >  	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
> >  
> > +	/* Clock source for lcdc is upll */
> > +	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
> > +
> 0x64?  Please define a register name for that constant.

I just followed the precedence set in the get_rate_per() routine above.  
Defining a register name is obviously better.

> Ditto for 7.

See arch/arm/mach-mx3/clock.c:mx31_clocks_init() and 
arch/arm/mach-mx3/clock-imx35.c:mx35_clocks_init(). This is probably a matter 
for a separate cleanup patch.

> Note I didn't look in the hardware manual, but I wonder if that should
> better go in the enable routine for lcdc?

OK. I'll do it there.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 2/3] mx25: add platform support for imxfb
  2010-02-10  8:33       ` Baruch Siach
@ 2010-02-10 12:25         ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10 12:25 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 10:33:31AM +0200, Baruch Siach wrote:
> On Wed, Feb 10, 2010 at 08:53:15AM +0100, Uwe Kleine-König wrote:
> > On Wed, Feb 10, 2010 at 09:25:19AM +0200, Baruch Siach wrote:
> > > @@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
> > >  	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
> > >  	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
> > >  
> > > +	/* Clock source for lcdc is upll */
> > > +	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
> > > +
> > Note I didn't look in the hardware manual, but I wonder if that should
> > better go in the enable routine for lcdc?
> 
> OK. I'll do it there.

Oops. I now see that the mx25 DEFINE_CLOCK() macro doesn't allow you currently 
to set an arbitrary .enable routine (following the mx27/mx31/mx35 clock 
implementation). So this gets a little tricky, and I'm not sure it worth the 
trouble. What do you think?

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
@ 2010-02-10 12:25         ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10 12:25 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 10:33:31AM +0200, Baruch Siach wrote:
> On Wed, Feb 10, 2010 at 08:53:15AM +0100, Uwe Kleine-K?nig wrote:
> > On Wed, Feb 10, 2010 at 09:25:19AM +0200, Baruch Siach wrote:
> > > @@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
> > >  	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
> > >  	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
> > >  
> > > +	/* Clock source for lcdc is upll */
> > > +	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
> > > +
> > Note I didn't look in the hardware manual, but I wonder if that should
> > better go in the enable routine for lcdc?
> 
> OK. I'll do it there.

Oops. I now see that the mx25 DEFINE_CLOCK() macro doesn't allow you currently 
to set an arbitrary .enable routine (following the mx27/mx31/mx35 clock 
implementation). So this gets a little tricky, and I'm not sure it worth the 
trouble. What do you think?

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v2] imxfb: add support for i.MX25
  2010-02-10  8:26         ` Uwe Kleine-König
@ 2010-02-10 12:52           ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10 12:52 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/Kconfig |    1 +
 drivers/video/Kconfig      |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-mx25/Kconfig b/arch/arm/mach-mx25/Kconfig
index cc28f56..3520d49 100644
--- a/arch/arm/mach-mx25/Kconfig
+++ b/arch/arm/mach-mx25/Kconfig
@@ -4,6 +4,7 @@ comment "MX25 platforms:"
 
 config MACH_MX25_3DS
 	select ARCH_MXC_IOMUX_V3
+	select HAVE_FB_IMX
 	bool "Support MX25PDK (3DS) Platform"
 
 endif
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..3371e34 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -400,9 +400,12 @@ config FB_SA1100
 	  If you plan to use the LCD display with your SA-1100 system, say
 	  Y here.
 
+config HAVE_FB_IMX
+	bool
+
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH v2] imxfb: add support for i.MX25
@ 2010-02-10 12:52           ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-10 12:52 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/Kconfig |    1 +
 drivers/video/Kconfig      |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-mx25/Kconfig b/arch/arm/mach-mx25/Kconfig
index cc28f56..3520d49 100644
--- a/arch/arm/mach-mx25/Kconfig
+++ b/arch/arm/mach-mx25/Kconfig
@@ -4,6 +4,7 @@ comment "MX25 platforms:"
 
 config MACH_MX25_3DS
 	select ARCH_MXC_IOMUX_V3
+	select HAVE_FB_IMX
 	bool "Support MX25PDK (3DS) Platform"
 
 endif
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..3371e34 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -400,9 +400,12 @@ config FB_SA1100
 	  If you plan to use the LCD display with your SA-1100 system, say
 	  Y here.
 
+config HAVE_FB_IMX
+	bool
+
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* Re: [PATCH v2] imxfb: add support for i.MX25
  2010-02-10 12:52           ` Baruch Siach
@ 2010-02-10 16:29             ` Uwe Kleine-König
  -1 siblings, 0 replies; 42+ messages in thread
From:  @ 2010-02-10 16:29 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Baruch,

did you verify that dropping "FB" works correctly?  You should point out
that FB was dropped on purpose and why it doesn't change anything in the
commit log.

Other than that

	Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v2] imxfb: add support for i.MX25
@ 2010-02-10 16:29             ` Uwe Kleine-König
  0 siblings, 0 replies; 42+ messages in thread
From: Uwe Kleine-König @ 2010-02-10 16:29 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Baruch,

did you verify that dropping "FB" works correctly?  You should point out
that FB was dropped on purpose and why it doesn't change anything in the
commit log.

Other than that

	Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH v2] imxfb: add support for i.MX25
  2010-02-10 16:29             ` Uwe Kleine-König
@ 2010-02-11  6:04               ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-11  6:04 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 05:29:42PM +0100, Uwe Kleine-König wrote:
> did you verify that dropping "FB" works correctly?

No, I didn't, and it doesn't. The "endmenu" at the end of 
drivers/video/Kconfig ends the "menu" block, not the "menuconfig" block, which 
does not require an explicit block end statement. So, the FB dependency is 
required. I'll post an updated patch shortly.

> Other than that
> 
> 	Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Thanks for your review, comments, and ack.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH v2] imxfb: add support for i.MX25
@ 2010-02-11  6:04               ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-11  6:04 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Wed, Feb 10, 2010 at 05:29:42PM +0100, Uwe Kleine-K?nig wrote:
> did you verify that dropping "FB" works correctly?

No, I didn't, and it doesn't. The "endmenu" at the end of 
drivers/video/Kconfig ends the "menu" block, not the "menuconfig" block, which 
does not require an explicit block end statement. So, the FB dependency is 
required. I'll post an updated patch shortly.

> Other than that
> 
> 	Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Thanks for your review, comments, and ack.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH] imxfb: add support for i.MX25
  2010-02-10 16:29             ` Uwe Kleine-König
@ 2010-02-11  6:37               ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-11  6:37 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 arch/arm/plat-mxc/Kconfig |    1 +
 drivers/video/Kconfig     |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index 8b0a1ee..2a049df 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -24,6 +24,7 @@ config ARCH_MX25
 	bool "MX25-based"
 	select CPU_ARM926T
 	select COMMON_CLKDEV
+	select HAVE_FB_IMX
 	help
 	  This enables support for systems based on the Freescale i.MX25 family
 
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..83d40ed 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -400,9 +400,12 @@ config FB_SA1100
 	  If you plan to use the LCD display with your SA-1100 system, say
 	  Y here.
 
+config HAVE_FB_IMX
+	bool
+
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on FB && (HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH] imxfb: add support for i.MX25
@ 2010-02-11  6:37               ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-11  6:37 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/plat-mxc/Kconfig |    1 +
 drivers/video/Kconfig     |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index 8b0a1ee..2a049df 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -24,6 +24,7 @@ config ARCH_MX25
 	bool "MX25-based"
 	select CPU_ARM926T
 	select COMMON_CLKDEV
+	select HAVE_FB_IMX
 	help
 	  This enables support for systems based on the Freescale i.MX25 family
 
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..83d40ed 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -400,9 +400,12 @@ config FB_SA1100
 	  If you plan to use the LCD display with your SA-1100 system, say
 	  Y here.
 
+config HAVE_FB_IMX
+	bool
+
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on FB && (HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* Re: [PATCH 0/3] mx25: framebuffer support
  2010-02-10  7:25 ` Baruch Siach
@ 2010-02-16 15:14   ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-16 15:14 UTC (permalink / raw)
  To: linux-arm-kernel

Ping?

I'd really like to see this merged in .34.

Thanks,
baruch

On Wed, Feb 10, 2010 at 09:25:17AM +0200, Baruch Siach wrote:
> This set of patches adds support for the i.MX25 LCD controller block using the 
> imxfb driver. Platform code for the i.MX25 PDK board is also added.
> 
> Tested on the i.MX25 PDK.
> 
> Baruch Siach (3):
>   imxfb: add support for i.MX25
>   mx25: add platform support for imxfb
>   mx25pdk: add LCD support
> 
>  arch/arm/mach-mx25/clock.c                  |   12 ++++++
>  arch/arm/mach-mx25/devices.c                |   23 +++++++++++
>  arch/arm/mach-mx25/devices.h                |    1 +
>  arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
>  arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
>  arch/arm/plat-mxc/include/mach/mx25.h       |    2 +
>  drivers/video/Kconfig                       |    2 +-
>  7 files changed, 96 insertions(+), 1 deletions(-)

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 0/3] mx25: framebuffer support
@ 2010-02-16 15:14   ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-16 15:14 UTC (permalink / raw)
  To: linux-arm-kernel

Ping?

I'd really like to see this merged in .34.

Thanks,
baruch

On Wed, Feb 10, 2010 at 09:25:17AM +0200, Baruch Siach wrote:
> This set of patches adds support for the i.MX25 LCD controller block using the 
> imxfb driver. Platform code for the i.MX25 PDK board is also added.
> 
> Tested on the i.MX25 PDK.
> 
> Baruch Siach (3):
>   imxfb: add support for i.MX25
>   mx25: add platform support for imxfb
>   mx25pdk: add LCD support
> 
>  arch/arm/mach-mx25/clock.c                  |   12 ++++++
>  arch/arm/mach-mx25/devices.c                |   23 +++++++++++
>  arch/arm/mach-mx25/devices.h                |    1 +
>  arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
>  arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
>  arch/arm/plat-mxc/include/mach/mx25.h       |    2 +
>  drivers/video/Kconfig                       |    2 +-
>  7 files changed, 96 insertions(+), 1 deletions(-)

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 0/3] mx25: framebuffer support
  2010-02-16 15:14   ` Baruch Siach
@ 2010-02-16 15:38     ` Florian Tobias Schandinat
  -1 siblings, 0 replies; 42+ messages in thread
From: Florian Tobias Schandinat @ 2010-02-16 15:38 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Baruch Siach schrieb:
> Ping?
> 
> I'd really like to see this merged in .34.

if no one feels responsible for taking this stuff you might want to try 
sending it to Andrew Morton (CC'ed). Just a general advice I really 
don't know this framebuffer.


Regards,

Florian Tobias Schandinat

> On Wed, Feb 10, 2010 at 09:25:17AM +0200, Baruch Siach wrote:
>> This set of patches adds support for the i.MX25 LCD controller block using the 
>> imxfb driver. Platform code for the i.MX25 PDK board is also added.
>>
>> Tested on the i.MX25 PDK.
>>
>> Baruch Siach (3):
>>   imxfb: add support for i.MX25
>>   mx25: add platform support for imxfb
>>   mx25pdk: add LCD support
>>
>>  arch/arm/mach-mx25/clock.c                  |   12 ++++++
>>  arch/arm/mach-mx25/devices.c                |   23 +++++++++++
>>  arch/arm/mach-mx25/devices.h                |    1 +
>>  arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
>>  arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
>>  arch/arm/plat-mxc/include/mach/mx25.h       |    2 +
>>  drivers/video/Kconfig                       |    2 +-
>>  7 files changed, 96 insertions(+), 1 deletions(-)
> 


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 0/3] mx25: framebuffer support
@ 2010-02-16 15:38     ` Florian Tobias Schandinat
  0 siblings, 0 replies; 42+ messages in thread
From: Florian Tobias Schandinat @ 2010-02-16 15:38 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Baruch Siach schrieb:
> Ping?
> 
> I'd really like to see this merged in .34.

if no one feels responsible for taking this stuff you might want to try 
sending it to Andrew Morton (CC'ed). Just a general advice I really 
don't know this framebuffer.


Regards,

Florian Tobias Schandinat

> On Wed, Feb 10, 2010 at 09:25:17AM +0200, Baruch Siach wrote:
>> This set of patches adds support for the i.MX25 LCD controller block using the 
>> imxfb driver. Platform code for the i.MX25 PDK board is also added.
>>
>> Tested on the i.MX25 PDK.
>>
>> Baruch Siach (3):
>>   imxfb: add support for i.MX25
>>   mx25: add platform support for imxfb
>>   mx25pdk: add LCD support
>>
>>  arch/arm/mach-mx25/clock.c                  |   12 ++++++
>>  arch/arm/mach-mx25/devices.c                |   23 +++++++++++
>>  arch/arm/mach-mx25/devices.h                |    1 +
>>  arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
>>  arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
>>  arch/arm/plat-mxc/include/mach/mx25.h       |    2 +
>>  drivers/video/Kconfig                       |    2 +-
>>  7 files changed, 96 insertions(+), 1 deletions(-)
> 

^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [PATCH 0/3] mx25: framebuffer support
  2010-02-16 15:14   ` Baruch Siach
@ 2010-02-17  9:43     ` Sascha Hauer
  -1 siblings, 0 replies; 42+ messages in thread
From: Sascha Hauer @ 2010-02-17  9:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 16, 2010 at 05:14:20PM +0200, Baruch Siach wrote:
> Ping?
> 
> I'd really like to see this merged in .34.

I'll take care of it. Can you repost the whole series, please? It's
always hard to pick the correct patches from a thread with -v2 and
-v3 patches posted in between.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 0/3] mx25: framebuffer support
@ 2010-02-17  9:43     ` Sascha Hauer
  0 siblings, 0 replies; 42+ messages in thread
From: Sascha Hauer @ 2010-02-17  9:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 16, 2010 at 05:14:20PM +0200, Baruch Siach wrote:
> Ping?
> 
> I'd really like to see this merged in .34.

I'll take care of it. Can you repost the whole series, please? It's
always hard to pick the correct patches from a thread with -v2 and
-v3 patches posted in between.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
  2010-02-17  9:43     ` Sascha Hauer
@ 2010-02-17 10:33       ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

The commit also introduces the HAVE_FB_IMX config that is to be selected from
the MX25 platform config. Once this commit gets merged, the two other i.MX
archs, ARCH_MX1 and ARCH_MX2, should follow this one.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 arch/arm/plat-mxc/Kconfig |    1 +
 drivers/video/Kconfig     |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index 8b0a1ee..2a049df 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -24,6 +24,7 @@ config ARCH_MX25
 	bool "MX25-based"
 	select CPU_ARM926T
 	select COMMON_CLKDEV
+	select HAVE_FB_IMX
 	help
 	  This enables support for systems based on the Freescale i.MX25 family
 
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..83d40ed 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -400,9 +400,12 @@ config FB_SA1100
 	  If you plan to use the LCD display with your SA-1100 system, say
 	  Y here.
 
+config HAVE_FB_IMX
+	bool
+
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on FB && (HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 1/3] imxfb: add support for i.MX25
@ 2010-02-17 10:33       ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

The commit also introduces the HAVE_FB_IMX config that is to be selected from
the MX25 platform config. Once this commit gets merged, the two other i.MX
archs, ARCH_MX1 and ARCH_MX2, should follow this one.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 arch/arm/plat-mxc/Kconfig |    1 +
 drivers/video/Kconfig     |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index 8b0a1ee..2a049df 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -24,6 +24,7 @@ config ARCH_MX25
 	bool "MX25-based"
 	select CPU_ARM926T
 	select COMMON_CLKDEV
+	select HAVE_FB_IMX
 	help
 	  This enables support for systems based on the Freescale i.MX25 family
 
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 5a5c303..83d40ed 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -400,9 +400,12 @@ config FB_SA1100
 	  If you plan to use the LCD display with your SA-1100 system, say
 	  Y here.
 
+config HAVE_FB_IMX
+	bool
+
 config FB_IMX
 	tristate "Motorola i.MX LCD support"
-	depends on FB && (ARCH_MX1 || ARCH_MX2)
+	depends on FB && (HAVE_FB_IMX || ARCH_MX1 || ARCH_MX2)
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
  2010-02-17  9:43     ` Sascha Hauer
@ 2010-02-17 10:33       ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/clock.c            |   12 ++++++++++++
 arch/arm/mach-mx25/devices.c          |   23 +++++++++++++++++++++++
 arch/arm/mach-mx25/devices.h          |    1 +
 arch/arm/plat-mxc/include/mach/mx25.h |    2 ++
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index 744b52a..56bf958 100644
--- a/arch/arm/mach-mx25/clock.c
+++ b/arch/arm/mach-mx25/clock.c
@@ -124,6 +124,11 @@ static unsigned long get_rate_gpt(struct clk *clk)
 	return get_rate_per(5);
 }
 
+static unsigned long get_rate_lcdc(struct clk *clk)
+{
+	return get_rate_per(7);
+}
+
 static unsigned long get_rate_otg(struct clk *clk)
 {
 	return 48000000; /* FIXME */
@@ -167,6 +172,8 @@ DEFINE_CLOCK(cspi1_clk,  0, CCM_CGCR1,  5, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi2_clk,  0, CCM_CGCR1,  6, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi3_clk,  0, CCM_CGCR1,  7, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(fec_ahb_clk, 0, CCM_CGCR0, 23, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_ahb_clk, 0, CCM_CGCR0, 24, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_per_clk, 0, CCM_CGCR0,  7, NULL,	 NULL, &lcdc_ahb_clk);
 DEFINE_CLOCK(uart1_clk,  0, CCM_CGCR2, 14, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart2_clk,  0, CCM_CGCR2, 15, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart3_clk,  0, CCM_CGCR2, 16, get_rate_uart, NULL, &uart_per_clk);
@@ -183,6 +190,7 @@ DEFINE_CLOCK(tsc_clk,	 0, CCM_CGCR2, 13, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(i2c_clk,	 0, CCM_CGCR0,  6, get_rate_i2c, NULL, NULL);
 DEFINE_CLOCK(fec_clk,	 0, CCM_CGCR1, 15, get_rate_ipg, NULL, &fec_ahb_clk);
 DEFINE_CLOCK(dryice_clk, 0, CCM_CGCR1,  8, get_rate_ipg, NULL, NULL);
+DEFINE_CLOCK(lcdc_clk,	 0, CCM_CGCR1, 29, get_rate_lcdc, NULL, &lcdc_per_clk);
 
 #define _REGISTER_CLOCK(d, n, c)	\
 	{				\
@@ -216,6 +224,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk)
 	_REGISTER_CLOCK("fec.0", NULL, fec_clk)
 	_REGISTER_CLOCK("imxdi_rtc.0", NULL, dryice_clk)
+	_REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk)
 };
 
 int __init mx25_clocks_init(void)
@@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
 	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
 	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
 
+	/* Clock source for lcdc is upll */
+	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
+
 	mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
 
 	return 0;
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c
index b0b75fc..3f4b8a0 100644
--- a/arch/arm/mach-mx25/devices.c
+++ b/arch/arm/mach-mx25/devices.c
@@ -477,3 +477,26 @@ struct platform_device mx25_rtc_device = {
 	.num_resources	= ARRAY_SIZE(mx25_rtc_resources),
 	.resource	= mx25_rtc_resources,
 };
+
+static struct resource mx25_fb_resources[] = {
+	{
+		.start	= MX25_LCDC_BASE_ADDR,
+		.end	= MX25_LCDC_BASE_ADDR + 0xfff,
+		.flags	= IORESOURCE_MEM,
+	},
+	{
+		.start	= MX25_INT_LCDC,
+		.end	= MX25_INT_LCDC,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+struct platform_device mx25_fb_device = {
+	.name		= "imx-fb",
+	.id		= 0,
+	.resource	= mx25_fb_resources,
+	.num_resources	= ARRAY_SIZE(mx25_fb_resources),
+	.dev		= {
+		.coherent_dma_mask = 0xFFFFFFFF,
+	},
+};
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h
index 37e6a08..39560e1 100644
--- a/arch/arm/mach-mx25/devices.h
+++ b/arch/arm/mach-mx25/devices.h
@@ -20,3 +20,4 @@ extern struct platform_device mxc_i2c_device2;
 extern struct platform_device mx25_fec_device;
 extern struct platform_device mxc_nand_device;
 extern struct platform_device mx25_rtc_device;
+extern struct platform_device mx25_fb_device;
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 215c4d8..f29798d 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -44,9 +44,11 @@
 #define MX25_FEC_BASE_ADDR		0x50038000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
+#define MX25_LCDC_BASE_ADDR		0x53fbc000
 
 #define MX25_INT_DRYICE	25
 #define MX25_INT_FEC	57
 #define MX25_INT_NANDFC	33
+#define MX25_INT_LCDC	39
 
 #endif /* __MACH_MX25_H__ */
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 2/3] mx25: add platform support for imxfb
@ 2010-02-17 10:33       ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/clock.c            |   12 ++++++++++++
 arch/arm/mach-mx25/devices.c          |   23 +++++++++++++++++++++++
 arch/arm/mach-mx25/devices.h          |    1 +
 arch/arm/plat-mxc/include/mach/mx25.h |    2 ++
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index 744b52a..56bf958 100644
--- a/arch/arm/mach-mx25/clock.c
+++ b/arch/arm/mach-mx25/clock.c
@@ -124,6 +124,11 @@ static unsigned long get_rate_gpt(struct clk *clk)
 	return get_rate_per(5);
 }
 
+static unsigned long get_rate_lcdc(struct clk *clk)
+{
+	return get_rate_per(7);
+}
+
 static unsigned long get_rate_otg(struct clk *clk)
 {
 	return 48000000; /* FIXME */
@@ -167,6 +172,8 @@ DEFINE_CLOCK(cspi1_clk,  0, CCM_CGCR1,  5, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi2_clk,  0, CCM_CGCR1,  6, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(cspi3_clk,  0, CCM_CGCR1,  7, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(fec_ahb_clk, 0, CCM_CGCR0, 23, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_ahb_clk, 0, CCM_CGCR0, 24, NULL,	 NULL, NULL);
+DEFINE_CLOCK(lcdc_per_clk, 0, CCM_CGCR0,  7, NULL,	 NULL, &lcdc_ahb_clk);
 DEFINE_CLOCK(uart1_clk,  0, CCM_CGCR2, 14, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart2_clk,  0, CCM_CGCR2, 15, get_rate_uart, NULL, &uart_per_clk);
 DEFINE_CLOCK(uart3_clk,  0, CCM_CGCR2, 16, get_rate_uart, NULL, &uart_per_clk);
@@ -183,6 +190,7 @@ DEFINE_CLOCK(tsc_clk,	 0, CCM_CGCR2, 13, get_rate_ipg, NULL, NULL);
 DEFINE_CLOCK(i2c_clk,	 0, CCM_CGCR0,  6, get_rate_i2c, NULL, NULL);
 DEFINE_CLOCK(fec_clk,	 0, CCM_CGCR1, 15, get_rate_ipg, NULL, &fec_ahb_clk);
 DEFINE_CLOCK(dryice_clk, 0, CCM_CGCR1,  8, get_rate_ipg, NULL, NULL);
+DEFINE_CLOCK(lcdc_clk,	 0, CCM_CGCR1, 29, get_rate_lcdc, NULL, &lcdc_per_clk);
 
 #define _REGISTER_CLOCK(d, n, c)	\
 	{				\
@@ -216,6 +224,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk)
 	_REGISTER_CLOCK("fec.0", NULL, fec_clk)
 	_REGISTER_CLOCK("imxdi_rtc.0", NULL, dryice_clk)
+	_REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk)
 };
 
 int __init mx25_clocks_init(void)
@@ -233,6 +242,9 @@ int __init mx25_clocks_init(void)
 	__raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
 	__raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
 
+	/* Clock source for lcdc is upll */
+	__raw_writel(__raw_readl(CRM_BASE+0x64) | (1 << 7), CRM_BASE + 0x64);
+
 	mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
 
 	return 0;
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c
index b0b75fc..3f4b8a0 100644
--- a/arch/arm/mach-mx25/devices.c
+++ b/arch/arm/mach-mx25/devices.c
@@ -477,3 +477,26 @@ struct platform_device mx25_rtc_device = {
 	.num_resources	= ARRAY_SIZE(mx25_rtc_resources),
 	.resource	= mx25_rtc_resources,
 };
+
+static struct resource mx25_fb_resources[] = {
+	{
+		.start	= MX25_LCDC_BASE_ADDR,
+		.end	= MX25_LCDC_BASE_ADDR + 0xfff,
+		.flags	= IORESOURCE_MEM,
+	},
+	{
+		.start	= MX25_INT_LCDC,
+		.end	= MX25_INT_LCDC,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+struct platform_device mx25_fb_device = {
+	.name		= "imx-fb",
+	.id		= 0,
+	.resource	= mx25_fb_resources,
+	.num_resources	= ARRAY_SIZE(mx25_fb_resources),
+	.dev		= {
+		.coherent_dma_mask = 0xFFFFFFFF,
+	},
+};
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h
index 37e6a08..39560e1 100644
--- a/arch/arm/mach-mx25/devices.h
+++ b/arch/arm/mach-mx25/devices.h
@@ -20,3 +20,4 @@ extern struct platform_device mxc_i2c_device2;
 extern struct platform_device mx25_fec_device;
 extern struct platform_device mxc_nand_device;
 extern struct platform_device mx25_rtc_device;
+extern struct platform_device mx25_fb_device;
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 215c4d8..f29798d 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -44,9 +44,11 @@
 #define MX25_FEC_BASE_ADDR		0x50038000
 #define MX25_NFC_BASE_ADDR		0xbb000000
 #define MX25_DRYICE_BASE_ADDR		0x53ffc000
+#define MX25_LCDC_BASE_ADDR		0x53fbc000
 
 #define MX25_INT_DRYICE	25
 #define MX25_INT_FEC	57
 #define MX25_INT_NANDFC	33
+#define MX25_INT_LCDC	39
 
 #endif /* __MACH_MX25_H__ */
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 3/3] mx25pdk: add LCD support
  2010-02-17  9:43     ` Sascha Hauer
@ 2010-02-17 10:33       ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
 2 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c
index f4e8b98..6d9dd33 100644
--- a/arch/arm/mach-mx25/mx25pdk.c
+++ b/arch/arm/mach-mx25/mx25pdk.c
@@ -35,6 +35,7 @@
 #include <mach/imx-uart.h>
 #include <mach/mx25.h>
 #include <mach/mxc_nand.h>
+#include <mach/imxfb.h>
 #include "devices.h"
 #include <mach/iomux.h>
 
@@ -54,6 +55,31 @@ static struct pad_desc mx25pdk_pads[] = {
 	MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
 	MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */
 	MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */
+
+	/* LCD */
+	MX25_PAD_LD0__LD0,
+	MX25_PAD_LD1__LD1,
+	MX25_PAD_LD2__LD2,
+	MX25_PAD_LD3__LD3,
+	MX25_PAD_LD4__LD4,
+	MX25_PAD_LD5__LD5,
+	MX25_PAD_LD6__LD6,
+	MX25_PAD_LD7__LD7,
+	MX25_PAD_LD8__LD8,
+	MX25_PAD_LD9__LD9,
+	MX25_PAD_LD10__LD10,
+	MX25_PAD_LD11__LD11,
+	MX25_PAD_LD12__LD12,
+	MX25_PAD_LD13__LD13,
+	MX25_PAD_LD14__LD14,
+	MX25_PAD_LD15__LD15,
+	MX25_PAD_GPIO_E__LD16,
+	MX25_PAD_GPIO_F__LD17,
+	MX25_PAD_HSYNC__HSYNC,
+	MX25_PAD_VSYNC__VSYNC,
+	MX25_PAD_LSCLK__LSCLK,
+	MX25_PAD_OE_ACD__OE_ACD,
+	MX25_PAD_CONTRAST__CONTRAST,
 };
 
 static struct fec_platform_data mx25_fec_pdata = {
@@ -83,6 +109,34 @@ static struct mxc_nand_platform_data mx25pdk_nand_board_info = {
 	.flash_bbt	= 1,
 };
 
+static struct imx_fb_videomode mx25pdk_modes[] = {
+	{
+		.mode	= {
+			.name		= "CRT-VGA",
+			.refresh	= 60,
+			.xres		= 640,
+			.yres		= 480,
+			.pixclock	= 39683,
+			.left_margin	= 45,
+			.right_margin	= 114,
+			.upper_margin	= 33,
+			.lower_margin	= 11,
+			.hsync_len	= 1,
+			.vsync_len	= 1,
+		},
+		.bpp	= 16,
+		.pcr	= 0xFA208B80,
+	},
+};
+
+static struct imx_fb_platform_data mx25pdk_fb_pdata = {
+	.mode		= mx25pdk_modes,
+	.num_modes	= ARRAY_SIZE(mx25pdk_modes),
+	.pwmr		= 0x00A903FF,
+	.lscr1		= 0x00120300,
+	.dmacr		= 0x00020010,
+};
+
 static void __init mx25pdk_init(void)
 {
 	mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
@@ -92,6 +146,7 @@ static void __init mx25pdk_init(void)
 	mxc_register_device(&mxc_usbh2, NULL);
 	mxc_register_device(&mxc_nand_device, &mx25pdk_nand_board_info);
 	mxc_register_device(&mx25_rtc_device, NULL);
+	mxc_register_device(&mx25_fb_device, &mx25pdk_fb_pdata);
 
 	mx25pdk_fec_reset();
 	mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
index 9af494f..5418d52 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
@@ -462,9 +462,11 @@
 #define MX25_PAD_GPIO_C__CAN2_TX	IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_D__GPIO_D		IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_E__LD16		IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_D__CAN2_RX	IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_E__GPIO_E		IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_F__LD17		IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_E__AUD7_TXD	IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL)
 
 #define MX25_PAD_GPIO_F__GPIO_F		IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL)
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [PATCH 3/3] mx25pdk: add LCD support
@ 2010-02-17 10:33       ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 arch/arm/mach-mx25/mx25pdk.c                |   55 +++++++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/iomux-mx25.h |    2 +
 2 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c
index f4e8b98..6d9dd33 100644
--- a/arch/arm/mach-mx25/mx25pdk.c
+++ b/arch/arm/mach-mx25/mx25pdk.c
@@ -35,6 +35,7 @@
 #include <mach/imx-uart.h>
 #include <mach/mx25.h>
 #include <mach/mxc_nand.h>
+#include <mach/imxfb.h>
 #include "devices.h"
 #include <mach/iomux.h>
 
@@ -54,6 +55,31 @@ static struct pad_desc mx25pdk_pads[] = {
 	MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
 	MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */
 	MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */
+
+	/* LCD */
+	MX25_PAD_LD0__LD0,
+	MX25_PAD_LD1__LD1,
+	MX25_PAD_LD2__LD2,
+	MX25_PAD_LD3__LD3,
+	MX25_PAD_LD4__LD4,
+	MX25_PAD_LD5__LD5,
+	MX25_PAD_LD6__LD6,
+	MX25_PAD_LD7__LD7,
+	MX25_PAD_LD8__LD8,
+	MX25_PAD_LD9__LD9,
+	MX25_PAD_LD10__LD10,
+	MX25_PAD_LD11__LD11,
+	MX25_PAD_LD12__LD12,
+	MX25_PAD_LD13__LD13,
+	MX25_PAD_LD14__LD14,
+	MX25_PAD_LD15__LD15,
+	MX25_PAD_GPIO_E__LD16,
+	MX25_PAD_GPIO_F__LD17,
+	MX25_PAD_HSYNC__HSYNC,
+	MX25_PAD_VSYNC__VSYNC,
+	MX25_PAD_LSCLK__LSCLK,
+	MX25_PAD_OE_ACD__OE_ACD,
+	MX25_PAD_CONTRAST__CONTRAST,
 };
 
 static struct fec_platform_data mx25_fec_pdata = {
@@ -83,6 +109,34 @@ static struct mxc_nand_platform_data mx25pdk_nand_board_info = {
 	.flash_bbt	= 1,
 };
 
+static struct imx_fb_videomode mx25pdk_modes[] = {
+	{
+		.mode	= {
+			.name		= "CRT-VGA",
+			.refresh	= 60,
+			.xres		= 640,
+			.yres		= 480,
+			.pixclock	= 39683,
+			.left_margin	= 45,
+			.right_margin	= 114,
+			.upper_margin	= 33,
+			.lower_margin	= 11,
+			.hsync_len	= 1,
+			.vsync_len	= 1,
+		},
+		.bpp	= 16,
+		.pcr	= 0xFA208B80,
+	},
+};
+
+static struct imx_fb_platform_data mx25pdk_fb_pdata = {
+	.mode		= mx25pdk_modes,
+	.num_modes	= ARRAY_SIZE(mx25pdk_modes),
+	.pwmr		= 0x00A903FF,
+	.lscr1		= 0x00120300,
+	.dmacr		= 0x00020010,
+};
+
 static void __init mx25pdk_init(void)
 {
 	mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
@@ -92,6 +146,7 @@ static void __init mx25pdk_init(void)
 	mxc_register_device(&mxc_usbh2, NULL);
 	mxc_register_device(&mxc_nand_device, &mx25pdk_nand_board_info);
 	mxc_register_device(&mx25_rtc_device, NULL);
+	mxc_register_device(&mx25_fb_device, &mx25pdk_fb_pdata);
 
 	mx25pdk_fec_reset();
 	mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
index 9af494f..5418d52 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
@@ -462,9 +462,11 @@
 #define MX25_PAD_GPIO_C__CAN2_TX	IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_D__GPIO_D		IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_E__LD16		IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_D__CAN2_RX	IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP)
 
 #define MX25_PAD_GPIO_E__GPIO_E		IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL)
+#define MX25_PAD_GPIO_F__LD17		IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, NO_PAD_CTRL)
 #define MX25_PAD_GPIO_E__AUD7_TXD	IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL)
 
 #define MX25_PAD_GPIO_F__GPIO_F		IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL)
-- 
1.6.6.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* Re: [PATCH 0/3] mx25: framebuffer support
  2010-02-17  9:43     ` Sascha Hauer
@ 2010-02-17 10:35       ` Baruch Siach
  -1 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:35 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sascha,

On Wed, Feb 17, 2010 at 10:43:59AM +0100, Sascha Hauer wrote:
> On Tue, Feb 16, 2010 at 05:14:20PM +0200, Baruch Siach wrote:
> > Ping?
> > 
> > I'd really like to see this merged in .34.
> 
> I'll take care of it. Can you repost the whole series, please? It's
> always hard to pick the correct patches from a thread with -v2 and
> -v3 patches posted in between.

Posted, thanks.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [PATCH 0/3] mx25: framebuffer support
@ 2010-02-17 10:35       ` Baruch Siach
  0 siblings, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2010-02-17 10:35 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sascha,

On Wed, Feb 17, 2010 at 10:43:59AM +0100, Sascha Hauer wrote:
> On Tue, Feb 16, 2010 at 05:14:20PM +0200, Baruch Siach wrote:
> > Ping?
> > 
> > I'd really like to see this merged in .34.
> 
> I'll take care of it. Can you repost the whole series, please? It's
> always hard to pick the correct patches from a thread with -v2 and
> -v3 patches posted in between.

Posted, thanks.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2010-02-17 10:35 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-10  7:25 [PATCH 0/3] mx25: framebuffer support Baruch Siach
2010-02-10  7:25 ` Baruch Siach
2010-02-10  7:25 ` [PATCH 1/3] imxfb: add support for i.MX25 Baruch Siach
2010-02-10  7:25   ` Baruch Siach
2010-02-10  7:50   ` 
2010-02-10  7:50     ` Uwe Kleine-König
2010-02-10  8:15     ` Baruch Siach
2010-02-10  8:15       ` Baruch Siach
2010-02-10  8:26       ` 
2010-02-10  8:26         ` Uwe Kleine-König
2010-02-10 12:52         ` [PATCH v2] " Baruch Siach
2010-02-10 12:52           ` Baruch Siach
2010-02-10 16:29           ` 
2010-02-10 16:29             ` Uwe Kleine-König
2010-02-11  6:04             ` Baruch Siach
2010-02-11  6:04               ` Baruch Siach
2010-02-11  6:37             ` [PATCH] " Baruch Siach
2010-02-11  6:37               ` Baruch Siach
2010-02-10  7:25 ` [PATCH 2/3] mx25: add platform support for imxfb Baruch Siach
2010-02-10  7:25   ` Baruch Siach
2010-02-10  7:53   ` 
2010-02-10  7:53     ` Uwe Kleine-König
2010-02-10  8:33     ` Baruch Siach
2010-02-10  8:33       ` Baruch Siach
2010-02-10 12:25       ` Baruch Siach
2010-02-10 12:25         ` Baruch Siach
2010-02-10  7:25 ` [PATCH 3/3] mx25pdk: add LCD support Baruch Siach
2010-02-10  7:25   ` Baruch Siach
2010-02-16 15:14 ` [PATCH 0/3] mx25: framebuffer support Baruch Siach
2010-02-16 15:14   ` Baruch Siach
2010-02-16 15:38   ` Florian Tobias Schandinat
2010-02-16 15:38     ` Florian Tobias Schandinat
2010-02-17  9:43   ` Sascha Hauer
2010-02-17  9:43     ` Sascha Hauer
2010-02-17 10:33     ` [PATCH 1/3] imxfb: add support for i.MX25 Baruch Siach
2010-02-17 10:33       ` Baruch Siach
2010-02-17 10:33     ` [PATCH 2/3] mx25: add platform support for imxfb Baruch Siach
2010-02-17 10:33       ` Baruch Siach
2010-02-17 10:33     ` [PATCH 3/3] mx25pdk: add LCD support Baruch Siach
2010-02-17 10:33       ` Baruch Siach
2010-02-17 10:35     ` [PATCH 0/3] mx25: framebuffer support Baruch Siach
2010-02-17 10:35       ` Baruch Siach

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.