|
@@ -2713,3 +2713,91 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
|
|
|
{ PINMUX_DATA_REG("PORTU287_256DR", 0xe6057004, 32) {
|
|
|
0, 0, 0, 0,
|
|
|
0, PORT282_DATA, PORT281_DATA, PORT280_DATA,
|
|
|
+ PORT279_DATA, PORT278_DATA, PORT277_DATA, PORT276_DATA,
|
|
|
+ PORT275_DATA, PORT274_DATA, PORT273_DATA, PORT272_DATA,
|
|
|
+ PORT271_DATA, PORT270_DATA, PORT269_DATA, PORT268_DATA,
|
|
|
+ PORT267_DATA, PORT266_DATA, PORT265_DATA, PORT264_DATA,
|
|
|
+ PORT263_DATA, PORT262_DATA, PORT261_DATA, PORT260_DATA,
|
|
|
+ PORT259_DATA, PORT258_DATA, PORT257_DATA, PORT256_DATA }
|
|
|
+ },
|
|
|
+ { PINMUX_DATA_REG("PORTR319_288DR", 0xe6056010, 32) {
|
|
|
+ 0, 0, 0, 0,
|
|
|
+ 0, 0, 0, 0,
|
|
|
+ 0, 0, PORT309_DATA, PORT308_DATA,
|
|
|
+ PORT307_DATA, PORT306_DATA, PORT305_DATA, PORT304_DATA,
|
|
|
+ PORT303_DATA, PORT302_DATA, PORT301_DATA, PORT300_DATA,
|
|
|
+ PORT299_DATA, PORT298_DATA, PORT297_DATA, PORT296_DATA,
|
|
|
+ PORT295_DATA, PORT294_DATA, PORT293_DATA, PORT292_DATA,
|
|
|
+ PORT291_DATA, PORT290_DATA, PORT289_DATA, PORT288_DATA }
|
|
|
+ },
|
|
|
+ { },
|
|
|
+};
|
|
|
+
|
|
|
+/* IRQ pins through INTCS with IRQ0->15 from 0x200 and IRQ16-31 from 0x3200 */
|
|
|
+#define EXT_IRQ16L(n) intcs_evt2irq(0x200 + ((n) << 5))
|
|
|
+#define EXT_IRQ16H(n) intcs_evt2irq(0x3200 + ((n - 16) << 5))
|
|
|
+
|
|
|
+static struct pinmux_irq pinmux_irqs[] = {
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(19), PORT9_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(1), PORT10_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(0), PORT11_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(18), PORT13_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(20), PORT14_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(21), PORT15_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(31), PORT26_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(30), PORT27_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(29), PORT28_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(22), PORT40_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(23), PORT53_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(10), PORT54_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(9), PORT56_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(26), PORT115_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(27), PORT116_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(28), PORT117_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(24), PORT118_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(6), PORT147_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(2), PORT149_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(7), PORT150_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(12), PORT156_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(4), PORT159_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(25), PORT164_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(8), PORT223_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(3), PORT224_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(5), PORT227_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(17), PORT234_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(11), PORT238_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(13), PORT239_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16H(16), PORT249_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(14), PORT251_FN0),
|
|
|
+ PINMUX_IRQ(EXT_IRQ16L(9), PORT308_FN0),
|
|
|
+};
|
|
|
+
|
|
|
+static struct pinmux_info sh73a0_pinmux_info = {
|
|
|
+ .name = "sh73a0_pfc",
|
|
|
+ .reserved_id = PINMUX_RESERVED,
|
|
|
+ .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
|
|
|
+ .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
|
|
|
+ .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
|
|
|
+ .input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END },
|
|
|
+ .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
|
|
|
+ .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
|
|
|
+ .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
|
|
|
+
|
|
|
+ .first_gpio = GPIO_PORT0,
|
|
|
+ .last_gpio = GPIO_FN_FSIAISLD_PU,
|
|
|
+
|
|
|
+ .gpios = pinmux_gpios,
|
|
|
+ .cfg_regs = pinmux_config_regs,
|
|
|
+ .data_regs = pinmux_data_regs,
|
|
|
+
|
|
|
+ .gpio_data = pinmux_data,
|
|
|
+ .gpio_data_size = ARRAY_SIZE(pinmux_data),
|
|
|
+
|
|
|
+ .gpio_irq = pinmux_irqs,
|
|
|
+ .gpio_irq_size = ARRAY_SIZE(pinmux_irqs),
|
|
|
+};
|
|
|
+
|
|
|
+void sh73a0_pinmux_init(void)
|
|
|
+{
|
|
|
+ register_pinmux(&sh73a0_pinmux_info);
|
|
|
+}
|