aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/sh-pfc/pfc-sh73a0.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-03-11 20:55:08 -0400
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-03-15 08:34:06 -0400
commitd6bab7b12e815e6c2a637a3b509143c866683c2a (patch)
tree639457efe74d6046b483aaff45691de854b30d0d /drivers/pinctrl/sh-pfc/pfc-sh73a0.c
parent82f6b6da703e784b923763cc7161116829b2ca66 (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.c213
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 ------------------------------------------------------------------- */
1850static const unsigned int fsia_mclk_in_pins[] = { 1856static const unsigned int fsia_mclk_in_pins[] = {
1851 /* CK */ 1857 /* CK */
@@ -2069,6 +2075,165 @@ static const unsigned int i2c3_2_pins[] = {
2069static const unsigned int i2c3_2_mux[] = { 2075static 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 ------------------------------------------------------------------ */
2079static const unsigned int keysc_in5_pins[] = {
2080 /* KEYIN[0:4] */
2081 66, 67, 68, 69, 70,
2082};
2083static const unsigned int keysc_in5_mux[] = {
2084 KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK,
2085 KEYIN4_MARK,
2086};
2087static const unsigned int keysc_in6_pins[] = {
2088 /* KEYIN[0:5] */
2089 66, 67, 68, 69, 70, 71,
2090};
2091static const unsigned int keysc_in6_mux[] = {
2092 KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK,
2093 KEYIN4_MARK, KEYIN5_MARK,
2094};
2095static const unsigned int keysc_in7_pins[] = {
2096 /* KEYIN[0:6] */
2097 66, 67, 68, 69, 70, 71, 72,
2098};
2099static const unsigned int keysc_in7_mux[] = {
2100 KEYIN0_MARK, KEYIN1_MARK, KEYIN2_MARK, KEYIN3_MARK,
2101 KEYIN4_MARK, KEYIN5_MARK, KEYIN6_MARK,
2102};
2103static const unsigned int keysc_in8_pins[] = {
2104 /* KEYIN[0:7] */
2105 66, 67, 68, 69, 70, 71, 72, 73,
2106};
2107static 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};
2111static const unsigned int keysc_out04_pins[] = {
2112 /* KEYOUT[0:4] */
2113 65, 64, 63, 62, 61,
2114};
2115static const unsigned int keysc_out04_mux[] = {
2116 KEYOUT0_MARK, KEYOUT1_MARK, KEYOUT2_MARK, KEYOUT3_MARK, KEYOUT4_MARK,
2117};
2118static const unsigned int keysc_out5_pins[] = {
2119 /* KEYOUT5 */
2120 60,
2121};
2122static const unsigned int keysc_out5_mux[] = {
2123 KEYOUT5_MARK,
2124};
2125static const unsigned int keysc_out6_0_pins[] = {
2126 /* KEYOUT6 */
2127 59,
2128};
2129static const unsigned int keysc_out6_0_mux[] = {
2130 PORT59_KEYOUT6_MARK,
2131};
2132static const unsigned int keysc_out6_1_pins[] = {
2133 /* KEYOUT6 */
2134 131,
2135};
2136static const unsigned int keysc_out6_1_mux[] = {
2137 PORT131_KEYOUT6_MARK,
2138};
2139static const unsigned int keysc_out6_2_pins[] = {
2140 /* KEYOUT6 */
2141 143,
2142};
2143static const unsigned int keysc_out6_2_mux[] = {
2144 PORT143_KEYOUT6_MARK,
2145};
2146static const unsigned int keysc_out7_0_pins[] = {
2147 /* KEYOUT7 */
2148 58,
2149};
2150static const unsigned int keysc_out7_0_mux[] = {
2151 PORT58_KEYOUT7_MARK,
2152};
2153static const unsigned int keysc_out7_1_pins[] = {
2154 /* KEYOUT7 */
2155 132,
2156};
2157static const unsigned int keysc_out7_1_mux[] = {
2158 PORT132_KEYOUT7_MARK,
2159};
2160static const unsigned int keysc_out7_2_pins[] = {
2161 /* KEYOUT7 */
2162 144,
2163};
2164static const unsigned int keysc_out7_2_mux[] = {
2165 PORT144_KEYOUT7_MARK,
2166};
2167static const unsigned int keysc_out8_0_pins[] = {
2168 /* KEYOUT8 */
2169 PIN_NUMBER(6, 26),
2170};
2171static const unsigned int keysc_out8_0_mux[] = {
2172 KEYOUT8_MARK,
2173};
2174static const unsigned int keysc_out8_1_pins[] = {
2175 /* KEYOUT8 */
2176 136,
2177};
2178static const unsigned int keysc_out8_1_mux[] = {
2179 PORT136_KEYOUT8_MARK,
2180};
2181static const unsigned int keysc_out8_2_pins[] = {
2182 /* KEYOUT8 */
2183 138,
2184};
2185static const unsigned int keysc_out8_2_mux[] = {
2186 PORT138_KEYOUT8_MARK,
2187};
2188static const unsigned int keysc_out9_0_pins[] = {
2189 /* KEYOUT9 */
2190 137,
2191};
2192static const unsigned int keysc_out9_0_mux[] = {
2193 PORT137_KEYOUT9_MARK,
2194};
2195static const unsigned int keysc_out9_1_pins[] = {
2196 /* KEYOUT9 */
2197 139,
2198};
2199static const unsigned int keysc_out9_1_mux[] = {
2200 PORT139_KEYOUT9_MARK,
2201};
2202static const unsigned int keysc_out9_2_pins[] = {
2203 /* KEYOUT9 */
2204 149,
2205};
2206static const unsigned int keysc_out9_2_mux[] = {
2207 PORT149_KEYOUT9_MARK,
2208};
2209static const unsigned int keysc_out10_0_pins[] = {
2210 /* KEYOUT10 */
2211 132,
2212};
2213static const unsigned int keysc_out10_0_mux[] = {
2214 PORT132_KEYOUT10_MARK,
2215};
2216static const unsigned int keysc_out10_1_pins[] = {
2217 /* KEYOUT10 */
2218 142,
2219};
2220static const unsigned int keysc_out10_1_mux[] = {
2221 PORT142_KEYOUT10_MARK,
2222};
2223static const unsigned int keysc_out11_0_pins[] = {
2224 /* KEYOUT11 */
2225 131,
2226};
2227static const unsigned int keysc_out11_0_mux[] = {
2228 PORT131_KEYOUT11_MARK,
2229};
2230static const unsigned int keysc_out11_1_pins[] = {
2231 /* KEYOUT11 */
2232 143,
2233};
2234static const unsigned int keysc_out11_1_mux[] = {
2235 PORT143_KEYOUT11_MARK,
2236};
2072/* - LCD -------------------------------------------------------------------- */ 2237/* - LCD -------------------------------------------------------------------- */
2073static const unsigned int lcd_data8_pins[] = { 2238static 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
2996static 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
2809static const char * const lcd_groups[] = { 3021static 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),