aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/sh-pfc
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2013-11-28 22:01:27 -0500
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-12-10 10:22:54 -0500
commit1d7b59a07740712b46dd0271abf7dd4013badf49 (patch)
tree6b07e6dd7ef649ec6bb9472f3048c8aa6ef82779 /drivers/pinctrl/sh-pfc
parent3f9c1268159917932fcefe9b3abd5eabb4ed5a29 (diff)
sh-pfc: r8a7790: Add SSI pin support
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Diffstat (limited to 'drivers/pinctrl/sh-pfc')
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7790.c239
1 files changed, 239 insertions, 0 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c
index 72786fc93958..a6903de2eb12 100644
--- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c
@@ -2961,6 +2961,189 @@ static const unsigned int sdhi3_wp_pins[] = {
2961static const unsigned int sdhi3_wp_mux[] = { 2961static const unsigned int sdhi3_wp_mux[] = {
2962 SD3_WP_MARK, 2962 SD3_WP_MARK,
2963}; 2963};
2964/* - SSI -------------------------------------------------------------------- */
2965static const unsigned int ssi0_data_pins[] = {
2966 /* SDATA0 */
2967 RCAR_GP_PIN(4, 5),
2968};
2969static const unsigned int ssi0_data_mux[] = {
2970 SSI_SDATA0_MARK,
2971};
2972static const unsigned int ssi0129_ctrl_pins[] = {
2973 /* SCK, WS */
2974 RCAR_GP_PIN(4, 3), RCAR_GP_PIN(4, 4),
2975};
2976static const unsigned int ssi0129_ctrl_mux[] = {
2977 SSI_SCK0129_MARK, SSI_WS0129_MARK,
2978};
2979static const unsigned int ssi1_data_pins[] = {
2980 /* SDATA1 */
2981 RCAR_GP_PIN(4, 6),
2982};
2983static const unsigned int ssi1_data_mux[] = {
2984 SSI_SDATA1_MARK,
2985};
2986static const unsigned int ssi1_ctrl_pins[] = {
2987 /* SCK, WS */
2988 RCAR_GP_PIN(4, 7), RCAR_GP_PIN(4, 24),
2989};
2990static const unsigned int ssi1_ctrl_mux[] = {
2991 SSI_SCK1_MARK, SSI_WS1_MARK,
2992};
2993static const unsigned int ssi2_data_pins[] = {
2994 /* SDATA2 */
2995 RCAR_GP_PIN(4, 7),
2996};
2997static const unsigned int ssi2_data_mux[] = {
2998 SSI_SDATA2_MARK,
2999};
3000static const unsigned int ssi2_ctrl_pins[] = {
3001 /* SCK, WS */
3002 RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 17),
3003};
3004static const unsigned int ssi2_ctrl_mux[] = {
3005 SSI_SCK2_MARK, SSI_WS2_MARK,
3006};
3007static const unsigned int ssi3_data_pins[] = {
3008 /* SDATA3 */
3009 RCAR_GP_PIN(4, 10),
3010};
3011static const unsigned int ssi3_data_mux[] = {
3012 SSI_SDATA3_MARK
3013};
3014static const unsigned int ssi34_ctrl_pins[] = {
3015 /* SCK, WS */
3016 RCAR_GP_PIN(4, 8), RCAR_GP_PIN(4, 9),
3017};
3018static const unsigned int ssi34_ctrl_mux[] = {
3019 SSI_SCK34_MARK, SSI_WS34_MARK,
3020};
3021static const unsigned int ssi4_data_pins[] = {
3022 /* SDATA4 */
3023 RCAR_GP_PIN(4, 13),
3024};
3025static const unsigned int ssi4_data_mux[] = {
3026 SSI_SDATA4_MARK,
3027};
3028static const unsigned int ssi4_ctrl_pins[] = {
3029 /* SCK, WS */
3030 RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12),
3031};
3032static const unsigned int ssi4_ctrl_mux[] = {
3033 SSI_SCK4_MARK, SSI_WS4_MARK,
3034};
3035static const unsigned int ssi5_pins[] = {
3036 /* SDATA5, SCK, WS */
3037 RCAR_GP_PIN(4, 16), RCAR_GP_PIN(4, 14), RCAR_GP_PIN(4, 15),
3038};
3039static const unsigned int ssi5_mux[] = {
3040 SSI_SDATA5_MARK, SSI_SCK5_MARK, SSI_WS5_MARK,
3041};
3042static const unsigned int ssi5_b_pins[] = {
3043 /* SDATA5, SCK, WS */
3044 RCAR_GP_PIN(0, 26), RCAR_GP_PIN(0, 24), RCAR_GP_PIN(0, 25),
3045};
3046static const unsigned int ssi5_b_mux[] = {
3047 SSI_SDATA5_B_MARK, SSI_SCK5_B_MARK, SSI_WS5_B_MARK
3048};
3049static const unsigned int ssi5_c_pins[] = {
3050 /* SDATA5, SCK, WS */
3051 RCAR_GP_PIN(4, 24), RCAR_GP_PIN(4, 11), RCAR_GP_PIN(4, 12),
3052};
3053static const unsigned int ssi5_c_mux[] = {
3054 SSI_SDATA5_C_MARK, SSI_SCK5_C_MARK, SSI_WS5_C_MARK,
3055};
3056static const unsigned int ssi6_pins[] = {
3057 /* SDATA6, SCK, WS */
3058 RCAR_GP_PIN(4, 19), RCAR_GP_PIN(4, 17), RCAR_GP_PIN(4, 18),
3059};
3060static const unsigned int ssi6_mux[] = {
3061 SSI_SDATA6_MARK, SSI_SCK6_MARK, SSI_WS6_MARK,
3062};
3063static const unsigned int ssi6_b_pins[] = {
3064 /* SDATA6, SCK, WS */
3065 RCAR_GP_PIN(1, 29), RCAR_GP_PIN(1, 25), RCAR_GP_PIN(1, 27),
3066};
3067static const unsigned int ssi6_b_mux[] = {
3068 SSI_SDATA6_B_MARK, SSI_SCK6_B_MARK, SSI_WS6_B_MARK,
3069};
3070static const unsigned int ssi7_data_pins[] = {
3071 /* SDATA7 */
3072 RCAR_GP_PIN(4, 22),
3073};
3074static const unsigned int ssi7_data_mux[] = {
3075 SSI_SDATA7_MARK,
3076};
3077static const unsigned int ssi7_b_data_pins[] = {
3078 /* SDATA7 */
3079 RCAR_GP_PIN(4, 22),
3080};
3081static const unsigned int ssi7_b_data_mux[] = {
3082 SSI_SDATA7_B_MARK,
3083};
3084static const unsigned int ssi7_c_data_pins[] = {
3085 /* SDATA7 */
3086 RCAR_GP_PIN(1, 26),
3087};
3088static const unsigned int ssi7_c_data_mux[] = {
3089 SSI_SDATA7_C_MARK,
3090};
3091static const unsigned int ssi78_ctrl_pins[] = {
3092 /* SCK, WS */
3093 RCAR_GP_PIN(4, 20), RCAR_GP_PIN(4, 21),
3094};
3095static const unsigned int ssi78_ctrl_mux[] = {
3096 SSI_SCK78_MARK, SSI_WS78_MARK,
3097};
3098static const unsigned int ssi78_b_ctrl_pins[] = {
3099 /* SCK, WS */
3100 RCAR_GP_PIN(1, 26), RCAR_GP_PIN(1, 24),
3101};
3102static const unsigned int ssi78_b_ctrl_mux[] = {
3103 SSI_SCK78_B_MARK, SSI_WS78_B_MARK,
3104};
3105static const unsigned int ssi78_c_ctrl_pins[] = {
3106 /* SCK, WS */
3107 RCAR_GP_PIN(1, 24), RCAR_GP_PIN(1, 25),
3108};
3109static const unsigned int ssi78_c_ctrl_mux[] = {
3110 SSI_SCK78_C_MARK, SSI_WS78_C_MARK,
3111};
3112static const unsigned int ssi8_data_pins[] = {
3113 /* SDATA8 */
3114 RCAR_GP_PIN(4, 23),
3115};
3116static const unsigned int ssi8_data_mux[] = {
3117 SSI_SDATA8_MARK,
3118};
3119static const unsigned int ssi8_b_data_pins[] = {
3120 /* SDATA8 */
3121 RCAR_GP_PIN(4, 23),
3122};
3123static const unsigned int ssi8_b_data_mux[] = {
3124 SSI_SDATA8_B_MARK,
3125};
3126static const unsigned int ssi8_c_data_pins[] = {
3127 /* SDATA8 */
3128 RCAR_GP_PIN(1, 27),
3129};
3130static const unsigned int ssi8_c_data_mux[] = {
3131 SSI_SDATA8_C_MARK,
3132};
3133static const unsigned int ssi9_data_pins[] = {
3134 /* SDATA9 */
3135 RCAR_GP_PIN(4, 24),
3136};
3137static const unsigned int ssi9_data_mux[] = {
3138 SSI_SDATA9_MARK,
3139};
3140static const unsigned int ssi9_ctrl_pins[] = {
3141 /* SCK, WS */
3142 RCAR_GP_PIN(5, 10), RCAR_GP_PIN(5, 11),
3143};
3144static const unsigned int ssi9_ctrl_mux[] = {
3145 SSI_SCK9_MARK, SSI_WS9_MARK,
3146};
2964/* - TPU0 ------------------------------------------------------------------- */ 3147/* - TPU0 ------------------------------------------------------------------- */
2965static const unsigned int tpu0_to0_pins[] = { 3148static const unsigned int tpu0_to0_pins[] = {
2966 /* TO */ 3149 /* TO */
@@ -3259,6 +3442,32 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
3259 SH_PFC_PIN_GROUP(sdhi3_ctrl), 3442 SH_PFC_PIN_GROUP(sdhi3_ctrl),
3260 SH_PFC_PIN_GROUP(sdhi3_cd), 3443 SH_PFC_PIN_GROUP(sdhi3_cd),
3261 SH_PFC_PIN_GROUP(sdhi3_wp), 3444 SH_PFC_PIN_GROUP(sdhi3_wp),
3445 SH_PFC_PIN_GROUP(ssi0_data),
3446 SH_PFC_PIN_GROUP(ssi0129_ctrl),
3447 SH_PFC_PIN_GROUP(ssi1_data),
3448 SH_PFC_PIN_GROUP(ssi1_ctrl),
3449 SH_PFC_PIN_GROUP(ssi2_data),
3450 SH_PFC_PIN_GROUP(ssi2_ctrl),
3451 SH_PFC_PIN_GROUP(ssi3_data),
3452 SH_PFC_PIN_GROUP(ssi34_ctrl),
3453 SH_PFC_PIN_GROUP(ssi4_data),
3454 SH_PFC_PIN_GROUP(ssi4_ctrl),
3455 SH_PFC_PIN_GROUP(ssi5),
3456 SH_PFC_PIN_GROUP(ssi5_b),
3457 SH_PFC_PIN_GROUP(ssi5_c),
3458 SH_PFC_PIN_GROUP(ssi6),
3459 SH_PFC_PIN_GROUP(ssi6_b),
3460 SH_PFC_PIN_GROUP(ssi7_data),
3461 SH_PFC_PIN_GROUP(ssi7_b_data),
3462 SH_PFC_PIN_GROUP(ssi7_c_data),
3463 SH_PFC_PIN_GROUP(ssi78_ctrl),
3464 SH_PFC_PIN_GROUP(ssi78_b_ctrl),
3465 SH_PFC_PIN_GROUP(ssi78_c_ctrl),
3466 SH_PFC_PIN_GROUP(ssi8_data),
3467 SH_PFC_PIN_GROUP(ssi8_b_data),
3468 SH_PFC_PIN_GROUP(ssi8_c_data),
3469 SH_PFC_PIN_GROUP(ssi9_data),
3470 SH_PFC_PIN_GROUP(ssi9_ctrl),
3262 SH_PFC_PIN_GROUP(tpu0_to0), 3471 SH_PFC_PIN_GROUP(tpu0_to0),
3263 SH_PFC_PIN_GROUP(tpu0_to1), 3472 SH_PFC_PIN_GROUP(tpu0_to1),
3264 SH_PFC_PIN_GROUP(tpu0_to2), 3473 SH_PFC_PIN_GROUP(tpu0_to2),
@@ -3533,6 +3742,35 @@ static const char * const sdhi3_groups[] = {
3533 "sdhi3_wp", 3742 "sdhi3_wp",
3534}; 3743};
3535 3744
3745static const char * const ssi_groups[] = {
3746 "ssi0_data",
3747 "ssi0129_ctrl",
3748 "ssi1_data",
3749 "ssi1_ctrl",
3750 "ssi2_data",
3751 "ssi2_ctrl",
3752 "ssi3_data",
3753 "ssi34_ctrl",
3754 "ssi4_data",
3755 "ssi4_ctrl",
3756 "ssi5",
3757 "ssi5_b",
3758 "ssi5_c",
3759 "ssi6",
3760 "ssi6_b",
3761 "ssi7_data",
3762 "ssi7_b_data",
3763 "ssi7_c_data",
3764 "ssi78_ctrl",
3765 "ssi78_b_ctrl",
3766 "ssi78_c_ctrl",
3767 "ssi8_data",
3768 "ssi8_b_data",
3769 "ssi8_c_data",
3770 "ssi9_data",
3771 "ssi9_ctrl",
3772};
3773
3536static const char * const tpu0_groups[] = { 3774static const char * const tpu0_groups[] = {
3537 "tpu0_to0", 3775 "tpu0_to0",
3538 "tpu0_to1", 3776 "tpu0_to1",
@@ -3599,6 +3837,7 @@ static const struct sh_pfc_function pinmux_functions[] = {
3599 SH_PFC_FUNCTION(sdhi1), 3837 SH_PFC_FUNCTION(sdhi1),
3600 SH_PFC_FUNCTION(sdhi2), 3838 SH_PFC_FUNCTION(sdhi2),
3601 SH_PFC_FUNCTION(sdhi3), 3839 SH_PFC_FUNCTION(sdhi3),
3840 SH_PFC_FUNCTION(ssi),
3602 SH_PFC_FUNCTION(tpu0), 3841 SH_PFC_FUNCTION(tpu0),
3603 SH_PFC_FUNCTION(usb0), 3842 SH_PFC_FUNCTION(usb0),
3604 SH_PFC_FUNCTION(usb1), 3843 SH_PFC_FUNCTION(usb1),