On Thu, Mar 14, 2013 at 03:35:46PM +0100, Laurent Pinchart wrote:
> Only the DU0 VGA output is currently supported. Support for the DU0 LVDS
> and DU1 LVDS outputs will require information about the panels that will
> be connected to those outputs.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
> ---
>  arch/arm/configs/marzen_defconfig     |  2 ++
>  arch/arm/mach-shmobile/board-marzen.c | 65 
> +++++++++++++++++++++++++++++++++++
>  2 files changed, 67 insertions(+)
> 
> diff --git a/arch/arm/configs/marzen_defconfig 
> b/arch/arm/configs/marzen_defconfig
> index afb17d6..76f9402 100644
> --- a/arch/arm/configs/marzen_defconfig
> +++ b/arch/arm/configs/marzen_defconfig
> @@ -79,6 +79,8 @@ CONFIG_GPIO_SYSFS=y
>  CONFIG_THERMAL=y
>  CONFIG_RCAR_THERMAL=y
>  CONFIG_SSB=y
> +CONFIG_DRM=y
> +CONFIG_DRM_RCAR_DU=y
>  CONFIG_USB=y
>  CONFIG_USB_RCAR_PHY=y
>  CONFIG_MMC=y
> diff --git a/arch/arm/mach-shmobile/board-marzen.c 
> b/arch/arm/mach-shmobile/board-marzen.c
> index cdcb799..0020506 100644
> --- a/arch/arm/mach-shmobile/board-marzen.c
> +++ b/arch/arm/mach-shmobile/board-marzen.c
> @@ -38,6 +38,7 @@
>  #include <linux/usb/ehci_pdriver.h>
>  #include <linux/usb/ohci_pdriver.h>
>  #include <linux/pm_runtime.h>
> +#include <linux/platform_data/rcar-du.h>
>  #include <mach/hardware.h>
>  #include <mach/r8a7779.h>
>  #include <mach/common.h>
> @@ -147,6 +148,38 @@ static struct platform_device hspi_device = {
>       .num_resources  = ARRAY_SIZE(hspi_resources),
>  };
>  
> +/* DU */
> +static struct resource rcar_du_resources[] = {
> +     [0] = {
> +             .name   = "Display Unit",
> +             .start  = 0xfff80000,
> +             .end    = 0xfffb1007,
> +             .flags  = IORESOURCE_MEM,
> +     },
> +     [1] = {
> +             .start  = gic_spi(31),
> +             .flags  = IORESOURCE_IRQ,
> +     },
> +};
> +
> +static struct rcar_du_platform_data rcar_du_pdata = {
> +     .encoders = {
> +             [0] = {
> +                     .encoder = RCAR_DU_ENCODER_VGA,
> +             },
> +     },
> +};
> +
> +static struct platform_device rcar_du_device = {
> +     .name           = "rcar-du",
> +     .num_resources  = ARRAY_SIZE(rcar_du_resources),
> +     .resource       = rcar_du_resources,
> +     .dev    = {
> +             .platform_data = &rcar_du_pdata,
> +             .coherent_dma_mask = ~0,
> +     },
> +};
> +
>  /* USB PHY */
>  static struct resource usb_phy_resources[] = {
>       [0] = {
> @@ -173,6 +206,7 @@ static struct platform_device *marzen_devices[] 
> __initdata = {
>       &thermal_device,
>       &hspi_device,
>       &usb_phy_device,
> +     &rcar_du_device,
>  };
>  
>  /* USB */
> @@ -363,6 +397,37 @@ static void __init marzen_init(void)
>       gpio_request(GPIO_FN_HSPI_TX0,  NULL);
>       gpio_request(GPIO_FN_HSPI_RX0,  NULL);
>  
> +     /* Display Unit 0 (CN10: ARGB0) */
> +     gpio_request(GPIO_FN_DU0_DR7, NULL);
> +     gpio_request(GPIO_FN_DU0_DR6, NULL);
> +     gpio_request(GPIO_FN_DU0_DR5, NULL);
> +     gpio_request(GPIO_FN_DU0_DR4, NULL);
> +     gpio_request(GPIO_FN_DU0_DR3, NULL);
> +     gpio_request(GPIO_FN_DU0_DR2, NULL);
> +     gpio_request(GPIO_FN_DU0_DR1, NULL);
> +     gpio_request(GPIO_FN_DU0_DR0, NULL);
> +     gpio_request(GPIO_FN_DU0_DG7, NULL);
> +     gpio_request(GPIO_FN_DU0_DG6, NULL);
> +     gpio_request(GPIO_FN_DU0_DG5, NULL);
> +     gpio_request(GPIO_FN_DU0_DG4, NULL);
> +     gpio_request(GPIO_FN_DU0_DG3, NULL);
> +     gpio_request(GPIO_FN_DU0_DG2, NULL);
> +     gpio_request(GPIO_FN_DU0_DG1, NULL);
> +     gpio_request(GPIO_FN_DU0_DG0, NULL);
> +     gpio_request(GPIO_FN_DU0_DB7, NULL);
> +     gpio_request(GPIO_FN_DU0_DB6, NULL);
> +     gpio_request(GPIO_FN_DU0_DB5, NULL);
> +     gpio_request(GPIO_FN_DU0_DB4, NULL);
> +     gpio_request(GPIO_FN_DU0_DB3, NULL);
> +     gpio_request(GPIO_FN_DU0_DB2, NULL);
> +     gpio_request(GPIO_FN_DU0_DB1, NULL);
> +     gpio_request(GPIO_FN_DU0_DB0, NULL);
> +     gpio_request(GPIO_FN_DU0_EXVSYNC_DU0_VSYNC, NULL);
> +     gpio_request(GPIO_FN_DU0_EXHSYNC_DU0_HSYNC, NULL);
> +     gpio_request(GPIO_FN_DU0_DOTCLKOUT0, NULL);
> +     gpio_request(GPIO_FN_DU0_DOTCLKOUT1, NULL);
> +     gpio_request(GPIO_FN_DU0_DISP, NULL);
> +
>       /* USB (CN21) */
>       gpio_request(GPIO_FN_USB_OVC0, NULL);
>       gpio_request(GPIO_FN_USB_OVC1, NULL);

Hi Laurent,

do you have a version of this patch that will work in conjunction with
recent pinctrl changes and adds an entry/entries to marzen_pinctrl_map[]
instead of calling gpio_request?

Reply via email to