diff options
author | Ulrich Hecht <ulrich.hecht@gmail.com> | 2013-05-31 11:57:03 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-06-12 04:40:26 -0400 |
commit | fbd0ca3de1380cf1881e5e92fb8a97ad24171b4c (patch) | |
tree | a34b2e7feb9a7e22d6069c0d96967c009eac5735 | |
parent | 6e8d1d41bba39e051c9c860efbd83078a94f59a3 (diff) |
sh-pfc: r8a7790: add HSCIF pin groups
Adds HSCIF data/clk/ctrl groups to R8A7790 PFC driver.
Signed-off-by: Ulrich Hecht <ulrich.hecht@gmail.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 211 |
1 files changed, 196 insertions, 15 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index 85d77a417c0e..1e7a5eb70a00 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c | |||
@@ -1979,6 +1979,141 @@ static const unsigned int scif1_clk_e_pins[] = { | |||
1979 | static const unsigned int scif1_clk_e_mux[] = { | 1979 | static const unsigned int scif1_clk_e_mux[] = { |
1980 | SCK1_E_MARK, | 1980 | SCK1_E_MARK, |
1981 | }; | 1981 | }; |
1982 | /* - HSCIF0 ----------------------------------------------------------------- */ | ||
1983 | static const unsigned int hscif0_data_pins[] = { | ||
1984 | /* RX, TX */ | ||
1985 | RCAR_GP_PIN(5, 8), RCAR_GP_PIN(5, 9), | ||
1986 | }; | ||
1987 | static const unsigned int hscif0_data_mux[] = { | ||
1988 | HRX0_MARK, HTX0_MARK, | ||
1989 | }; | ||
1990 | static const unsigned int hscif0_clk_pins[] = { | ||
1991 | /* SCK */ | ||
1992 | RCAR_GP_PIN(5, 7), | ||
1993 | }; | ||
1994 | static const unsigned int hscif0_clk_mux[] = { | ||
1995 | HSCK0_MARK, | ||
1996 | }; | ||
1997 | static const unsigned int hscif0_ctrl_pins[] = { | ||
1998 | /* RTS, CTS */ | ||
1999 | RCAR_GP_PIN(5, 11), RCAR_GP_PIN(5, 10), | ||
2000 | }; | ||
2001 | static const unsigned int hscif0_ctrl_mux[] = { | ||
2002 | HRTS0_N_MARK, HCTS0_N_MARK, | ||
2003 | }; | ||
2004 | static const unsigned int hscif0_data_b_pins[] = { | ||
2005 | /* RX, TX */ | ||
2006 | RCAR_GP_PIN(1, 23), RCAR_GP_PIN(1, 12), | ||
2007 | }; | ||
2008 | static const unsigned int hscif0_data_b_mux[] = { | ||
2009 | HRX0_B_MARK, HTX0_B_MARK, | ||
2010 | }; | ||
2011 | static const unsigned int hscif0_ctrl_b_pins[] = { | ||
2012 | /* RTS, CTS */ | ||
2013 | RCAR_GP_PIN(1, 29), RCAR_GP_PIN(1, 28), | ||
2014 | }; | ||
2015 | static const unsigned int hscif0_ctrl_b_mux[] = { | ||
2016 | HRTS0_N_B_MARK, HCTS0_N_B_MARK, | ||
2017 | }; | ||
2018 | static const unsigned int hscif0_data_c_pins[] = { | ||
2019 | /* RX, TX */ | ||
2020 | RCAR_GP_PIN(5, 13), RCAR_GP_PIN(5, 16), | ||
2021 | }; | ||
2022 | static const unsigned int hscif0_data_c_mux[] = { | ||
2023 | HRX0_C_MARK, HTX0_C_MARK, | ||
2024 | }; | ||
2025 | static const unsigned int hscif0_ctrl_c_pins[] = { | ||
2026 | /* RTS, CTS */ | ||
2027 | RCAR_GP_PIN(5, 3), RCAR_GP_PIN(5, 7), | ||
2028 | }; | ||
2029 | static const unsigned int hscif0_ctrl_c_mux[] = { | ||
2030 | HRTS0_N_C_MARK, HCTS0_N_C_MARK, | ||
2031 | }; | ||
2032 | static const unsigned int hscif0_data_d_pins[] = { | ||
2033 | /* RX, TX */ | ||
2034 | RCAR_GP_PIN(3, 20), RCAR_GP_PIN(3, 21), | ||
2035 | }; | ||
2036 | static const unsigned int hscif0_data_d_mux[] = { | ||
2037 | HRX0_D_MARK, HTX0_D_MARK, | ||
2038 | }; | ||
2039 | static const unsigned int hscif0_ctrl_d_pins[] = { | ||
2040 | /* RTS, CTS */ | ||
2041 | RCAR_GP_PIN(3, 23), RCAR_GP_PIN(3, 22), | ||
2042 | }; | ||
2043 | static const unsigned int hscif0_ctrl_d_mux[] = { | ||
2044 | HRTS0_N_D_MARK, HCTS0_N_D_MARK, | ||
2045 | }; | ||
2046 | static const unsigned int hscif0_data_e_pins[] = { | ||
2047 | /* RX, TX */ | ||
2048 | RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 22), | ||
2049 | }; | ||
2050 | static const unsigned int hscif0_data_e_mux[] = { | ||
2051 | HRX0_E_MARK, HTX0_E_MARK, | ||
2052 | }; | ||
2053 | static const unsigned int hscif0_ctrl_e_pins[] = { | ||
2054 | /* RTS, CTS */ | ||
2055 | RCAR_GP_PIN(2, 24), RCAR_GP_PIN(2, 23), | ||
2056 | }; | ||
2057 | static const unsigned int hscif0_ctrl_e_mux[] = { | ||
2058 | HRTS0_N_E_MARK, HCTS0_N_E_MARK, | ||
2059 | }; | ||
2060 | static const unsigned int hscif0_data_f_pins[] = { | ||
2061 | /* RX, TX */ | ||
2062 | RCAR_GP_PIN(2, 23), RCAR_GP_PIN(2, 25), | ||
2063 | }; | ||
2064 | static const unsigned int hscif0_data_f_mux[] = { | ||
2065 | HRX0_F_MARK, HTX0_F_MARK, | ||
2066 | }; | ||
2067 | static const unsigned int hscif0_ctrl_f_pins[] = { | ||
2068 | /* RTS, CTS */ | ||
2069 | RCAR_GP_PIN(2, 26), RCAR_GP_PIN(2, 24), | ||
2070 | }; | ||
2071 | static const unsigned int hscif0_ctrl_f_mux[] = { | ||
2072 | HRTS0_N_F_MARK, HCTS0_N_F_MARK, | ||
2073 | }; | ||
2074 | /* - HSCIF1 ----------------------------------------------------------------- */ | ||
2075 | static const unsigned int hscif1_data_pins[] = { | ||
2076 | /* RX, TX */ | ||
2077 | RCAR_GP_PIN(4, 28), RCAR_GP_PIN(4, 29), | ||
2078 | }; | ||
2079 | static const unsigned int hscif1_data_mux[] = { | ||
2080 | HRX1_MARK, HTX1_MARK, | ||
2081 | }; | ||
2082 | static const unsigned int hscif1_clk_pins[] = { | ||
2083 | /* SCK */ | ||
2084 | RCAR_GP_PIN(4, 27), | ||
2085 | }; | ||
2086 | static const unsigned int hscif1_clk_mux[] = { | ||
2087 | HSCK1_MARK, | ||
2088 | }; | ||
2089 | static const unsigned int hscif1_ctrl_pins[] = { | ||
2090 | /* RTS, CTS */ | ||
2091 | RCAR_GP_PIN(4, 31), RCAR_GP_PIN(4, 30), | ||
2092 | }; | ||
2093 | static const unsigned int hscif1_ctrl_mux[] = { | ||
2094 | HRTS1_N_MARK, HCTS1_N_MARK, | ||
2095 | }; | ||
2096 | static const unsigned int hscif1_data_b_pins[] = { | ||
2097 | /* RX, TX */ | ||
2098 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 18), | ||
2099 | }; | ||
2100 | static const unsigned int hscif1_data_b_mux[] = { | ||
2101 | HRX1_B_MARK, HTX1_B_MARK, | ||
2102 | }; | ||
2103 | static const unsigned int hscif1_clk_b_pins[] = { | ||
2104 | /* SCK */ | ||
2105 | RCAR_GP_PIN(1, 28), | ||
2106 | }; | ||
2107 | static const unsigned int hscif1_clk_b_mux[] = { | ||
2108 | HSCK1_B_MARK, | ||
2109 | }; | ||
2110 | static const unsigned int hscif1_ctrl_b_pins[] = { | ||
2111 | /* RTS, CTS */ | ||
2112 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 13), | ||
2113 | }; | ||
2114 | static const unsigned int hscif1_ctrl_b_mux[] = { | ||
2115 | HRTS1_N_B_MARK, HCTS1_N_B_MARK, | ||
2116 | }; | ||
1982 | /* - SCIFA0 ----------------------------------------------------------------- */ | 2117 | /* - SCIFA0 ----------------------------------------------------------------- */ |
1983 | static const unsigned int scifa0_data_pins[] = { | 2118 | static const unsigned int scifa0_data_pins[] = { |
1984 | /* RXD, TXD */ | 2119 | /* RXD, TXD */ |
@@ -2591,10 +2726,37 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
2591 | SH_PFC_PIN_GROUP(eth_magic), | 2726 | SH_PFC_PIN_GROUP(eth_magic), |
2592 | SH_PFC_PIN_GROUP(eth_mdio), | 2727 | SH_PFC_PIN_GROUP(eth_mdio), |
2593 | SH_PFC_PIN_GROUP(eth_rmii), | 2728 | SH_PFC_PIN_GROUP(eth_rmii), |
2729 | SH_PFC_PIN_GROUP(hscif0_data), | ||
2730 | SH_PFC_PIN_GROUP(hscif0_clk), | ||
2731 | SH_PFC_PIN_GROUP(hscif0_ctrl), | ||
2732 | SH_PFC_PIN_GROUP(hscif0_data_b), | ||
2733 | SH_PFC_PIN_GROUP(hscif0_ctrl_b), | ||
2734 | SH_PFC_PIN_GROUP(hscif0_data_c), | ||
2735 | SH_PFC_PIN_GROUP(hscif0_ctrl_c), | ||
2736 | SH_PFC_PIN_GROUP(hscif0_data_d), | ||
2737 | SH_PFC_PIN_GROUP(hscif0_ctrl_d), | ||
2738 | SH_PFC_PIN_GROUP(hscif0_data_e), | ||
2739 | SH_PFC_PIN_GROUP(hscif0_ctrl_e), | ||
2740 | SH_PFC_PIN_GROUP(hscif0_data_f), | ||
2741 | SH_PFC_PIN_GROUP(hscif0_ctrl_f), | ||
2742 | SH_PFC_PIN_GROUP(hscif1_data), | ||
2743 | SH_PFC_PIN_GROUP(hscif1_clk), | ||
2744 | SH_PFC_PIN_GROUP(hscif1_ctrl), | ||
2745 | SH_PFC_PIN_GROUP(hscif1_data_b), | ||
2746 | SH_PFC_PIN_GROUP(hscif1_clk_b), | ||
2747 | SH_PFC_PIN_GROUP(hscif1_ctrl_b), | ||
2594 | SH_PFC_PIN_GROUP(intc_irq0), | 2748 | SH_PFC_PIN_GROUP(intc_irq0), |
2595 | SH_PFC_PIN_GROUP(intc_irq1), | 2749 | SH_PFC_PIN_GROUP(intc_irq1), |
2596 | SH_PFC_PIN_GROUP(intc_irq2), | 2750 | SH_PFC_PIN_GROUP(intc_irq2), |
2597 | SH_PFC_PIN_GROUP(intc_irq3), | 2751 | SH_PFC_PIN_GROUP(intc_irq3), |
2752 | SH_PFC_PIN_GROUP(mmc0_data1), | ||
2753 | SH_PFC_PIN_GROUP(mmc0_data4), | ||
2754 | SH_PFC_PIN_GROUP(mmc0_data8), | ||
2755 | SH_PFC_PIN_GROUP(mmc0_ctrl), | ||
2756 | SH_PFC_PIN_GROUP(mmc1_data1), | ||
2757 | SH_PFC_PIN_GROUP(mmc1_data4), | ||
2758 | SH_PFC_PIN_GROUP(mmc1_data8), | ||
2759 | SH_PFC_PIN_GROUP(mmc1_ctrl), | ||
2598 | SH_PFC_PIN_GROUP(scif0_data), | 2760 | SH_PFC_PIN_GROUP(scif0_data), |
2599 | SH_PFC_PIN_GROUP(scif0_clk), | 2761 | SH_PFC_PIN_GROUP(scif0_clk), |
2600 | SH_PFC_PIN_GROUP(scif0_ctrl), | 2762 | SH_PFC_PIN_GROUP(scif0_ctrl), |
@@ -2659,18 +2821,6 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
2659 | SH_PFC_PIN_GROUP(scifb2_clk_b), | 2821 | SH_PFC_PIN_GROUP(scifb2_clk_b), |
2660 | SH_PFC_PIN_GROUP(scifb2_ctrl_b), | 2822 | SH_PFC_PIN_GROUP(scifb2_ctrl_b), |
2661 | SH_PFC_PIN_GROUP(scifb2_data_c), | 2823 | SH_PFC_PIN_GROUP(scifb2_data_c), |
2662 | SH_PFC_PIN_GROUP(tpu0_to0), | ||
2663 | SH_PFC_PIN_GROUP(tpu0_to1), | ||
2664 | SH_PFC_PIN_GROUP(tpu0_to2), | ||
2665 | SH_PFC_PIN_GROUP(tpu0_to3), | ||
2666 | SH_PFC_PIN_GROUP(mmc0_data1), | ||
2667 | SH_PFC_PIN_GROUP(mmc0_data4), | ||
2668 | SH_PFC_PIN_GROUP(mmc0_data8), | ||
2669 | SH_PFC_PIN_GROUP(mmc0_ctrl), | ||
2670 | SH_PFC_PIN_GROUP(mmc1_data1), | ||
2671 | SH_PFC_PIN_GROUP(mmc1_data4), | ||
2672 | SH_PFC_PIN_GROUP(mmc1_data8), | ||
2673 | SH_PFC_PIN_GROUP(mmc1_ctrl), | ||
2674 | SH_PFC_PIN_GROUP(sdhi0_data1), | 2824 | SH_PFC_PIN_GROUP(sdhi0_data1), |
2675 | SH_PFC_PIN_GROUP(sdhi0_data4), | 2825 | SH_PFC_PIN_GROUP(sdhi0_data4), |
2676 | SH_PFC_PIN_GROUP(sdhi0_ctrl), | 2826 | SH_PFC_PIN_GROUP(sdhi0_ctrl), |
@@ -2691,6 +2841,10 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
2691 | SH_PFC_PIN_GROUP(sdhi3_ctrl), | 2841 | SH_PFC_PIN_GROUP(sdhi3_ctrl), |
2692 | SH_PFC_PIN_GROUP(sdhi3_cd), | 2842 | SH_PFC_PIN_GROUP(sdhi3_cd), |
2693 | SH_PFC_PIN_GROUP(sdhi3_wp), | 2843 | SH_PFC_PIN_GROUP(sdhi3_wp), |
2844 | SH_PFC_PIN_GROUP(tpu0_to0), | ||
2845 | SH_PFC_PIN_GROUP(tpu0_to1), | ||
2846 | SH_PFC_PIN_GROUP(tpu0_to2), | ||
2847 | SH_PFC_PIN_GROUP(tpu0_to3), | ||
2694 | }; | 2848 | }; |
2695 | 2849 | ||
2696 | static const char * const eth_groups[] = { | 2850 | static const char * const eth_groups[] = { |
@@ -2726,6 +2880,31 @@ static const char * const scif1_groups[] = { | |||
2726 | "scif1_clk_e", | 2880 | "scif1_clk_e", |
2727 | }; | 2881 | }; |
2728 | 2882 | ||
2883 | static const char * const hscif0_groups[] = { | ||
2884 | "hscif0_data", | ||
2885 | "hscif0_clk", | ||
2886 | "hscif0_ctrl", | ||
2887 | "hscif0_data_b", | ||
2888 | "hscif0_ctrl_b", | ||
2889 | "hscif0_data_c", | ||
2890 | "hscif0_ctrl_c", | ||
2891 | "hscif0_data_d", | ||
2892 | "hscif0_ctrl_d", | ||
2893 | "hscif0_data_e", | ||
2894 | "hscif0_ctrl_e", | ||
2895 | "hscif0_data_f", | ||
2896 | "hscif0_ctrl_f", | ||
2897 | }; | ||
2898 | |||
2899 | static const char * const hscif1_groups[] = { | ||
2900 | "hscif1_data", | ||
2901 | "hscif1_clk", | ||
2902 | "hscif1_ctrl", | ||
2903 | "hscif1_data_b", | ||
2904 | "hscif1_clk_b", | ||
2905 | "hscif1_ctrl_b", | ||
2906 | }; | ||
2907 | |||
2729 | static const char * const scifa0_groups[] = { | 2908 | static const char * const scifa0_groups[] = { |
2730 | "scifa0_data", | 2909 | "scifa0_data", |
2731 | "scifa0_clk", | 2910 | "scifa0_clk", |
@@ -2850,7 +3029,11 @@ static const char * const sdhi3_groups[] = { | |||
2850 | 3029 | ||
2851 | static const struct sh_pfc_function pinmux_functions[] = { | 3030 | static const struct sh_pfc_function pinmux_functions[] = { |
2852 | SH_PFC_FUNCTION(eth), | 3031 | SH_PFC_FUNCTION(eth), |
3032 | SH_PFC_FUNCTION(hscif0), | ||
3033 | SH_PFC_FUNCTION(hscif1), | ||
2853 | SH_PFC_FUNCTION(intc), | 3034 | SH_PFC_FUNCTION(intc), |
3035 | SH_PFC_FUNCTION(mmc0), | ||
3036 | SH_PFC_FUNCTION(mmc1), | ||
2854 | SH_PFC_FUNCTION(scif0), | 3037 | SH_PFC_FUNCTION(scif0), |
2855 | SH_PFC_FUNCTION(scif1), | 3038 | SH_PFC_FUNCTION(scif1), |
2856 | SH_PFC_FUNCTION(scifa0), | 3039 | SH_PFC_FUNCTION(scifa0), |
@@ -2859,13 +3042,11 @@ static const struct sh_pfc_function pinmux_functions[] = { | |||
2859 | SH_PFC_FUNCTION(scifb0), | 3042 | SH_PFC_FUNCTION(scifb0), |
2860 | SH_PFC_FUNCTION(scifb1), | 3043 | SH_PFC_FUNCTION(scifb1), |
2861 | SH_PFC_FUNCTION(scifb2), | 3044 | SH_PFC_FUNCTION(scifb2), |
2862 | SH_PFC_FUNCTION(tpu0), | ||
2863 | SH_PFC_FUNCTION(mmc0), | ||
2864 | SH_PFC_FUNCTION(mmc1), | ||
2865 | SH_PFC_FUNCTION(sdhi0), | 3045 | SH_PFC_FUNCTION(sdhi0), |
2866 | SH_PFC_FUNCTION(sdhi1), | 3046 | SH_PFC_FUNCTION(sdhi1), |
2867 | SH_PFC_FUNCTION(sdhi2), | 3047 | SH_PFC_FUNCTION(sdhi2), |
2868 | SH_PFC_FUNCTION(sdhi3), | 3048 | SH_PFC_FUNCTION(sdhi3), |
3049 | SH_PFC_FUNCTION(tpu0), | ||
2869 | }; | 3050 | }; |
2870 | 3051 | ||
2871 | static struct pinmux_cfg_reg pinmux_config_regs[] = { | 3052 | static struct pinmux_cfg_reg pinmux_config_regs[] = { |