[U-Boot] [PATCH 1/2] Enable PXAFB for PXA27X and PXA3XX

Marek Vasut marek.vasut at gmail.com
Wed Apr 14 21:44:04 CEST 2010


Dne Pá 26. března 2010 06:57:50 Marek Vasut napsal(a):
> ---
>  common/lcd.c    |   12 ++++++------
>  cpu/pxa/pxafb.c |    9 ++++++++-
>  include/lcd.h   |    2 +-
>  3 files changed, 15 insertions(+), 8 deletions(-)
> 
> diff --git a/common/lcd.c b/common/lcd.c
> index 64fb1c6..c2e350e 100644
> --- a/common/lcd.c
> +++ b/common/lcd.c
> @@ -41,7 +41,7 @@
>  #include <lcd.h>
>  #include <watchdog.h>
> 
> -#if defined(CONFIG_PXA250)
> +#if defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS #include <asm/byteorder.h>
>  #endif
> 
> @@ -503,7 +503,7 @@ void bitmap_plot (int x, int y)
>  	uchar *bmap;
>  	uchar *fb;
>  	ushort *fb16;
> -#if defined(CONFIG_PXA250)
> +#if defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS struct pxafb_info *fbi = &panel_info.pxa;
>  #elif defined(CONFIG_MPC823)
>  	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
> @@ -519,7 +519,7 @@ void bitmap_plot (int x, int y)
> 
>  	if (NBITS(panel_info.vl_bpix) < 12) {
>  		/* Leave room for default color map */
> -#if defined(CONFIG_PXA250)
> +#if defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS cmap = (ushort *)fbi->palette;
>  #elif defined(CONFIG_MPC823)
>  		cmap = (ushort *)&(cp-
>lcd_cmap[BMP_LOGO_OFFSET*sizeof(ushort)]);
> @@ -615,7 +615,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
>  	unsigned long pwidth = panel_info.vl_col;
>  	unsigned colors, bpix, bmp_bpix;
>  	unsigned long compression;
> -#if defined(CONFIG_PXA250)
> +#if defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS struct pxafb_info *fbi = &panel_info.pxa;
>  #elif defined(CONFIG_MPC823)
>  	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
> @@ -656,7 +656,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
>  #if !defined(CONFIG_MCC200)
>  	/* MCC200 LCD doesn't need CMAP, supports 1bpp b&w only */
>  	if (bmp_bpix == 8) {
> -#if defined(CONFIG_PXA250)
> +#if defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS cmap = (ushort *)fbi->palette;
>  #elif defined(CONFIG_MPC823)
>  		cmap = (ushort *)&(cp->lcd_cmap[255*sizeof(ushort)]);
> @@ -745,7 +745,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
>  			WATCHDOG_RESET();
>  			for (j = 0; j < width; j++) {
>  				if (bpix != 16) {
> -#if defined(CONFIG_PXA250) || defined(CONFIG_ATMEL_LCD)
> +#if defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS || defined(CONFIG_ATMEL_LCD) *(fb++) = *(bmap++);
>  #elif defined(CONFIG_MPC823) || defined(CONFIG_MCC200)
>  					*(fb++) = 255 - *(bmap++);
> diff --git a/cpu/pxa/pxafb.c b/cpu/pxa/pxafb.c
> index d56c5f0..1cb78f0 100644
> --- a/cpu/pxa/pxafb.c
> +++ b/cpu/pxa/pxafb.c
> @@ -292,7 +292,9 @@ static int pxafb_init_mem (void *lcdbase, vidinfo_t
> *vid)
> 
>  	return 0;
>  }
> -
> +#ifdef	CONFIG_CPU_MONAHANS
> +static inline void pxafb_setup_gpio (vidinfo_t *vid) {}
> +#else
>  static void pxafb_setup_gpio (vidinfo_t *vid)
>  {
>  	u_long lccr0;
> @@ -349,6 +351,7 @@ static void pxafb_setup_gpio (vidinfo_t *vid)
>  		printf("pxafb_setup_gpio: unable to determine bits per 
pixel\n");
>  	}
>  }
> +#endif
> 
>  static void pxafb_enable_controller (vidinfo_t *vid)
>  {
> @@ -363,7 +366,11 @@ static void pxafb_enable_controller (vidinfo_t *vid)
>  	FDADR1 = vid->pxa.fdadr1;
>  	LCCR0 |= LCCR0_ENB;
> 
> +#ifdef	CONFIG_CPU_MONAHANS
> +	CKENA |= CKENA_1_LCD;
> +#else
>  	CKEN |= CKEN16_LCD;
> +#endif
> 
>  	debug("FDADR0 = 0x%08x\n", (unsigned int)FDADR0);
>  	debug("FDADR1 = 0x%08x\n", (unsigned int)FDADR1);
> diff --git a/include/lcd.h b/include/lcd.h
> index 1f85daa..cd9d49d 100644
> --- a/include/lcd.h
> +++ b/include/lcd.h
> @@ -87,7 +87,7 @@ typedef struct vidinfo {
>  	u_char	vl_wbf;		/* Wait between frames */
>  } vidinfo_t;
> 
> -#elif defined CONFIG_PXA250
> +#elif defined CONFIG_PXA250 || defined CONFIG_PXA27X || defined
> CONFIG_CPU_MONAHANS /*
>   * PXA LCD DMA descriptor
>   */

Hi, any updates?


More information about the U-Boot mailing list