Commit 2d7cd398 authored by Vladimir Barinov's avatar Vladimir Barinov Committed by Simon Horman

sh-pfc: r8a7778: add VIN pin groups

Add VIN DATA[0:8]/CLK/HSYNC/VSYNC pin groups to R8A7778 PFC driver.
While at it, add SH_PFC_MUX8() macro for 8-bit data busses.
Signed-off-by: default avatarVladimir Barinov <vladimir.barinov@cogentembedded.com>
[Sergei: updated the copyrights, added SH_PFC_MUX8() macro for 8-bit data bus,
made use of SH_PFC_*() macros to define the pin groups.]
Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent a27c5cd1
......@@ -3,6 +3,7 @@
*
* Copyright (C) 2013 Renesas Solutions Corp.
* Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
* Copyright (C) 2013 Cogent Embedded, Inc.
*
* based on
* Copyright (C) 2011 Renesas Solutions Corp.
......@@ -1316,6 +1317,11 @@ static struct sh_pfc_pin pinmux_pins[] = {
#define SH_PFC_MUX4(name, arg1, arg2, arg3, arg4) \
static const unsigned int name ##_mux[] = { arg1##_MARK, arg2##_MARK, \
arg3##_MARK, arg4##_MARK }
#define SH_PFC_MUX8(name, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \
static const unsigned int name ##_mux[] = { arg1##_MARK, arg2##_MARK, \
arg3##_MARK, arg4##_MARK, \
arg5##_MARK, arg6##_MARK, \
arg7##_MARK, arg8##_MARK, }
/* - SCIF macro ------------------------------------------------------------- */
#define SCIF_PFC_PIN(name, args...) SH_PFC_PINS(name, args)
......@@ -1513,6 +1519,40 @@ SH_PFC_MUX1(usb1, PENC1);
SH_PFC_PINS(usb1_ovc, RCAR_GP_PIN(0, 4));
SH_PFC_MUX1(usb1_ovc, USB_OVC1);
/* - VIN macros ------------------------------------------------------------- */
#define VIN_PFC_PINS(name, args...) SH_PFC_PINS(name, args)
#define VIN_PFC_DAT8(name, d0, d1, d2, d3, d4, d5, d6, d7) \
SH_PFC_MUX8(name, d0, d1, d2, d3, d4, d5, d6, d7)
#define VIN_PFC_CLK(name, clk) SH_PFC_MUX1(name, clk)
#define VIN_PFC_SYNC(name, hsync, vsync) SH_PFC_MUX2(name, hsync, vsync)
/* - VIN0 ------------------------------------------------------------------- */
VIN_PFC_PINS(vin0_data8, RCAR_GP_PIN(3, 29), RCAR_GP_PIN(3, 30),
RCAR_GP_PIN(3, 31), RCAR_GP_PIN(4, 0),
RCAR_GP_PIN(4, 1), RCAR_GP_PIN(4, 2),
RCAR_GP_PIN(4, 3), RCAR_GP_PIN(4, 4));
VIN_PFC_DAT8(vin0_data8, VI0_DATA0_VI0_B0, VI0_DATA1_VI0_B1,
VI0_DATA2_VI0_B2, VI0_DATA3_VI0_B3,
VI0_DATA4_VI0_B4, VI0_DATA5_VI0_B5,
VI0_DATA6_VI0_G0, VI0_DATA7_VI0_G1);
VIN_PFC_PINS(vin0_clk, RCAR_GP_PIN(3, 24));
VIN_PFC_CLK(vin0_clk, VI0_CLK);
VIN_PFC_PINS(vin0_sync, RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28));
VIN_PFC_SYNC(vin0_sync, VI0_HSYNC, VI0_VSYNC);
/* - VIN1 ------------------------------------------------------------------- */
VIN_PFC_PINS(vin1_data8, RCAR_GP_PIN(3, 25), RCAR_GP_PIN(3, 26),
RCAR_GP_PIN(3, 27), RCAR_GP_PIN(3, 28),
RCAR_GP_PIN(4, 5), RCAR_GP_PIN(4, 6),
RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 8));
VIN_PFC_DAT8(vin1_data8, VI1_DATA0, VI1_DATA1,
VI1_DATA2, VI1_DATA3,
VI1_DATA4, VI1_DATA5,
VI1_DATA6, VI1_DATA7);
VIN_PFC_PINS(vin1_clk, RCAR_GP_PIN(4, 9));
VIN_PFC_CLK(vin1_clk, VI1_CLK);
VIN_PFC_PINS(vin1_sync, RCAR_GP_PIN(3, 21), RCAR_GP_PIN(3, 22));
VIN_PFC_SYNC(vin1_sync, VI1_HSYNC, VI1_VSYNC);
static const struct sh_pfc_pin_group pinmux_groups[] = {
SH_PFC_PIN_GROUP(hscif0_data_a),
SH_PFC_PIN_GROUP(hscif0_data_b),
......@@ -1586,6 +1626,12 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
SH_PFC_PIN_GROUP(usb0_ovc),
SH_PFC_PIN_GROUP(usb1),
SH_PFC_PIN_GROUP(usb1_ovc),
SH_PFC_PIN_GROUP(vin0_data8),
SH_PFC_PIN_GROUP(vin0_clk),
SH_PFC_PIN_GROUP(vin0_sync),
SH_PFC_PIN_GROUP(vin1_data8),
SH_PFC_PIN_GROUP(vin1_clk),
SH_PFC_PIN_GROUP(vin1_sync),
};
static const char * const hscif0_groups[] = {
......@@ -1703,6 +1749,18 @@ static const char * const usb1_groups[] = {
"usb1_ovc",
};
static const char * const vin0_groups[] = {
"vin0_data8",
"vin0_clk",
"vin0_sync",
};
static const char * const vin1_groups[] = {
"vin1_data8",
"vin1_clk",
"vin1_sync",
};
static const struct sh_pfc_function pinmux_functions[] = {
SH_PFC_FUNCTION(hscif0),
SH_PFC_FUNCTION(hscif1),
......@@ -1718,6 +1776,8 @@ static const struct sh_pfc_function pinmux_functions[] = {
SH_PFC_FUNCTION(sdhi2),
SH_PFC_FUNCTION(usb0),
SH_PFC_FUNCTION(usb1),
SH_PFC_FUNCTION(vin0),
SH_PFC_FUNCTION(vin1),
};
static struct pinmux_cfg_reg pinmux_config_regs[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment