brcm63xx: add pinctrl support
[openwrt/openwrt.git] / target / linux / brcm63xx / dts / bcm6358.dtsi
index e4aecf7970c67ab3f53f42347eaf7c7fe027263f..36b19e7710acca62b4cee3fcf259d6462c699e4a 100644 (file)
@@ -5,8 +5,7 @@
 
        aliases {
                pflash = &pflash;
-               gpio0 = &gpio0;
-               gpio1 = &gpio1;
+               pinctrl = &pinctrl;
                spi0 = &lsspi;
        };
 
                        interrupts = <20>, <21>;
                };
 
-               gpio1: gpio-controller@fffe0080 {
-                       compatible = "brcm,bcm6345-gpio";
-                       reg = <0xfffe0080 4>, <0xfffe0088 4>;
+               pinctrl: pin-controller@fffe0080 {
+                       compatible = "brcm,bcm6358-pinctrl";
+                       reg = <0xfffe0080 0x8>,
+                             <0xfffe0088 0x8>;
+                       reg-names = "dirout", "dat", "mode";
+                       brcm,gpiomode = <&gpiomode>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
 
-                       ngpios = <8>;
-
                        interrupts-extended = <&ext_intc1 0 0>,
                                              <&ext_intc1 1 0>,
                                              <&ext_intc0 0 0>,
                                              <&ext_intc0 1 0>,
                                              <&ext_intc0 2 0>,
                                              <&ext_intc0 3 0>;
-                       interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3",
-                                         "gpio4", "gpio5";
+                       interrupt-names = "gpio32", "gpio33", "gpio34", "gpio35",
+                                         "gpio36", "gpio37";
+
+                       pinctrl_ebi_cs: ebi_cs {
+                               function = "ebi_cs";
+                               groups = "ebi_cs_grp";
+                       };
+
+                       pinctrl_uart1: uart1 {
+                               function = "uart1";
+                               groups = "uart1_grp";
+                       };
+
+                       pinctrl_serial_led: serial_led {
+                               function = "serial_led";
+                               groups = "serial_led_grp";
+                       };
+
+                       pinctrl_legacy_led: legacy_led {
+                               function = "legacy_led";
+                               groups = "legacy_led_grp";
+                       };
+
+                       pinctrl_led: led {
+                               function = "led";
+                               groups = "led_grp";
+                       };
+
+                       pinctrl_spi_cs_23: spi_cs {
+                               function = "spi_cs";
+                               groups = "spi_cs_grp";
+                       };
+
+                       pinctrl_utopia: utopia {
+                               function = "utopia";
+                               groups = "utopia_grp";
+                       };
+
+                       pinctrl_pwm_syn_clk: pwm_syn_clk {
+                               function = "pwm_syn_clk";
+                               groups = "pwm_syn_clk_grp";
+                       };
+
+                       pinctrl_sys_irq: sys_irq {
+                               function = "sys_irq";
+                               groups = "sys_irq_grp";
+                       };
                };
 
-               gpio0: gpio-controller@fffe0084 {
-                       compatible = "brcm,bcm6345-gpio";
-                       reg = <0xfffe0084 4>, <0xfffe008c 4>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
+               gpiomode: gpiomode@fffe0098 {
+                       compatible = "brcm,bcm6358-gpiomode", "syscon";
+                       reg = <0xfffe0098 0x4>;
                };
 
                lsspi: spi@fffe0800 {