brcm63xx: add pinctrl support
[openwrt/openwrt.git] / target / linux / brcm63xx / dts / bcm6362.dtsi
index 2085fd53bf6b9d87a808f3f8aaa8637d3ae21713..11edf71aa90792370d28f66f754425865f4e03f3 100644 (file)
@@ -4,8 +4,7 @@
        compatible = "brcm,bcm6362";
 
        aliases {
-               gpio0 = &gpio0;
-               gpio1 = &gpio1;
+               pinctrl = &pinctrl;
                spi0 = &lsspi;
                spi1 = &hsspi;
        };
                        interrupts = <2>, <3>;
                };
 
-               gpio1: gpio-controller@10000080 {
-                       compatible = "brcm,bcm6345-gpio";
-                       reg = <0x10000080 4>, <0x10000088 4>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       ngpios = <16>;
-               };
-
-               gpio0: gpio-controller@10000084 {
-                       compatible = "brcm,bcm6345-gpio";
-                       reg = <0x10000084 4>, <0x1000008c 4>;
+               pinctrl: pin-controller@10000080 {
+                       compatible = "brcm,bcm6362-pinctrl";
+                       reg = <0x10000080 0x8>,
+                             <0x10000088 0x8>,
+                             <0x10000090 0x4>,
+                             <0x10000098 0x4>,
+                             <0x1000009c 0x4>,
+                             <0x100000b8 0x4>;
+                       reg-names = "dirout", "dat", "led",
+                                   "mode", "ctrl", "basemode";
 
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupts = <0 0>, <1 0>, <2 0>, <3 0>;
                        interrupt-names = "gpio24", "gpio25",
                                          "gpio26", "gpio27";
+
+                       pinctrl_usb_device_led: usb_device_led {
+                               function = "usb_device_led";
+                               pins = "gpio0";
+                       };
+
+                       pinctrl_sys_irq: sys_irq {
+                               function = "sys_irq";
+                               pins = "gpio1";
+                       };
+
+                       pinctrl_serial_led: serial_led {
+                               pinctrl_serial_led_clk: serial_led_clk {
+                                       function = "serial_led_clk";
+                                       pins = "gpio2";
+                               };
+
+                               pinctrl_serial_led_data: serial_led_data {
+                                       function = "serial_led_data";
+                                       pins = "gpio3";
+                               };
+                       };
+
+                       pinctrl_robosw_led_data: robosw_led_data {
+                               function = "robosw_led_data";
+                               pins = "gpio4";
+                       };
+
+                       pinctrl_robosw_led_clk: robosw_led_clk {
+                               function = "robosw_led_clk";
+                               pins = "gpio5";
+                       };
+
+                       pinctrl_robosw_led0: robosw_led0 {
+                               function = "robosw_led0";
+                               pins = "gpio6";
+                       };
+
+                       pinctrl_robosw_led1: robosw_led1 {
+                               function = "robosw_led1";
+                               pins = "gpio7";
+                       };
+
+                       pinctrl_inet_led: inet_led {
+                               function = "inet_led";
+                               pins = "gpio8";
+                       };
+
+                       pinctrl_spi_cs2: spi_cs2 {
+                               function = "spi_cs2";
+                               pins = "gpio9";
+                       };
+
+                       pinctrl_spi_cs3: spi_cs3 {
+                               function = "spi_cs3";
+                               pins = "gpio10";
+                       };
+
+                       pinctrl_ntr_pulse: ntr_pulse {
+                               function = "ntr_pulse";
+                               pins = "gpio11";
+                       };
+
+                       pinctrl_uart1_scts: uart1_scts {
+                               function = "uart1_scts";
+                               pins = "gpio12";
+                       };
+
+                       pinctrl_uart1_srts: uart1_srts {
+                               function = "uart1_srts";
+                               pins = "gpio13";
+                       };
+
+
+                       pinctrl_uart1: uart1 {
+                               pinctrl_uart1_sdin: uart1_sdin {
+                                       function = "uart1_sdin";
+                                       pins = "gpio14";
+                               };
+
+                               pinctrl_uart1_sdout: uart1_sdout {
+                                       function = "uart1_sdout";
+                                       pins = "gpio15";
+                               };
+                       };
+
+                       pinctrl_adsl_spi: adsl_spi {
+                               pinctrl_adsl_spi_miso: adsl_spi_miso {
+                                       function = "adsl_spi_miso";
+                                       pins = "gpio16";
+                               };
+
+                               pinctrl_adsl_spi_mosi: adsl_spi_mosi {
+                                       function = "adsl_spi_mosi";
+                                       pins = "gpio17";
+                               };
+
+                               pinctrl_adsl_spi_clk: adsl_spi_clk {
+                                       function = "adsl_spi_clk";
+                                       pins = "gpio18";
+                               };
+
+                               pinctrl_adsl_spi_cs: adsl_spi_cs {
+                                       function = "adsl_spi_cs";
+                                       pins = "gpio19";
+                               };
+                       };
+
+                       pinctrl_ephy0_led: ephy0_led {
+                               function = "ephy0_led";
+                               pins = "gpio20";
+                       };
+
+                       pinctrl_ephy1_led: ephy1_led {
+                               function = "ephy1_led";
+                               pins = "gpio21";
+                       };
+
+                       pinctrl_ephy2_led: ephy2_led {
+                               function = "ephy2_led";
+                               pins = "gpio22";
+                       };
+
+                       pinctrl_ephy3_led: ephy3_led {
+                               function = "ephy3_led";
+                               pins = "gpio23";
+                       };
+
+                       pinctrl_ext_irq0: ext_irq0 {
+                               function = "ext_irq0";
+                               pins = "gpio24";
+                       };
+
+                       pinctrl_ext_irq1: ext_irq1 {
+                               function = "ext_irq1";
+                               pins = "gpio25";
+                       };
+
+                       pinctrl_ext_irq2: ext_irq2 {
+                               function = "ext_irq2";
+                               pins = "gpio26";
+                       };
+
+                       pinctrl_ext_irq3: ext_irq3 {
+                               function = "ext_irq3";
+                               pins = "gpio27";
+                       };
+
+                       pinctrl_nand: nand {
+                               function = "nand";
+                               group = "nand_grp";
+                       };
                };
 
                lsspi: spi@10000800 {