[PATCH v2 3/3] ARM: shmobile: marzen: Add Display Unit support
Simon Horman
horms at verge.net.au
Tue Mar 26 21:01:43 PDT 2013
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?
More information about the dri-devel
mailing list