[PATCH] ep93xx: add framebuffer support to edb93xx boards

Ryan Mallon ryan at bluewatersys.com
Wed Jan 26 18:51:25 EST 2011


On 01/08/2011 11:38 AM, H Hartley Sweeten wrote:
> The ep9307, ep9312, and ep9315 variants of the ep93xx processor include the
> raster engine needed for framebuffer support.
> 
> This allows the EDB93xx boards with those processors to use the framebuffer
> driver.
> 
> Tested on an EDB9307A with the following kernel parameters:
> 	video=640x480-16 at 60
> 	video=1024x768-16 at 60
> 
> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
> 
> ---
> 
> diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c
> index 4b04316..49e3b3d 100644
> --- a/arch/arm/mach-ep93xx/edb93xx.c
> +++ b/arch/arm/mach-ep93xx/edb93xx.c
> @@ -32,6 +32,7 @@
>  #include <linux/i2c-gpio.h>
>  
>  #include <mach/hardware.h>
> +#include <mach/fb.h>
>  
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -111,6 +112,41 @@ static void __init edb93xx_register_pwm(void)
>  }
>  
>  
> +/*************************************************************************
> + * EDB93xx framebuffer
> + *************************************************************************/
> +static struct ep93xxfb_mach_info __initdata edb93xxfb_info = {
> +	.num_modes	= EP93XXFB_USE_MODEDB,
> +	.bpp		= 16,
> +	.flags		= 0,
> +};
> +
> +static int __init edb93xx_has_fb(void)
> +{
> +	if (machine_is_edb9307() || machine_is_edb9307a() ||
> +	    machine_is_edb9312() || machine_is_edb9315() ||
> +	    machine_is_edb9315a()) {

return (machine_is_edb9307() || machine_is_edb9307a() ...

> +		/* These all have an ep93xx with video capability */
> +		return 1;
> +	} else {
> +		/* The ep9301 and ep9302 do not have a video peripheral */
> +		return 0;
> +	}
> +}
> +
> +static void __init edb93xx_register_fb(void)
> +{
> +	if (!edb93xx_has_fb())
> +		return;
> +
> +	if (machine_is_edb9307a() || machine_is_edb9315a())
> +		edb93xxfb_info.flags |= EP93XXFB_USE_SDCSN0;
> +	else
> +		edb93xxfb_info.flags |= EP93XXFB_USE_SDCSN3;
> +
> +	ep93xx_register_fb(&edb93xxfb_info);
> +}
> +
>  static void __init edb93xx_init_machine(void)
>  {
>  	ep93xx_init_devices();
> @@ -118,6 +154,7 @@ static void __init edb93xx_init_machine(void)
>  	ep93xx_register_eth(&edb93xx_eth_data, 1);
>  	edb93xx_register_i2c();
>  	edb93xx_register_pwm();
> +	edb93xx_register_fb();
>  }

Otherwise looks fine.

Acked-by: Ryan Mallon <ryan at bluewatersys.com>

-- 
Bluewater Systems Ltd - ARM Technology Solution Centre

Ryan Mallon         		5 Amuri Park, 404 Barbadoes St
ryan at bluewatersys.com         	PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com	New Zealand
Phone: +64 3 3779127		Freecall: Australia 1800 148 751
Fax:   +64 3 3779135			  USA 1800 261 2934



More information about the linux-arm-kernel mailing list