* few patches for PhyCARD-S board(pca100) with mx27 SOC
@ 2010-06-03 13:55 Luotao Fu
2010-06-03 13:55 ` [PATCH 1/2] ARM/MX2: add framebuffer device support and TFT to pca100 board Luotao Fu
2010-06-03 13:55 ` [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for " Luotao Fu
0 siblings, 2 replies; 6+ messages in thread
From: Luotao Fu @ 2010-06-03 13:55 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
in following two patches for the phyCARD-S (pca100) board.
cheers
Luotao Fu
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] ARM/MX2: add framebuffer device support and TFT to pca100 board
2010-06-03 13:55 few patches for PhyCARD-S board(pca100) with mx27 SOC Luotao Fu
@ 2010-06-03 13:55 ` Luotao Fu
2010-06-03 13:55 ` [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for " Luotao Fu
1 sibling, 0 replies; 6+ messages in thread
From: Luotao Fu @ 2010-06-03 13:55 UTC (permalink / raw)
To: linux-arm-kernel
this one adds the frambuffer device and a TFT panel to the PhyCard-S
(pca100) board.
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
---
arch/arm/mach-mx2/mach-pca100.c | 68 +++++++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-mx2/mach-pca100.c b/arch/arm/mach-mx2/mach-pca100.c
index 778fff2..cf3d57b 100644
--- a/arch/arm/mach-mx2/mach-pca100.c
+++ b/arch/arm/mach-mx2/mach-pca100.c
@@ -49,6 +49,7 @@
#include <mach/mmc.h>
#include <mach/mxc_ehci.h>
#include <mach/ulpi.h>
+#include <mach/imxfb.h>
#include "devices.h"
@@ -131,6 +132,32 @@ static int pca100_pins[] = {
PD23_AF_USBH2_DATA2,
PD24_AF_USBH2_DATA1,
PD26_AF_USBH2_DATA5,
+ /* 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,
+ /* LVDS Transceiver */
+ LVDS_PWR_DWN_GPIO | GPIO_GPIO | GPIO_IN,
};
static struct imxuart_platform_data uart_pdata = {
@@ -296,6 +323,45 @@ static int __init pca100_otg_mode(char *options)
}
__setup("otg_mode=", pca100_otg_mode);
+/* framebuffer info */
+static struct imx_fb_videomode pca100_fb_modes[] = {
+ {
+ .mode = {
+ .name = "EMERGING-ETV570G0DHU",
+ .refresh = 60,
+ .xres = 640,
+ .yres = 480,
+ .pixclock = 39722, /* in ps (25.175 MHz) */
+ .hsync_len = 30,
+ .left_margin = 114,
+ .right_margin = 16,
+ .vsync_len = 3,
+ .upper_margin = 32,
+ .lower_margin = 0,
+ },
+ /*
+ * TFT
+ * Pixel pol active high
+ * HSYNC active low
+ * VSYNC active low
+ * use HSYNC for ACD count
+ * line clock disable while idle
+ * always enable line clock even if no data
+ */
+ .pcr = 0xf0c08080,
+ .bpp = 16,
+ },
+};
+
+static struct imx_fb_platform_data pca100_fb_data = {
+ .mode = pca100_fb_modes,
+ .num_modes = ARRAY_SIZE(pca100_fb_modes),
+
+ .pwmr = 0x00A903FF,
+ .lscr1 = 0x00120300,
+ .dmacr = 0x00020010,
+};
+
static void __init pca100_init(void)
{
int ret;
@@ -371,6 +437,8 @@ static void __init pca100_init(void)
mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata);
}
+ mxc_register_device(&mxc_fb_device, &pca100_fb_data);
+
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
}
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for pca100 board
2010-06-03 13:55 few patches for PhyCARD-S board(pca100) with mx27 SOC Luotao Fu
2010-06-03 13:55 ` [PATCH 1/2] ARM/MX2: add framebuffer device support and TFT to pca100 board Luotao Fu
@ 2010-06-03 13:55 ` Luotao Fu
2010-06-18 7:23 ` pca100 patches [V2] Luotao Fu
` (2 more replies)
1 sibling, 3 replies; 6+ messages in thread
From: Luotao Fu @ 2010-06-03 13:55 UTC (permalink / raw)
To: linux-arm-kernel
cleaned up some duplicated mxc_gpio_mode calls and move the correpsonding
pin multiplexing either into the initial pin config table or ifdef blocks.
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
---
arch/arm/mach-mx2/mach-pca100.c | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/arch/arm/mach-mx2/mach-pca100.c b/arch/arm/mach-mx2/mach-pca100.c
index cf3d57b..dcd6555 100644
--- a/arch/arm/mach-mx2/mach-pca100.c
+++ b/arch/arm/mach-mx2/mach-pca100.c
@@ -55,6 +55,9 @@
#define OTG_PHY_CS_GPIO (GPIO_PORTB + 23)
#define USBH2_PHY_CS_GPIO (GPIO_PORTB + 24)
+#define SPI1_SS0 (GPIO_PORTD + 28)
+#define SPI1_SS1 (GPIO_PORTD + 27)
+#define SD2_CD (GPIO_PORTC + 29)
static int pca100_pins[] = {
/* UART1 */
@@ -69,6 +72,7 @@ static int pca100_pins[] = {
PB7_PF_SD2_D3,
PB8_PF_SD2_CMD,
PB9_PF_SD2_CLK,
+ SD2_CD | GPIO_GPIO | GPIO_IN,
/* FEC */
PD0_AIN_FEC_TXD0,
PD1_AIN_FEC_TXD1,
@@ -158,6 +162,10 @@ static int pca100_pins[] = {
PA31_PF_OE_ACD,
/* LVDS Transceiver */
LVDS_PWR_DWN_GPIO | GPIO_GPIO | GPIO_IN,
+ /* free GPIO */
+ GPIO_PORTC | 31 | GPIO_GPIO | GPIO_IN, /* GPIO0_IRQ */
+ GPIO_PORTC | 25 | GPIO_GPIO | GPIO_IN, /* GPIO1_IRQ */
+ GPIO_PORTE | 5 | GPIO_GPIO | GPIO_IN, /* GPIO2_IRQ */
};
static struct imxuart_platform_data uart_pdata = {
@@ -215,7 +223,7 @@ static struct spi_board_info pca100_spi_board_info[] __initdata = {
},
};
-static int pca100_spi_cs[] = {GPIO_PORTD + 28, GPIO_PORTD + 27};
+static int pca100_spi_cs[] = {SPI1_SS0, SPI1_SS1};
static struct spi_imx_master pca100_spi_0_data = {
.chipselect = pca100_spi_cs,
@@ -387,7 +395,6 @@ static void __init pca100_init(void)
mxc_register_device(&mxc_uart_device0, &uart_pdata);
- mxc_gpio_mode(GPIO_PORTC | 29 | GPIO_GPIO | GPIO_IN);
mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata);
mxc_register_device(&imx27_nand_device, &pca100_nand_board_info);
@@ -398,17 +405,9 @@ static void __init pca100_init(void)
mxc_register_device(&mxc_i2c_device1, &pca100_i2c_1_data);
- mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_OUT);
- mxc_gpio_mode(GPIO_PORTD | 27 | GPIO_GPIO | GPIO_OUT);
-
- /* GPIO0_IRQ */
- mxc_gpio_mode(GPIO_PORTC | 31 | GPIO_GPIO | GPIO_IN);
- /* GPIO1_IRQ */
- mxc_gpio_mode(GPIO_PORTC | 25 | GPIO_GPIO | GPIO_IN);
- /* GPIO2_IRQ */
- mxc_gpio_mode(GPIO_PORTE | 5 | GPIO_GPIO | GPIO_IN);
-
#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
+ mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_IN);
+ mxc_gpio_mode(GPIO_PORTD | 27 | GPIO_GPIO | GPIO_IN);
spi_register_board_info(pca100_spi_board_info,
ARRAY_SIZE(pca100_spi_board_info));
mxc_register_device(&mxc_spi_device0, &pca100_spi_0_data);
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* pca100 patches [V2]
2010-06-03 13:55 ` [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for " Luotao Fu
@ 2010-06-18 7:23 ` Luotao Fu
2010-06-18 7:23 ` [PATCH 1/2 V2] pca100: add framebuffer device support and TFT Luotao Fu
2010-06-18 7:23 ` [PATCH 2/2 V2] pca100: clean up GPIO pin multiplexing Luotao Fu
2 siblings, 0 replies; 6+ messages in thread
From: Luotao Fu @ 2010-06-18 7:23 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
this is the V2 of the pach serie for PhyCARD-S(pca100) Board. In the last patch
serie I brought in a regression by using an undefined macro..doh!. V2 fixed this
issue.
cheers
Luotao Fu
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2 V2] pca100: add framebuffer device support and TFT
2010-06-03 13:55 ` [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for " Luotao Fu
2010-06-18 7:23 ` pca100 patches [V2] Luotao Fu
@ 2010-06-18 7:23 ` Luotao Fu
2010-06-18 7:23 ` [PATCH 2/2 V2] pca100: clean up GPIO pin multiplexing Luotao Fu
2 siblings, 0 replies; 6+ messages in thread
From: Luotao Fu @ 2010-06-18 7:23 UTC (permalink / raw)
To: linux-arm-kernel
this one adds the frambuffer device and a TFT panel to the PhyCard-S
(pca100) board.
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
---
V2 Changes: removed undefined LVDS_PWR macro.
arch/arm/mach-mx2/mach-pca100.c | 66 +++++++++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-mx2/mach-pca100.c b/arch/arm/mach-mx2/mach-pca100.c
index a87422e..47173d1 100644
--- a/arch/arm/mach-mx2/mach-pca100.c
+++ b/arch/arm/mach-mx2/mach-pca100.c
@@ -49,6 +49,7 @@
#include <mach/mmc.h>
#include <mach/mxc_ehci.h>
#include <mach/ulpi.h>
+#include <mach/imxfb.h>
#include "devices.h"
@@ -131,6 +132,30 @@ static int pca100_pins[] = {
PD23_AF_USBH2_DATA2,
PD24_AF_USBH2_DATA1,
PD26_AF_USBH2_DATA5,
+ /* 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,
};
static struct imxuart_platform_data uart_pdata = {
@@ -297,6 +322,45 @@ static int __init pca100_otg_mode(char *options)
}
__setup("otg_mode=", pca100_otg_mode);
+/* framebuffer info */
+static struct imx_fb_videomode pca100_fb_modes[] = {
+ {
+ .mode = {
+ .name = "EMERGING-ETV570G0DHU",
+ .refresh = 60,
+ .xres = 640,
+ .yres = 480,
+ .pixclock = 39722, /* in ps (25.175 MHz) */
+ .hsync_len = 30,
+ .left_margin = 114,
+ .right_margin = 16,
+ .vsync_len = 3,
+ .upper_margin = 32,
+ .lower_margin = 0,
+ },
+ /*
+ * TFT
+ * Pixel pol active high
+ * HSYNC active low
+ * VSYNC active low
+ * use HSYNC for ACD count
+ * line clock disable while idle
+ * always enable line clock even if no data
+ */
+ .pcr = 0xf0c08080,
+ .bpp = 16,
+ },
+};
+
+static struct imx_fb_platform_data pca100_fb_data = {
+ .mode = pca100_fb_modes,
+ .num_modes = ARRAY_SIZE(pca100_fb_modes),
+
+ .pwmr = 0x00A903FF,
+ .lscr1 = 0x00120300,
+ .dmacr = 0x00020010,
+};
+
static void __init pca100_init(void)
{
int ret;
@@ -372,6 +436,8 @@ static void __init pca100_init(void)
mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata);
}
+ mxc_register_device(&mxc_fb_device, &pca100_fb_data);
+
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
}
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2 V2] pca100: clean up GPIO pin multiplexing
2010-06-03 13:55 ` [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for " Luotao Fu
2010-06-18 7:23 ` pca100 patches [V2] Luotao Fu
2010-06-18 7:23 ` [PATCH 1/2 V2] pca100: add framebuffer device support and TFT Luotao Fu
@ 2010-06-18 7:23 ` Luotao Fu
2 siblings, 0 replies; 6+ messages in thread
From: Luotao Fu @ 2010-06-18 7:23 UTC (permalink / raw)
To: linux-arm-kernel
cleaned up some duplicated mxc_gpio_mode calls and move the correpsonding
pin multiplexing either into the initial pin config table or ifdef blocks.
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
---
V2 Changes: removed undefined LVDS_PWR macro.
arch/arm/mach-mx2/mach-pca100.c | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/arch/arm/mach-mx2/mach-pca100.c b/arch/arm/mach-mx2/mach-pca100.c
index 47173d1..5357020 100644
--- a/arch/arm/mach-mx2/mach-pca100.c
+++ b/arch/arm/mach-mx2/mach-pca100.c
@@ -55,6 +55,9 @@
#define OTG_PHY_CS_GPIO (GPIO_PORTB + 23)
#define USBH2_PHY_CS_GPIO (GPIO_PORTB + 24)
+#define SPI1_SS0 (GPIO_PORTD + 28)
+#define SPI1_SS1 (GPIO_PORTD + 27)
+#define SD2_CD (GPIO_PORTC + 29)
static int pca100_pins[] = {
/* UART1 */
@@ -69,6 +72,7 @@ static int pca100_pins[] = {
PB7_PF_SD2_D3,
PB8_PF_SD2_CMD,
PB9_PF_SD2_CLK,
+ SD2_CD | GPIO_GPIO | GPIO_IN,
/* FEC */
PD0_AIN_FEC_TXD0,
PD1_AIN_FEC_TXD1,
@@ -156,6 +160,10 @@ static int pca100_pins[] = {
PA28_PF_HSYNC,
PA29_PF_VSYNC,
PA31_PF_OE_ACD,
+ /* free GPIO */
+ GPIO_PORTC | 31 | GPIO_GPIO | GPIO_IN, /* GPIO0_IRQ */
+ GPIO_PORTC | 25 | GPIO_GPIO | GPIO_IN, /* GPIO1_IRQ */
+ GPIO_PORTE | 5 | GPIO_GPIO | GPIO_IN, /* GPIO2_IRQ */
};
static struct imxuart_platform_data uart_pdata = {
@@ -214,7 +222,7 @@ static struct spi_board_info pca100_spi_board_info[] __initdata = {
},
};
-static int pca100_spi_cs[] = {GPIO_PORTD + 28, GPIO_PORTD + 27};
+static int pca100_spi_cs[] = {SPI1_SS0, SPI1_SS1};
static struct spi_imx_master pca100_spi_0_data = {
.chipselect = pca100_spi_cs,
@@ -386,7 +394,6 @@ static void __init pca100_init(void)
mxc_register_device(&mxc_uart_device0, &uart_pdata);
- mxc_gpio_mode(GPIO_PORTC | 29 | GPIO_GPIO | GPIO_IN);
mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata);
mxc_register_device(&imx27_nand_device, &pca100_nand_board_info);
@@ -397,17 +404,9 @@ static void __init pca100_init(void)
mxc_register_device(&mxc_i2c_device1, &pca100_i2c_1_data);
- mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_OUT);
- mxc_gpio_mode(GPIO_PORTD | 27 | GPIO_GPIO | GPIO_OUT);
-
- /* GPIO0_IRQ */
- mxc_gpio_mode(GPIO_PORTC | 31 | GPIO_GPIO | GPIO_IN);
- /* GPIO1_IRQ */
- mxc_gpio_mode(GPIO_PORTC | 25 | GPIO_GPIO | GPIO_IN);
- /* GPIO2_IRQ */
- mxc_gpio_mode(GPIO_PORTE | 5 | GPIO_GPIO | GPIO_IN);
-
#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
+ mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_IN);
+ mxc_gpio_mode(GPIO_PORTD | 27 | GPIO_GPIO | GPIO_IN);
spi_register_board_info(pca100_spi_board_info,
ARRAY_SIZE(pca100_spi_board_info));
mxc_register_device(&mxc_spi_device0, &pca100_spi_0_data);
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-06-18 7:23 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-03 13:55 few patches for PhyCARD-S board(pca100) with mx27 SOC Luotao Fu
2010-06-03 13:55 ` [PATCH 1/2] ARM/MX2: add framebuffer device support and TFT to pca100 board Luotao Fu
2010-06-03 13:55 ` [PATCH 2/2] ARM/MX2: clean up GPIO pin multiplexing for " Luotao Fu
2010-06-18 7:23 ` pca100 patches [V2] Luotao Fu
2010-06-18 7:23 ` [PATCH 1/2 V2] pca100: add framebuffer device support and TFT Luotao Fu
2010-06-18 7:23 ` [PATCH 2/2 V2] pca100: clean up GPIO pin multiplexing Luotao Fu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).