|
@@ -2567,3 +2567,79 @@ static struct pinmux_cfg_reg pinmux_config_regs[] = {
|
|
{ PINMUX_CFG_REG("INOUTSEL6", 0xffc46004, 32, 1) {
|
|
{ PINMUX_CFG_REG("INOUTSEL6", 0xffc46004, 32, 1) {
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
+ 0, 0,
|
|
|
|
+ 0, 0,
|
|
|
|
+ 0, 0,
|
|
|
|
+ GP_6_8_IN, GP_6_8_OUT,
|
|
|
|
+ GP_6_7_IN, GP_6_7_OUT,
|
|
|
|
+ GP_6_6_IN, GP_6_6_OUT,
|
|
|
|
+ GP_6_5_IN, GP_6_5_OUT,
|
|
|
|
+ GP_6_4_IN, GP_6_4_OUT,
|
|
|
|
+ GP_6_3_IN, GP_6_3_OUT,
|
|
|
|
+ GP_6_2_IN, GP_6_2_OUT,
|
|
|
|
+ GP_6_1_IN, GP_6_1_OUT,
|
|
|
|
+ GP_6_0_IN, GP_6_0_OUT, }
|
|
|
|
+ },
|
|
|
|
+ { },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct pinmux_data_reg pinmux_data_regs[] = {
|
|
|
|
+ { PINMUX_DATA_REG("INDT0", 0xffc40008, 32) { GP_INDT(0) } },
|
|
|
|
+ { PINMUX_DATA_REG("INDT1", 0xffc41008, 32) { GP_INDT(1) } },
|
|
|
|
+ { PINMUX_DATA_REG("INDT2", 0xffc42008, 32) { GP_INDT(2) } },
|
|
|
|
+ { PINMUX_DATA_REG("INDT3", 0xffc43008, 32) { GP_INDT(3) } },
|
|
|
|
+ { PINMUX_DATA_REG("INDT4", 0xffc44008, 32) { GP_INDT(4) } },
|
|
|
|
+ { PINMUX_DATA_REG("INDT5", 0xffc45008, 32) { GP_INDT(5) } },
|
|
|
|
+ { PINMUX_DATA_REG("INDT6", 0xffc46008, 32) {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, GP_6_8_DATA,
|
|
|
|
+ GP_6_7_DATA, GP_6_6_DATA, GP_6_5_DATA, GP_6_4_DATA,
|
|
|
|
+ GP_6_3_DATA, GP_6_2_DATA, GP_6_1_DATA, GP_6_0_DATA }
|
|
|
|
+ },
|
|
|
|
+ { },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource r8a7779_pfc_resources[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .start = 0xfffc0000,
|
|
|
|
+ .end = 0xfffc023b,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = 0xffc40000,
|
|
|
|
+ .end = 0xffc46fff,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct pinmux_info r8a7779_pinmux_info = {
|
|
|
|
+ .name = "r8a7779_pfc",
|
|
|
|
+
|
|
|
|
+ .resource = r8a7779_pfc_resources,
|
|
|
|
+ .num_resources = ARRAY_SIZE(r8a7779_pfc_resources),
|
|
|
|
+
|
|
|
|
+ .unlock_reg = 0xfffc0000, /* PMMR */
|
|
|
|
+
|
|
|
|
+ .reserved_id = PINMUX_RESERVED,
|
|
|
|
+ .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
|
|
|
|
+ .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_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_GP_0_0,
|
|
|
|
+ .last_gpio = GPIO_FN_SCK4_B,
|
|
|
|
+
|
|
|
|
+ .gpios = pinmux_gpios,
|
|
|
|
+ .cfg_regs = pinmux_config_regs,
|
|
|
|
+ .data_regs = pinmux_data_regs,
|
|
|
|
+
|
|
|
|
+ .gpio_data = pinmux_data,
|
|
|
|
+ .gpio_data_size = ARRAY_SIZE(pinmux_data),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+void r8a7779_pinmux_init(void)
|
|
|
|
+{
|
|
|
|
+ register_pinmux(&r8a7779_pinmux_info);
|
|
|
|
+}
|