sh-pfc: r8a73a4: Add SCIF pin groups and functions
Subsystems (2)
PATCH 5/13 sh-pfc: r8a73a4: Add SCIF pin groups and functions
From: Magnus Damm <[email protected]>
Add PINCTRL support for r8a73a4 SCIF portsSCIFA0->SCIFA1 and SCIFB0->SCIFB3.
Signed-off-by Magnus Damm <[email protected]>
---
drivers/pinctrl/sh-pfc/pfc-r8a73a4.c | 287 ++++++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+)
drivers/pinctrl/sh-pfc/pfc-r8a73a4.c +287 -0
@@ -1436,6 +1436,286 @@ static const struct pinmux_range pinmux_ {.begin = 320, .end = 329,}, }; +/* - SCIFA0 ----------------------------------------------------------------- */ +static const unsigned int scifa0_data_pins[] = { +/* SCIFA0_RXD, SCIFA0_TXD */ +117 ,116 , +}; +static const unsigned int scifa0_data_mux[] = { +SCIFA0_RXD_MARK ,SCIFA0_TXD_MARK , +}; +static const unsigned int scifa0_clk_pins[] = { +/* SCIFA0_SCK */ +34 , +}; +static const unsigned int scifa0_clk_mux[] = { +SCIFA0_SCK_MARK , +}; +static const unsigned int scifa0_ctrl_pins[] = { +/* SCIFA0_RTS, SCIFA0_CTS */ +32 ,33 , +}; +static const unsigned int scifa0_ctrl_mux[] = { +SCIFA0_RTS_MARK ,SCIFA0_CTS_MARK , +}; +/* - SCIFA1 ----------------------------------------------------------------- */ +static const unsigned int scifa1_data_pins[] = { +/* SCIFA1_RXD, SCIFA1_TXD */ +119 ,118 , +}; +static const unsigned int scifa1_data_mux[] = { +SCIFA1_RXD_MARK ,SCIFA1_TXD_MARK , +}; +static const unsigned int scifa1_clk_pins[] = { +/* SCIFA1_SCK */ +37 , +}; +static const unsigned int scifa1_clk_mux[] = { +SCIFA1_SCK_MARK , +}; +static const unsigned int scifa1_ctrl_pins[] = { +/* SCIFA1_RTS, SCIFA1_CTS */ +35 ,36 , +}; +static const unsigned int scifa1_ctrl_mux[] = { +SCIFA1_RTS_MARK ,SCIFA1_CTS_MARK , +}; +/* - SCIFB0 ----------------------------------------------------------------- */ +static const unsigned int scifb0_data_pins[] = { +/* SCIFB0_RXD, SCIFB0_TXD */ +123 ,122 , +}; +static const unsigned int scifb0_data_mux[] = { +SCIFB0_RXD_MARK ,SCIFB0_TXD_MARK , +}; +static const unsigned int scifb0_clk_pins[] = { +/* SCIFB0_SCK */ +40 , +}; +static const unsigned int scifb0_clk_mux[] = { +SCIFB0_SCK_MARK , +}; +static const unsigned int scifb0_ctrl_pins[] = { +/* SCIFB0_RTS, SCIFB0_CTS */ +38 ,39 , +}; +static const unsigned int scifb0_ctrl_mux[] = { +SCIFB0_RTS_MARK ,SCIFB0_CTS_MARK , +}; +/* - SCIFB1 ----------------------------------------------------------------- */ +static const unsigned int scifb1_data_pins[] = { +/* SCIFB1_RXD, SCIFB1_TXD */ +27 ,26 , +}; +static const unsigned int scifb1_data_mux[] = { +SCIFB1_RXD_27_MARK ,SCIFB1_TXD_26_MARK , +}; +static const unsigned int scifb1_clk_pins[] = { +/* SCIFB1_SCK */ +28 , +}; +static const unsigned int scifb1_clk_mux[] = { +SCIFB1_SCK_28_MARK , +}; +static const unsigned int scifb1_ctrl_pins[] = { +/* SCIFB1_RTS, SCIFB1_CTS */ +24 ,25 , +}; +static const unsigned int scifb1_ctrl_mux[] = { +SCIFB1_RTS_24_MARK ,SCIFB1_CTS_25_MARK , +}; +static const unsigned int scifb1_data_b_pins[] = { +/* SCIFB1_RXD, SCIFB1_TXD */ +72 ,67 , +}; +static const unsigned int scifb1_data_b_mux[] = { +SCIFB1_RXD_72_MARK ,SCIFB1_TXD_67_MARK , +}; +static const unsigned int scifb1_clk_b_pins[] = { +/* SCIFB1_SCK */ +261 , +}; +static const unsigned int scifb1_clk_b_mux[] = { +SCIFB1_SCK_261_MARK , +}; +static const unsigned int scifb1_ctrl_b_pins[] = { +/* SCIFB1_RTS, SCIFB1_CTS */ +70 ,71 , +}; +static const unsigned int scifb1_ctrl_b_mux[] = { +SCIFB1_RTS_70_MARK ,SCIFB1_CTS_71_MARK , +}; +/* - SCIFB2 ----------------------------------------------------------------- */ +static const unsigned int scifb2_data_pins[] = { +/* SCIFB2_RXD, SCIFB2_TXD */ +69 ,68 , +}; +static const unsigned int scifb2_data_mux[] = { +SCIFB2_RXD_69_MARK ,SCIFB2_TXD_68_MARK , +}; +static const unsigned int scifb2_clk_pins[] = { +/* SCIFB2_SCK */ +262 , +}; +static const unsigned int scifb2_clk_mux[] = { +SCIFB2_SCK_262_MARK , +}; +static const unsigned int scifb2_ctrl_pins[] = { +/* SCIFB2_RTS, SCIFB2_CTS */ +73 ,66 , +}; +static const unsigned int scifb2_ctrl_mux[] = { +SCIFB2_RTS_73_MARK ,SCIFB2_CTS_66_MARK , +}; +static const unsigned int scifb2_data_b_pins[] = { +/* SCIFB2_RXD, SCIFB2_TXD */ +297 ,295 , +}; +static const unsigned int scifb2_data_b_mux[] = { +SCIFB2_RXD_297_MARK ,SCIFB2_TXD_295_MARK , +}; +static const unsigned int scifb2_clk_b_pins[] = { +/* SCIFB2_SCK */ +299 , +}; +static const unsigned int scifb2_clk_b_mux[] = { +SCIFB2_SCK_299_MARK , +}; +static const unsigned int scifb2_ctrl_b_pins[] = { +/* SCIFB2_RTS, SCIFB2_CTS */ +300 ,298 , +}; +static const unsigned int scifb2_ctrl_b_mux[] = { +SCIFB2_RTS_300_MARK ,SCIFB2_CTS_298_MARK , +}; +/* - SCIFB3 ----------------------------------------------------------------- */ +static const unsigned int scifb3_data_pins[] = { +/* SCIFB3_RXD, SCIFB3_TXD */ +22 ,21 , +}; +static const unsigned int scifb3_data_mux[] = { +SCIFB3_RXD_22_MARK ,SCIFB3_TXD_21_MARK , +}; +static const unsigned int scifb3_clk_pins[] = { +/* SCIFB3_SCK */ +23 , +}; +static const unsigned int scifb3_clk_mux[] = { +SCIFB3_SCK_23_MARK , +}; +static const unsigned int scifb3_ctrl_pins[] = { +/* SCIFB3_RTS, SCIFB3_CTS */ +19 ,20 , +}; +static const unsigned int scifb3_ctrl_mux[] = { +SCIFB3_RTS_19_MARK ,SCIFB3_CTS_20_MARK , +}; +static const unsigned int scifb3_data_b_pins[] = { +/* SCIFB3_RXD, SCIFB3_TXD */ +120 ,121 , +}; +static const unsigned int scifb3_data_b_mux[] = { +SCIFB3_RXD_120_MARK ,SCIFB3_TXD_121_MARK , +}; +static const unsigned int scifb3_clk_b_pins[] = { +/* SCIFB3_SCK */ +40 , +}; +static const unsigned int scifb3_clk_b_mux[] = { +SCIFB3_SCK_40_MARK , +}; +static const unsigned int scifb3_ctrl_b_pins[] = { +/* SCIFB3_RTS, SCIFB3_CTS */ +38 ,39 , +}; +static const unsigned int scifb3_ctrl_b_mux[] = { +SCIFB3_RTS_38_MARK ,SCIFB3_CTS_39_MARK , +}; + +static const struct sh_pfc_pin_group pinmux_groups[] = { +SH_PFC_PIN_GROUP (scifa0_data), +SH_PFC_PIN_GROUP (scifa0_clk), +SH_PFC_PIN_GROUP (scifa0_ctrl), +SH_PFC_PIN_GROUP (scifa1_data), +SH_PFC_PIN_GROUP (scifa1_clk), +SH_PFC_PIN_GROUP (scifa1_ctrl), +SH_PFC_PIN_GROUP (scifb0_data), +SH_PFC_PIN_GROUP (scifb0_clk), +SH_PFC_PIN_GROUP (scifb0_ctrl), +SH_PFC_PIN_GROUP (scifb1_data), +SH_PFC_PIN_GROUP (scifb1_clk), +SH_PFC_PIN_GROUP (scifb1_ctrl), +SH_PFC_PIN_GROUP (scifb1_data_b), +SH_PFC_PIN_GROUP (scifb1_clk_b), +SH_PFC_PIN_GROUP (scifb1_ctrl_b), +SH_PFC_PIN_GROUP (scifb2_data), +SH_PFC_PIN_GROUP (scifb2_clk), +SH_PFC_PIN_GROUP (scifb2_ctrl), +SH_PFC_PIN_GROUP (scifb2_data_b), +SH_PFC_PIN_GROUP (scifb2_clk_b), +SH_PFC_PIN_GROUP (scifb2_ctrl_b), +SH_PFC_PIN_GROUP (scifb3_data), +SH_PFC_PIN_GROUP (scifb3_clk), +SH_PFC_PIN_GROUP (scifb3_ctrl), +SH_PFC_PIN_GROUP (scifb3_data_b), +SH_PFC_PIN_GROUP (scifb3_clk_b), +SH_PFC_PIN_GROUP (scifb3_ctrl_b), +}; + +static const char *const scifa0_groups[] = { +"scifa0_data" , +"scifa0_clk" , +"scifa0_ctrl" , +}; + +static const char *const scifa1_groups[] = { +"scifa1_data" , +"scifa1_clk" , +"scifa1_ctrl" , +}; + +static const char *const scifb0_groups[] = { +"scifb0_data" , +"scifb0_clk" , +"scifb0_ctrl" , +}; + +static const char *const scifb1_groups[] = { +"scifb1_data" , +"scifb1_clk" , +"scifb1_ctrl" , +"scifb1_data_b" , +"scifb1_clk_b" , +"scifb1_ctrl_b" , +}; + +static const char *const scifb2_groups[] = { +"scifb2_data" , +"scifb2_clk" , +"scifb2_ctrl" , +"scifb2_data_b" , +"scifb2_clk_b" , +"scifb2_ctrl_b" , +}; + +static const char *const scifb3_groups[] = { +"scifb3_data" , +"scifb3_clk" , +"scifb3_ctrl" , +"scifb3_data_b" , +"scifb3_clk_b" , +"scifb3_ctrl_b" , +}; + +static const struct sh_pfc_function pinmux_functions[] = { +SH_PFC_FUNCTION (scifa0), +SH_PFC_FUNCTION (scifa1), +SH_PFC_FUNCTION (scifb0), +SH_PFC_FUNCTION (scifb1), +SH_PFC_FUNCTION (scifb2), +SH_PFC_FUNCTION (scifb3), +}; +#define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins)static const struct pinmux_func pinmux_func_gpios[] = {
@@ -2887,8 +3167,15 @@ const struct sh_pfc_soc_info r8a73a4_pin .pins = pinmux_pins, .nr_pins = ARRAY_SIZE(pinmux_pins), + .ranges = pinmux_ranges, .nr_ranges = ARRAY_SIZE(pinmux_ranges), + + .groups = pinmux_groups, + .nr_groups = ARRAY_SIZE(pinmux_groups), + .functions = pinmux_functions, + .nr_functions = ARRAY_SIZE(pinmux_functions), + .func_gpios = pinmux_func_gpios, .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),
Hi Magnus,
Thanks for the patch.
Quoted 6 lines · On Tuesday 26 March 2013 22:50:36 Magnus Damm wrote:
From: Magnus Damm <[email protected]>
Add PINCTRL support for r8a73a4 SCIF ports
SCIFA0->SCIFA1andSCIFB0->SCIFB3.Signed-off-by Magnus Damm <[email protected]>
Laurent Pinchart <[email protected]>
Signature · 3 lines
Regards, Laurent Pinchart
Quoted 5 lines · On Tuesday 26 March 2013 16:59:22 Laurent Pinchart wrote:
Hi Magnus,
Thanks for the patch.
On Tuesday 26 March 2013 22:50:36 Magnus Damm wrote:
Quoted 8 lines
Quoted 6 lines
From: Magnus Damm <[email protected]>
Add PINCTRL support for r8a73a4 SCIF ports
SCIFA0->SCIFA1andSCIFB0->SCIFB3.Signed-off-by Magnus Damm <[email protected]>Laurent Pinchart <[email protected]>
I of course meant
Acked-by Laurent Pinchart <[email protected]>
Signature · 3 lines
Regards, Laurent Pinchart
Quoted 6 lines · Magnus Damm
From: Magnus Damm <[email protected]>
Add PINCTRL support for r8a73a4 SCIF ports
SCIFA0->SCIFA1andSCIFB0->SCIFB3.Signed-off-by Magnus Damm <[email protected]>
Acked-by Linus Walleij <[email protected]>
Yours,
Linus Walleij