diff options
author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-03-11 20:55:08 -0400 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-03-15 08:34:06 -0400 |
commit | d6bab7b12e815e6c2a637a3b509143c866683c2a (patch) | |
tree | 639457efe74d6046b483aaff45691de854b30d0d /drivers/pinctrl/sh-pfc/pfc-sh73a0.c | |
parent | 82f6b6da703e784b923763cc7161116829b2ca66 (diff) |
sh-pfc: sh73a0: Add KEYSC pin groups and functions
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/sh-pfc/pfc-sh73a0.c')
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-sh73a0.c b/drivers/pinctrl/sh-pfc/pfc-sh73a0.c index ed5cbaf66ac2..aad800431241 100644 --- a/drivers/pinctrl/sh-pfc/pfc-sh73a0.c +++ b/drivers/pinctrl/sh-pfc/pfc-sh73a0.c | |||
@@ -1846,6 +1846,12 @@ static const struct pinmux_range pinmux_ranges[] = { | |||
1846 | {.begin = 288, .end = 309,}, | 1846 | {.begin = 288, .end = 309,}, |
1847 | }; | 1847 | }; |
1848 | 1848 | ||
1849 | /* Pin numbers for pins without a corresponding GPIO port number are computed | ||
1850 | * from the row and column numbers with a 1000 offset to avoid collisions with | ||
1851 | * GPIO port numbers. | ||
1852 | */ | ||
1853 | #define PIN_NUMBER(row, col) (1000+((row)-1)*34+(col)-1) | ||
1854 | |||
1849 | /* - FSIA ------------------------------------------------------------------- */ | 1855 | /* - FSIA ------------------------------------------------------------------- */ |
1850 | static const unsigned int fsia_mclk_in_pins[] = { | 1856 | static const unsigned int fsia_mclk_in_pins[] = { |
1851 | /* CK */ | 1857 | /* CK */ |
@@ -2069,6 +2075,165 @@ static const unsigned int i2c3_2_pins[] = { | |||
2069 | static const unsigned int i2c3_2_mux[] = { | 2075 | static const unsigned int i2c3_2_mux[] = { |
2070 | PORT115_I2C_SCL3_MARK, PORT116_I2C_SDA3_MARK, | 2076 | PORT115_I2C_SCL3_MARK, PORT116_I2C_SDA3_MARK, |
2071 | }; | 2077 | }; |
2078 | /* - KEYSC ------------------------------------------------------------------ */ | ||
2079 | static const unsigned int keysc_in5_pins[] = { | ||
2080 | /* KEYIN[0:4] */ | ||
2081 | 66, 67, 68, 69, 70, | ||
2082 | }; | ||
2083 | static const unsigned int keysc_in5_mux[] = { | ||
2084 | KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, | ||
2085 | KEYIN4_MARK, | ||
2086 | }; | ||
2087 | static const unsigned int keysc_in6_pins[] = { | ||
2088 | /* KEYIN[0:5] */ | ||
2089 | 66, 67, 68, 69, 70, 71, | ||
2090 | }; | ||
2091 | static const unsigned int keysc_in6_mux[] = { | ||
2092 | KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, | ||
2093 | KEYIN4_MARK, KEYIN5_MARK, | ||
2094 | }; | ||
2095 | static const unsigned int keysc_in7_pins[] = { | ||
2096 | /* KEYIN[0:6] */ | ||
2097 | 66, 67, 68, 69, 70, 71, 72, | ||
2098 | }; | ||
2099 | static const unsigned int keysc_in7_mux[] = { | ||
2100 | KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, | ||
2101 | KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, | ||
2102 | }; | ||
2103 | static const unsigned int keysc_in8_pins[] = { | ||
2104 | /* KEYIN[0:7] */ | ||
2105 | 66, 67, 68, 69, 70, 71, 72, 73, | ||
2106 | }; | ||
2107 | static const unsigned int keysc_in8_mux[] = { | ||
2108 | KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK, | ||
2109 | KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK, KEYIN7_MARK, | ||
2110 | }; | ||
2111 | static const unsigned int keysc_out04_pins[] = { | ||
2112 | /* KEYOUT[0:4] */ | ||
2113 | 65, 64, 63, 62, 61, | ||
2114 | }; | ||
2115 | static const unsigned int keysc_out04_mux[] = { | ||
2116 | KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK, KEYOUT4_MARK, | ||
2117 | }; | ||
2118 | static const unsigned int keysc_out5_pins[] = { | ||
2119 | /* KEYOUT5 */ | ||
2120 | 60, | ||
2121 | }; | ||
2122 | static const unsigned int keysc_out5_mux[] = { | ||
2123 | KEYOUT5_MARK, | ||
2124 | }; | ||
2125 | static const unsigned int keysc_out6_0_pins[] = { | ||
2126 | /* KEYOUT6 */ | ||
2127 | 59, | ||
2128 | }; | ||
2129 | static const unsigned int keysc_out6_0_mux[] = { | ||
2130 | PORT59_KEYOUT6_MARK, | ||
2131 | }; | ||
2132 | static const unsigned int keysc_out6_1_pins[] = { | ||
2133 | /* KEYOUT6 */ | ||
2134 | 131, | ||
2135 | }; | ||
2136 | static const unsigned int keysc_out6_1_mux[] = { | ||
2137 | PORT131_KEYOUT6_MARK, | ||
2138 | }; | ||
2139 | static const unsigned int keysc_out6_2_pins[] = { | ||
2140 | /* KEYOUT6 */ | ||
2141 | 143, | ||
2142 | }; | ||
2143 | static const unsigned int keysc_out6_2_mux[] = { | ||
2144 | PORT143_KEYOUT6_MARK, | ||
2145 | }; | ||
2146 | static const unsigned int keysc_out7_0_pins[] = { | ||
2147 | /* KEYOUT7 */ | ||
2148 | 58, | ||
2149 | }; | ||
2150 | static const unsigned int keysc_out7_0_mux[] = { | ||
2151 | PORT58_KEYOUT7_MARK, | ||
2152 | }; | ||
2153 | static const unsigned int keysc_out7_1_pins[] = { | ||
2154 | /* KEYOUT7 */ | ||
2155 | 132, | ||
2156 | }; | ||
2157 | static const unsigned int keysc_out7_1_mux[] = { | ||
2158 | PORT132_KEYOUT7_MARK, | ||
2159 | }; | ||
2160 | static const unsigned int keysc_out7_2_pins[] = { | ||
2161 | /* KEYOUT7 */ | ||
2162 | 144, | ||
2163 | }; | ||
2164 | static const unsigned int keysc_out7_2_mux[] = { | ||
2165 | PORT144_KEYOUT7_MARK, | ||
2166 | }; | ||
2167 | static const unsigned int keysc_out8_0_pins[] = { | ||
2168 | /* KEYOUT8 */ | ||
2169 | PIN_NUMBER(6, 26), | ||
2170 | }; | ||
2171 | static const unsigned int keysc_out8_0_mux[] = { | ||
2172 | KEYOUT8_MARK, | ||
2173 | }; | ||
2174 | static const unsigned int keysc_out8_1_pins[] = { | ||
2175 | /* KEYOUT8 */ | ||
2176 | 136, | ||
2177 | }; | ||
2178 | static const unsigned int keysc_out8_1_mux[] = { | ||
2179 | PORT136_KEYOUT8_MARK, | ||
2180 | }; | ||
2181 | static const unsigned int keysc_out8_2_pins[] = { | ||
2182 | /* KEYOUT8 */ | ||
2183 | 138, | ||
2184 | }; | ||
2185 | static const unsigned int keysc_out8_2_mux[] = { | ||
2186 | PORT138_KEYOUT8_MARK, | ||
2187 | }; | ||
2188 | static const unsigned int keysc_out9_0_pins[] = { | ||
2189 | /* KEYOUT9 */ | ||
2190 | 137, | ||
2191 | }; | ||
2192 | static const unsigned int keysc_out9_0_mux[] = { | ||
2193 | PORT137_KEYOUT9_MARK, | ||
2194 | }; | ||
2195 | static const unsigned int keysc_out9_1_pins[] = { | ||
2196 | /* KEYOUT9 */ | ||
2197 | 139, | ||
2198 | }; | ||
2199 | static const unsigned int keysc_out9_1_mux[] = { | ||
2200 | PORT139_KEYOUT9_MARK, | ||
2201 | }; | ||
2202 | static const unsigned int keysc_out9_2_pins[] = { | ||
2203 | /* KEYOUT9 */ | ||
2204 | 149, | ||
2205 | }; | ||
2206 | static const unsigned int keysc_out9_2_mux[] = { | ||
2207 | PORT149_KEYOUT9_MARK, | ||
2208 | }; | ||
2209 | static const unsigned int keysc_out10_0_pins[] = { | ||
2210 | /* KEYOUT10 */ | ||
2211 | 132, | ||
2212 | }; | ||
2213 | static const unsigned int keysc_out10_0_mux[] = { | ||
2214 | PORT132_KEYOUT10_MARK, | ||
2215 | }; | ||
2216 | static const unsigned int keysc_out10_1_pins[] = { | ||
2217 | /* KEYOUT10 */ | ||
2218 | 142, | ||
2219 | }; | ||
2220 | static const unsigned int keysc_out10_1_mux[] = { | ||
2221 | PORT142_KEYOUT10_MARK, | ||
2222 | }; | ||
2223 | static const unsigned int keysc_out11_0_pins[] = { | ||
2224 | /* KEYOUT11 */ | ||
2225 | 131, | ||
2226 | }; | ||
2227 | static const unsigned int keysc_out11_0_mux[] = { | ||
2228 | PORT131_KEYOUT11_MARK, | ||
2229 | }; | ||
2230 | static const unsigned int keysc_out11_1_pins[] = { | ||
2231 | /* KEYOUT11 */ | ||
2232 | 143, | ||
2233 | }; | ||
2234 | static const unsigned int keysc_out11_1_mux[] = { | ||
2235 | PORT143_KEYOUT11_MARK, | ||
2236 | }; | ||
2072 | /* - LCD -------------------------------------------------------------------- */ | 2237 | /* - LCD -------------------------------------------------------------------- */ |
2073 | static const unsigned int lcd_data8_pins[] = { | 2238 | static const unsigned int lcd_data8_pins[] = { |
2074 | /* D[0:7] */ | 2239 | /* D[0:7] */ |
@@ -2683,6 +2848,28 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
2683 | SH_PFC_PIN_GROUP(i2c3_0), | 2848 | SH_PFC_PIN_GROUP(i2c3_0), |
2684 | SH_PFC_PIN_GROUP(i2c3_1), | 2849 | SH_PFC_PIN_GROUP(i2c3_1), |
2685 | SH_PFC_PIN_GROUP(i2c3_2), | 2850 | SH_PFC_PIN_GROUP(i2c3_2), |
2851 | SH_PFC_PIN_GROUP(keysc_in5), | ||
2852 | SH_PFC_PIN_GROUP(keysc_in6), | ||
2853 | SH_PFC_PIN_GROUP(keysc_in7), | ||
2854 | SH_PFC_PIN_GROUP(keysc_in8), | ||
2855 | SH_PFC_PIN_GROUP(keysc_out04), | ||
2856 | SH_PFC_PIN_GROUP(keysc_out5), | ||
2857 | SH_PFC_PIN_GROUP(keysc_out6_0), | ||
2858 | SH_PFC_PIN_GROUP(keysc_out6_1), | ||
2859 | SH_PFC_PIN_GROUP(keysc_out6_2), | ||
2860 | SH_PFC_PIN_GROUP(keysc_out7_0), | ||
2861 | SH_PFC_PIN_GROUP(keysc_out7_1), | ||
2862 | SH_PFC_PIN_GROUP(keysc_out7_2), | ||
2863 | SH_PFC_PIN_GROUP(keysc_out8_0), | ||
2864 | SH_PFC_PIN_GROUP(keysc_out8_1), | ||
2865 | SH_PFC_PIN_GROUP(keysc_out8_2), | ||
2866 | SH_PFC_PIN_GROUP(keysc_out9_0), | ||
2867 | SH_PFC_PIN_GROUP(keysc_out9_1), | ||
2868 | SH_PFC_PIN_GROUP(keysc_out9_2), | ||
2869 | SH_PFC_PIN_GROUP(keysc_out10_0), | ||
2870 | SH_PFC_PIN_GROUP(keysc_out10_1), | ||
2871 | SH_PFC_PIN_GROUP(keysc_out11_0), | ||
2872 | SH_PFC_PIN_GROUP(keysc_out11_1), | ||
2686 | SH_PFC_PIN_GROUP(lcd_data8), | 2873 | SH_PFC_PIN_GROUP(lcd_data8), |
2687 | SH_PFC_PIN_GROUP(lcd_data9), | 2874 | SH_PFC_PIN_GROUP(lcd_data9), |
2688 | SH_PFC_PIN_GROUP(lcd_data12), | 2875 | SH_PFC_PIN_GROUP(lcd_data12), |
@@ -2806,6 +2993,31 @@ static const char * const i2c3_groups[] = { | |||
2806 | "i2c3_2", | 2993 | "i2c3_2", |
2807 | }; | 2994 | }; |
2808 | 2995 | ||
2996 | static const char * const keysc_groups[] = { | ||
2997 | "keysc_in5", | ||
2998 | "keysc_in6", | ||
2999 | "keysc_in7", | ||
3000 | "keysc_in8", | ||
3001 | "keysc_out04", | ||
3002 | "keysc_out5", | ||
3003 | "keysc_out6_0", | ||
3004 | "keysc_out6_1", | ||
3005 | "keysc_out6_2", | ||
3006 | "keysc_out7_0", | ||
3007 | "keysc_out7_1", | ||
3008 | "keysc_out7_2", | ||
3009 | "keysc_out8_0", | ||
3010 | "keysc_out8_1", | ||
3011 | "keysc_out8_2", | ||
3012 | "keysc_out9_0", | ||
3013 | "keysc_out9_1", | ||
3014 | "keysc_out9_2", | ||
3015 | "keysc_out10_0", | ||
3016 | "keysc_out10_1", | ||
3017 | "keysc_out11_0", | ||
3018 | "keysc_out11_1", | ||
3019 | }; | ||
3020 | |||
2809 | static const char * const lcd_groups[] = { | 3021 | static const char * const lcd_groups[] = { |
2810 | "lcd_data8", | 3022 | "lcd_data8", |
2811 | "lcd_data9", | 3023 | "lcd_data9", |
@@ -2931,6 +3143,7 @@ static const struct sh_pfc_function pinmux_functions[] = { | |||
2931 | SH_PFC_FUNCTION(fsid), | 3143 | SH_PFC_FUNCTION(fsid), |
2932 | SH_PFC_FUNCTION(i2c2), | 3144 | SH_PFC_FUNCTION(i2c2), |
2933 | SH_PFC_FUNCTION(i2c3), | 3145 | SH_PFC_FUNCTION(i2c3), |
3146 | SH_PFC_FUNCTION(keysc), | ||
2934 | SH_PFC_FUNCTION(lcd), | 3147 | SH_PFC_FUNCTION(lcd), |
2935 | SH_PFC_FUNCTION(lcd2), | 3148 | SH_PFC_FUNCTION(lcd2), |
2936 | SH_PFC_FUNCTION(mmc0), | 3149 | SH_PFC_FUNCTION(mmc0), |