2010-08-26 04:48:05

by Mark F. Brown

[permalink] [raw]
Subject: [PATCH v3 0/2] added initial support for TPO TD043MTEA1 LCD display on Aspenite

Mark F. Brown (2):
pxa168: added framebuffer support code.
pxa168: added initial support for TPO TD043MTEA1 LCD display on
Aspenite

arch/arm/mach-mmp/aspenite.c | 60 +++++++++++++++++++++++++++++++
arch/arm/mach-mmp/include/mach/pxa168.h | 8 ++++
arch/arm/mach-mmp/pxa168.c | 3 ++
3 files changed, 71 insertions(+), 0 deletions(-)


2010-08-26 04:48:12

by Mark F. Brown

[permalink] [raw]
Subject: [PATCH v3 1/2] pxa168: added framebuffer support code.

Signed-off-by: Mark F. Brown <[email protected]>
---
arch/arm/mach-mmp/include/mach/pxa168.h | 8 ++++++++
arch/arm/mach-mmp/pxa168.c | 3 +++
2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mmp/include/mach/pxa168.h b/arch/arm/mach-mmp/include/mach/pxa168.h
index 27e1bc7..220738f 100644
--- a/arch/arm/mach-mmp/include/mach/pxa168.h
+++ b/arch/arm/mach-mmp/include/mach/pxa168.h
@@ -10,6 +10,7 @@ extern void __init pxa168_init_irq(void);
#include <mach/devices.h>
#include <plat/i2c.h>
#include <plat/pxa3xx_nand.h>
+#include <video/pxa168fb.h>

extern struct pxa_device_desc pxa168_device_uart1;
extern struct pxa_device_desc pxa168_device_uart2;
@@ -25,6 +26,7 @@ extern struct pxa_device_desc pxa168_device_ssp3;
extern struct pxa_device_desc pxa168_device_ssp4;
extern struct pxa_device_desc pxa168_device_ssp5;
extern struct pxa_device_desc pxa168_device_nand;
+extern struct pxa_device_desc pxa168_device_fb;

static inline int pxa168_add_uart(int id)
{
@@ -97,4 +99,10 @@ static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
{
return pxa_register_device(&pxa168_device_nand, info, sizeof(*info));
}
+
+static inline int pxa168_add_fb(struct pxa168fb_mach_info *mi)
+{
+ return pxa_register_device(&pxa168_device_fb, mi, sizeof(*mi));
+}
+
#endif /* __ASM_MACH_PXA168_H */
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 652ae66..eaebf66 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -79,6 +79,7 @@ static APBC_CLK(ssp4, PXA168_SSP4, 4, 0);
static APBC_CLK(ssp5, PXA168_SSP5, 4, 0);

static APMU_CLK(nand, NAND, 0x01db, 208000000);
+static APMU_CLK(lcd, LCD, 0x7f, 312000000);

/* device and clock bindings */
static struct clk_lookup pxa168_clkregs[] = {
@@ -96,6 +97,7 @@ static struct clk_lookup pxa168_clkregs[] = {
INIT_CLKREG(&clk_ssp4, "pxa168-ssp.3", NULL),
INIT_CLKREG(&clk_ssp5, "pxa168-ssp.4", NULL),
INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
+ INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL),
};

static int __init pxa168_init(void)
@@ -147,3 +149,4 @@ PXA168_DEVICE(ssp2, "pxa168-ssp", 1, SSP2, 0xd401c000, 0x40, 54, 55);
PXA168_DEVICE(ssp3, "pxa168-ssp", 2, SSP3, 0xd401f000, 0x40, 56, 57);
PXA168_DEVICE(ssp4, "pxa168-ssp", 3, SSP4, 0xd4020000, 0x40, 58, 59);
PXA168_DEVICE(ssp5, "pxa168-ssp", 4, SSP5, 0xd4021000, 0x40, 60, 61);
+PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8);
--
1.7.0.4

2010-08-26 04:48:29

by Mark F. Brown

[permalink] [raw]
Subject: [PATCH v3 2/2] pxa168: added initial support for TPO TD043MTEA1 LCD display on Aspenite

Signed-off-by: Mark F. Brown <[email protected]>
---
arch/arm/mach-mmp/aspenite.c | 60 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c
index 0629394..9e1bd6b 100644
--- a/arch/arm/mach-mmp/aspenite.c
+++ b/arch/arm/mach-mmp/aspenite.c
@@ -23,6 +23,7 @@
#include <mach/mfp-pxa168.h>
#include <mach/pxa168.h>
#include <mach/gpio.h>
+#include <video/pxa168fb.h>

#include "common.h"

@@ -66,6 +67,36 @@ static unsigned long common_pin_config[] __initdata = {
GPIO115_I2S_BCLK,
GPIO116_I2S_RXD,
GPIO117_I2S_TXD,
+
+ /* LCD */
+ GPIO56_LCD_FCLK_RD,
+ GPIO57_LCD_LCLK_A0,
+ GPIO58_LCD_PCLK_WR,
+ GPIO59_LCD_DENA_BIAS,
+ GPIO60_LCD_DD0,
+ GPIO61_LCD_DD1,
+ GPIO62_LCD_DD2,
+ GPIO63_LCD_DD3,
+ GPIO64_LCD_DD4,
+ GPIO65_LCD_DD5,
+ GPIO66_LCD_DD6,
+ GPIO67_LCD_DD7,
+ GPIO68_LCD_DD8,
+ GPIO69_LCD_DD9,
+ GPIO70_LCD_DD10,
+ GPIO71_LCD_DD11,
+ GPIO72_LCD_DD12,
+ GPIO73_LCD_DD13,
+ GPIO74_LCD_DD14,
+ GPIO75_LCD_DD15,
+ GPIO76_LCD_DD16,
+ GPIO77_LCD_DD17,
+ GPIO78_LCD_DD18,
+ GPIO79_LCD_DD19,
+ GPIO80_LCD_DD20,
+ GPIO81_LCD_DD21,
+ GPIO82_LCD_DD22,
+ GPIO83_LCD_DD23,
};

static struct smc91x_platdata smc91x_info = {
@@ -134,6 +165,34 @@ static struct i2c_board_info aspenite_i2c_info[] __initdata = {
{ I2C_BOARD_INFO("wm8753", 0x1b), },
};

+static struct fb_videomode video_modes[] = {
+ [0] = {
+ .pixclock = 30120,
+ .refresh = 60,
+ .xres = 800,
+ .yres = 480,
+ .hsync_len = 1,
+ .left_margin = 215,
+ .right_margin = 40,
+ .vsync_len = 1,
+ .upper_margin = 34,
+ .lower_margin = 10,
+ .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
+ },
+};
+
+struct pxa168fb_mach_info aspenite_lcd_info = {
+ .id = "Graphic Frame",
+ .modes = video_modes,
+ .num_modes = ARRAY_SIZE(video_modes),
+ .pix_fmt = PIX_FMT_RGB565,
+ .io_pin_allocation_mode = PIN_MODE_DUMB_24,
+ .dumb_mode = DUMB_MODE_RGB888,
+ .active = 1,
+ .panel_rbswap = 0,
+ .invert_pixclock = 0,
+};
+
static void __init common_init(void)
{
mfp_config(ARRAY_AND_SIZE(common_pin_config));
@@ -143,6 +202,7 @@ static void __init common_init(void)
pxa168_add_twsi(1, NULL, ARRAY_AND_SIZE(aspenite_i2c_info));
pxa168_add_ssp(1);
pxa168_add_nand(&aspenite_nand_info);
+ pxa168_add_fb(&aspenite_lcd_info);

/* off-chip devices */
platform_device_register(&smc91x_device);
--
1.7.0.4

2010-08-26 04:52:41

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH v3 0/2] added initial support for TPO TD043MTEA1 LCD display on Aspenite

Dne Čt 26. srpna 2010 05:51:53 Mark F. Brown napsal(a):
> Mark F. Brown (2):
> pxa168: added framebuffer support code.
> pxa168: added initial support for TPO TD043MTEA1 LCD display on
> Aspenite
>
> arch/arm/mach-mmp/aspenite.c | 60
> +++++++++++++++++++++++++++++++ arch/arm/mach-mmp/include/mach/pxa168.h |
> 8 ++++
> arch/arm/mach-mmp/pxa168.c | 3 ++
> 3 files changed, 71 insertions(+), 0 deletions(-)

It looks good to me, but the hardware specific goo is up to Haojian/Eric to
check.

Cheers

2010-08-26 09:29:50

by Eric Miao

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] pxa168: added initial support for TPO TD043MTEA1 LCD display on Aspenite

On Thu, Aug 26, 2010 at 11:51 AM, Mark F. Brown <[email protected]> wrote:
> Signed-off-by: Mark F. Brown <[email protected]>

Applied to 'devel'.

> ---
>  arch/arm/mach-mmp/aspenite.c |   60 ++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 60 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c
> index 0629394..9e1bd6b 100644
> --- a/arch/arm/mach-mmp/aspenite.c
> +++ b/arch/arm/mach-mmp/aspenite.c
> @@ -23,6 +23,7 @@
>  #include <mach/mfp-pxa168.h>
>  #include <mach/pxa168.h>
>  #include <mach/gpio.h>
> +#include <video/pxa168fb.h>
>
>  #include "common.h"
>
> @@ -66,6 +67,36 @@ static unsigned long common_pin_config[] __initdata = {
>        GPIO115_I2S_BCLK,
>        GPIO116_I2S_RXD,
>        GPIO117_I2S_TXD,
> +
> +       /* LCD */
> +       GPIO56_LCD_FCLK_RD,
> +       GPIO57_LCD_LCLK_A0,
> +       GPIO58_LCD_PCLK_WR,
> +       GPIO59_LCD_DENA_BIAS,
> +       GPIO60_LCD_DD0,
> +       GPIO61_LCD_DD1,
> +       GPIO62_LCD_DD2,
> +       GPIO63_LCD_DD3,
> +       GPIO64_LCD_DD4,
> +       GPIO65_LCD_DD5,
> +       GPIO66_LCD_DD6,
> +       GPIO67_LCD_DD7,
> +       GPIO68_LCD_DD8,
> +       GPIO69_LCD_DD9,
> +       GPIO70_LCD_DD10,
> +       GPIO71_LCD_DD11,
> +       GPIO72_LCD_DD12,
> +       GPIO73_LCD_DD13,
> +       GPIO74_LCD_DD14,
> +       GPIO75_LCD_DD15,
> +       GPIO76_LCD_DD16,
> +       GPIO77_LCD_DD17,
> +       GPIO78_LCD_DD18,
> +       GPIO79_LCD_DD19,
> +       GPIO80_LCD_DD20,
> +       GPIO81_LCD_DD21,
> +       GPIO82_LCD_DD22,
> +       GPIO83_LCD_DD23,
>  };
>
>  static struct smc91x_platdata smc91x_info = {
> @@ -134,6 +165,34 @@ static struct i2c_board_info aspenite_i2c_info[] __initdata = {
>        { I2C_BOARD_INFO("wm8753", 0x1b), },
>  };
>
> +static struct fb_videomode video_modes[] = {
> +       [0] = {
> +               .pixclock       = 30120,
> +               .refresh        = 60,
> +               .xres           = 800,
> +               .yres           = 480,
> +               .hsync_len      = 1,
> +               .left_margin    = 215,
> +               .right_margin   = 40,
> +               .vsync_len      = 1,
> +               .upper_margin   = 34,
> +               .lower_margin   = 10,
> +               .sync           = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
> +       },
> +};
> +
> +struct pxa168fb_mach_info aspenite_lcd_info = {
> +       .id                     = "Graphic Frame",
> +       .modes                  = video_modes,
> +       .num_modes              = ARRAY_SIZE(video_modes),
> +       .pix_fmt                = PIX_FMT_RGB565,
> +       .io_pin_allocation_mode = PIN_MODE_DUMB_24,
> +       .dumb_mode              = DUMB_MODE_RGB888,
> +       .active                 = 1,
> +       .panel_rbswap           = 0,
> +       .invert_pixclock        = 0,
> +};
> +
>  static void __init common_init(void)
>  {
>        mfp_config(ARRAY_AND_SIZE(common_pin_config));
> @@ -143,6 +202,7 @@ static void __init common_init(void)
>        pxa168_add_twsi(1, NULL, ARRAY_AND_SIZE(aspenite_i2c_info));
>        pxa168_add_ssp(1);
>        pxa168_add_nand(&aspenite_nand_info);
> +       pxa168_add_fb(&aspenite_lcd_info);
>
>        /* off-chip devices */
>        platform_device_register(&smc91x_device);
> --
> 1.7.0.4
>
>
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?

2010-08-26 09:34:38

by Eric Miao

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] pxa168: added framebuffer support code.

On Thu, Aug 26, 2010 at 11:51 AM, Mark F. Brown <[email protected]> wrote:
> Signed-off-by: Mark F. Brown <[email protected]>

Applied to 'devel'.

> ---
>  arch/arm/mach-mmp/include/mach/pxa168.h |    8 ++++++++
>  arch/arm/mach-mmp/pxa168.c              |    3 +++
>  2 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-mmp/include/mach/pxa168.h b/arch/arm/mach-mmp/include/mach/pxa168.h
> index 27e1bc7..220738f 100644
> --- a/arch/arm/mach-mmp/include/mach/pxa168.h
> +++ b/arch/arm/mach-mmp/include/mach/pxa168.h
> @@ -10,6 +10,7 @@ extern void __init pxa168_init_irq(void);
>  #include <mach/devices.h>
>  #include <plat/i2c.h>
>  #include <plat/pxa3xx_nand.h>
> +#include <video/pxa168fb.h>
>
>  extern struct pxa_device_desc pxa168_device_uart1;
>  extern struct pxa_device_desc pxa168_device_uart2;
> @@ -25,6 +26,7 @@ extern struct pxa_device_desc pxa168_device_ssp3;
>  extern struct pxa_device_desc pxa168_device_ssp4;
>  extern struct pxa_device_desc pxa168_device_ssp5;
>  extern struct pxa_device_desc pxa168_device_nand;
> +extern struct pxa_device_desc pxa168_device_fb;
>
>  static inline int pxa168_add_uart(int id)
>  {
> @@ -97,4 +99,10 @@ static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
>  {
>        return pxa_register_device(&pxa168_device_nand, info, sizeof(*info));
>  }
> +
> +static inline int pxa168_add_fb(struct pxa168fb_mach_info *mi)
> +{
> +       return pxa_register_device(&pxa168_device_fb, mi, sizeof(*mi));
> +}
> +
>  #endif /* __ASM_MACH_PXA168_H */
> diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
> index 652ae66..eaebf66 100644
> --- a/arch/arm/mach-mmp/pxa168.c
> +++ b/arch/arm/mach-mmp/pxa168.c
> @@ -79,6 +79,7 @@ static APBC_CLK(ssp4, PXA168_SSP4, 4, 0);
>  static APBC_CLK(ssp5, PXA168_SSP5, 4, 0);
>
>  static APMU_CLK(nand, NAND, 0x01db, 208000000);
> +static APMU_CLK(lcd, LCD, 0x7f, 312000000);
>
>  /* device and clock bindings */
>  static struct clk_lookup pxa168_clkregs[] = {
> @@ -96,6 +97,7 @@ static struct clk_lookup pxa168_clkregs[] = {
>        INIT_CLKREG(&clk_ssp4, "pxa168-ssp.3", NULL),
>        INIT_CLKREG(&clk_ssp5, "pxa168-ssp.4", NULL),
>        INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
> +       INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL),
>  };
>
>  static int __init pxa168_init(void)
> @@ -147,3 +149,4 @@ PXA168_DEVICE(ssp2, "pxa168-ssp", 1, SSP2, 0xd401c000, 0x40, 54, 55);
>  PXA168_DEVICE(ssp3, "pxa168-ssp", 2, SSP3, 0xd401f000, 0x40, 56, 57);
>  PXA168_DEVICE(ssp4, "pxa168-ssp", 3, SSP4, 0xd4020000, 0x40, 58, 59);
>  PXA168_DEVICE(ssp5, "pxa168-ssp", 4, SSP5, 0xd4021000, 0x40, 60, 61);
> +PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8);
> --
> 1.7.0.4
>
>