diff options
author | Magnus Damm <damm@opensource.se> | 2013-03-27 11:16:37 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-04-02 21:30:40 -0400 |
commit | 515a828f773ba7389d77db90b980565382ece977 (patch) | |
tree | 4ec06f92707f332103211ceb8465284b9378d3b8 | |
parent | 172fd616dd46a181be5c9c17bd0a84dd8ae0ce94 (diff) |
sh-pfc: r8a73a4: Add IRQC pin groups and functions
V2 of PINCTRL support for r8a73a4 IRQC hardware
and in particular the external pins IRQ0 -> IRQ57.
Signed-off-by: Magnus Damm <damm@opensource.se>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a73a4.c | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c b/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c index cd5c5fd74ba4..8a5288c99a83 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c | |||
@@ -1576,6 +1576,72 @@ static const struct pinmux_range pinmux_ranges[] = { | |||
1576 | {.begin = 320, .end = 329,}, | 1576 | {.begin = 320, .end = 329,}, |
1577 | }; | 1577 | }; |
1578 | 1578 | ||
1579 | /* - IRQC ------------------------------------------------------------------- */ | ||
1580 | #define IRQC_PINS_MUX(pin, irq_mark) \ | ||
1581 | static const unsigned int irqc_irq##irq_mark##_pins[] = { \ | ||
1582 | pin, \ | ||
1583 | }; \ | ||
1584 | static const unsigned int irqc_irq##irq_mark##_mux[] = { \ | ||
1585 | IRQ##irq_mark##_MARK, \ | ||
1586 | } | ||
1587 | IRQC_PINS_MUX(0, 0); | ||
1588 | IRQC_PINS_MUX(1, 1); | ||
1589 | IRQC_PINS_MUX(2, 2); | ||
1590 | IRQC_PINS_MUX(3, 3); | ||
1591 | IRQC_PINS_MUX(4, 4); | ||
1592 | IRQC_PINS_MUX(5, 5); | ||
1593 | IRQC_PINS_MUX(6, 6); | ||
1594 | IRQC_PINS_MUX(7, 7); | ||
1595 | IRQC_PINS_MUX(8, 8); | ||
1596 | IRQC_PINS_MUX(9, 9); | ||
1597 | IRQC_PINS_MUX(10, 10); | ||
1598 | IRQC_PINS_MUX(11, 11); | ||
1599 | IRQC_PINS_MUX(12, 12); | ||
1600 | IRQC_PINS_MUX(13, 13); | ||
1601 | IRQC_PINS_MUX(14, 14); | ||
1602 | IRQC_PINS_MUX(15, 15); | ||
1603 | IRQC_PINS_MUX(66, 40); | ||
1604 | IRQC_PINS_MUX(84, 19); | ||
1605 | IRQC_PINS_MUX(85, 18); | ||
1606 | IRQC_PINS_MUX(102, 41); | ||
1607 | IRQC_PINS_MUX(103, 42); | ||
1608 | IRQC_PINS_MUX(109, 43); | ||
1609 | IRQC_PINS_MUX(110, 44); | ||
1610 | IRQC_PINS_MUX(111, 45); | ||
1611 | IRQC_PINS_MUX(112, 46); | ||
1612 | IRQC_PINS_MUX(113, 47); | ||
1613 | IRQC_PINS_MUX(114, 48); | ||
1614 | IRQC_PINS_MUX(115, 49); | ||
1615 | IRQC_PINS_MUX(160, 20); | ||
1616 | IRQC_PINS_MUX(161, 21); | ||
1617 | IRQC_PINS_MUX(162, 22); | ||
1618 | IRQC_PINS_MUX(163, 23); | ||
1619 | IRQC_PINS_MUX(175, 24); | ||
1620 | IRQC_PINS_MUX(176, 25); | ||
1621 | IRQC_PINS_MUX(177, 26); | ||
1622 | IRQC_PINS_MUX(178, 27); | ||
1623 | IRQC_PINS_MUX(192, 31); | ||
1624 | IRQC_PINS_MUX(193, 32); | ||
1625 | IRQC_PINS_MUX(194, 33); | ||
1626 | IRQC_PINS_MUX(195, 34); | ||
1627 | IRQC_PINS_MUX(196, 35); | ||
1628 | IRQC_PINS_MUX(197, 36); | ||
1629 | IRQC_PINS_MUX(198, 37); | ||
1630 | IRQC_PINS_MUX(199, 38); | ||
1631 | IRQC_PINS_MUX(200, 39); | ||
1632 | IRQC_PINS_MUX(290, 51); | ||
1633 | IRQC_PINS_MUX(296, 52); | ||
1634 | IRQC_PINS_MUX(301, 50); | ||
1635 | IRQC_PINS_MUX(320, 16); | ||
1636 | IRQC_PINS_MUX(321, 17); | ||
1637 | IRQC_PINS_MUX(322, 28); | ||
1638 | IRQC_PINS_MUX(323, 29); | ||
1639 | IRQC_PINS_MUX(324, 30); | ||
1640 | IRQC_PINS_MUX(325, 53); | ||
1641 | IRQC_PINS_MUX(326, 54); | ||
1642 | IRQC_PINS_MUX(327, 55); | ||
1643 | IRQC_PINS_MUX(328, 56); | ||
1644 | IRQC_PINS_MUX(329, 57); | ||
1579 | /* - SCIFA0 ----------------------------------------------------------------- */ | 1645 | /* - SCIFA0 ----------------------------------------------------------------- */ |
1580 | static const unsigned int scifa0_data_pins[] = { | 1646 | static const unsigned int scifa0_data_pins[] = { |
1581 | /* SCIFA0_RXD, SCIFA0_TXD */ | 1647 | /* SCIFA0_RXD, SCIFA0_TXD */ |
@@ -1773,6 +1839,64 @@ static const unsigned int scifb3_ctrl_b_mux[] = { | |||
1773 | }; | 1839 | }; |
1774 | 1840 | ||
1775 | static const struct sh_pfc_pin_group pinmux_groups[] = { | 1841 | static const struct sh_pfc_pin_group pinmux_groups[] = { |
1842 | SH_PFC_PIN_GROUP(irqc_irq0), | ||
1843 | SH_PFC_PIN_GROUP(irqc_irq1), | ||
1844 | SH_PFC_PIN_GROUP(irqc_irq2), | ||
1845 | SH_PFC_PIN_GROUP(irqc_irq3), | ||
1846 | SH_PFC_PIN_GROUP(irqc_irq4), | ||
1847 | SH_PFC_PIN_GROUP(irqc_irq5), | ||
1848 | SH_PFC_PIN_GROUP(irqc_irq6), | ||
1849 | SH_PFC_PIN_GROUP(irqc_irq7), | ||
1850 | SH_PFC_PIN_GROUP(irqc_irq8), | ||
1851 | SH_PFC_PIN_GROUP(irqc_irq9), | ||
1852 | SH_PFC_PIN_GROUP(irqc_irq10), | ||
1853 | SH_PFC_PIN_GROUP(irqc_irq11), | ||
1854 | SH_PFC_PIN_GROUP(irqc_irq12), | ||
1855 | SH_PFC_PIN_GROUP(irqc_irq13), | ||
1856 | SH_PFC_PIN_GROUP(irqc_irq14), | ||
1857 | SH_PFC_PIN_GROUP(irqc_irq15), | ||
1858 | SH_PFC_PIN_GROUP(irqc_irq16), | ||
1859 | SH_PFC_PIN_GROUP(irqc_irq17), | ||
1860 | SH_PFC_PIN_GROUP(irqc_irq18), | ||
1861 | SH_PFC_PIN_GROUP(irqc_irq19), | ||
1862 | SH_PFC_PIN_GROUP(irqc_irq20), | ||
1863 | SH_PFC_PIN_GROUP(irqc_irq21), | ||
1864 | SH_PFC_PIN_GROUP(irqc_irq22), | ||
1865 | SH_PFC_PIN_GROUP(irqc_irq23), | ||
1866 | SH_PFC_PIN_GROUP(irqc_irq24), | ||
1867 | SH_PFC_PIN_GROUP(irqc_irq25), | ||
1868 | SH_PFC_PIN_GROUP(irqc_irq26), | ||
1869 | SH_PFC_PIN_GROUP(irqc_irq27), | ||
1870 | SH_PFC_PIN_GROUP(irqc_irq28), | ||
1871 | SH_PFC_PIN_GROUP(irqc_irq29), | ||
1872 | SH_PFC_PIN_GROUP(irqc_irq30), | ||
1873 | SH_PFC_PIN_GROUP(irqc_irq31), | ||
1874 | SH_PFC_PIN_GROUP(irqc_irq32), | ||
1875 | SH_PFC_PIN_GROUP(irqc_irq33), | ||
1876 | SH_PFC_PIN_GROUP(irqc_irq34), | ||
1877 | SH_PFC_PIN_GROUP(irqc_irq35), | ||
1878 | SH_PFC_PIN_GROUP(irqc_irq36), | ||
1879 | SH_PFC_PIN_GROUP(irqc_irq37), | ||
1880 | SH_PFC_PIN_GROUP(irqc_irq38), | ||
1881 | SH_PFC_PIN_GROUP(irqc_irq39), | ||
1882 | SH_PFC_PIN_GROUP(irqc_irq40), | ||
1883 | SH_PFC_PIN_GROUP(irqc_irq41), | ||
1884 | SH_PFC_PIN_GROUP(irqc_irq42), | ||
1885 | SH_PFC_PIN_GROUP(irqc_irq43), | ||
1886 | SH_PFC_PIN_GROUP(irqc_irq44), | ||
1887 | SH_PFC_PIN_GROUP(irqc_irq45), | ||
1888 | SH_PFC_PIN_GROUP(irqc_irq46), | ||
1889 | SH_PFC_PIN_GROUP(irqc_irq47), | ||
1890 | SH_PFC_PIN_GROUP(irqc_irq48), | ||
1891 | SH_PFC_PIN_GROUP(irqc_irq49), | ||
1892 | SH_PFC_PIN_GROUP(irqc_irq50), | ||
1893 | SH_PFC_PIN_GROUP(irqc_irq51), | ||
1894 | SH_PFC_PIN_GROUP(irqc_irq52), | ||
1895 | SH_PFC_PIN_GROUP(irqc_irq53), | ||
1896 | SH_PFC_PIN_GROUP(irqc_irq54), | ||
1897 | SH_PFC_PIN_GROUP(irqc_irq55), | ||
1898 | SH_PFC_PIN_GROUP(irqc_irq56), | ||
1899 | SH_PFC_PIN_GROUP(irqc_irq57), | ||
1776 | SH_PFC_PIN_GROUP(scifa0_data), | 1900 | SH_PFC_PIN_GROUP(scifa0_data), |
1777 | SH_PFC_PIN_GROUP(scifa0_clk), | 1901 | SH_PFC_PIN_GROUP(scifa0_clk), |
1778 | SH_PFC_PIN_GROUP(scifa0_ctrl), | 1902 | SH_PFC_PIN_GROUP(scifa0_ctrl), |
@@ -1802,6 +1926,67 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
1802 | SH_PFC_PIN_GROUP(scifb3_ctrl_b), | 1926 | SH_PFC_PIN_GROUP(scifb3_ctrl_b), |
1803 | }; | 1927 | }; |
1804 | 1928 | ||
1929 | static const char * const irqc_groups[] = { | ||
1930 | "irqc_irq0", | ||
1931 | "irqc_irq1", | ||
1932 | "irqc_irq2", | ||
1933 | "irqc_irq3", | ||
1934 | "irqc_irq4", | ||
1935 | "irqc_irq5", | ||
1936 | "irqc_irq6", | ||
1937 | "irqc_irq7", | ||
1938 | "irqc_irq8", | ||
1939 | "irqc_irq9", | ||
1940 | "irqc_irq10", | ||
1941 | "irqc_irq11", | ||
1942 | "irqc_irq12", | ||
1943 | "irqc_irq13", | ||
1944 | "irqc_irq14", | ||
1945 | "irqc_irq15", | ||
1946 | "irqc_irq16", | ||
1947 | "irqc_irq17", | ||
1948 | "irqc_irq18", | ||
1949 | "irqc_irq19", | ||
1950 | "irqc_irq20", | ||
1951 | "irqc_irq21", | ||
1952 | "irqc_irq22", | ||
1953 | "irqc_irq23", | ||
1954 | "irqc_irq24", | ||
1955 | "irqc_irq25", | ||
1956 | "irqc_irq26", | ||
1957 | "irqc_irq27", | ||
1958 | "irqc_irq28", | ||
1959 | "irqc_irq29", | ||
1960 | "irqc_irq30", | ||
1961 | "irqc_irq31", | ||
1962 | "irqc_irq32", | ||
1963 | "irqc_irq33", | ||
1964 | "irqc_irq34", | ||
1965 | "irqc_irq35", | ||
1966 | "irqc_irq36", | ||
1967 | "irqc_irq37", | ||
1968 | "irqc_irq38", | ||
1969 | "irqc_irq39", | ||
1970 | "irqc_irq40", | ||
1971 | "irqc_irq41", | ||
1972 | "irqc_irq42", | ||
1973 | "irqc_irq43", | ||
1974 | "irqc_irq44", | ||
1975 | "irqc_irq45", | ||
1976 | "irqc_irq46", | ||
1977 | "irqc_irq47", | ||
1978 | "irqc_irq48", | ||
1979 | "irqc_irq49", | ||
1980 | "irqc_irq50", | ||
1981 | "irqc_irq51", | ||
1982 | "irqc_irq52", | ||
1983 | "irqc_irq53", | ||
1984 | "irqc_irq54", | ||
1985 | "irqc_irq55", | ||
1986 | "irqc_irq56", | ||
1987 | "irqc_irq57", | ||
1988 | }; | ||
1989 | |||
1805 | static const char * const scifa0_groups[] = { | 1990 | static const char * const scifa0_groups[] = { |
1806 | "scifa0_data", | 1991 | "scifa0_data", |
1807 | "scifa0_clk", | 1992 | "scifa0_clk", |
@@ -1848,6 +2033,7 @@ static const char * const scifb3_groups[] = { | |||
1848 | }; | 2033 | }; |
1849 | 2034 | ||
1850 | static const struct sh_pfc_function pinmux_functions[] = { | 2035 | static const struct sh_pfc_function pinmux_functions[] = { |
2036 | SH_PFC_FUNCTION(irqc), | ||
1851 | SH_PFC_FUNCTION(scifa0), | 2037 | SH_PFC_FUNCTION(scifa0), |
1852 | SH_PFC_FUNCTION(scifa1), | 2038 | SH_PFC_FUNCTION(scifa1), |
1853 | SH_PFC_FUNCTION(scifb0), | 2039 | SH_PFC_FUNCTION(scifb0), |