apm821xx: WNDR4700: enumerate PCIe in device-tree
[openwrt/openwrt.git] / target / linux / apm821xx / dts / netgear-wndr4700.dts
index 8972d2b030cf15c51b2065089b9267d6c62b7bd4..a1c23896a146196bd5f40cdc31e6b13b60782d73 100644 (file)
                usb-blue {
                        label = "wndr4700:blue:usb";
                        gpios = <&GPIO0 10 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&usb2_port 1>, <&usb2_port 2>,
+                                         <&usb3_port 1>, <&usb3_port 2>;
+                       linux,default-trigger = "usbport";
                };
 
                logo-white {
                wlan-blue {
                        label = "wndr4700:blue:wlan";
                        gpios = <&GPIO0 18 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tpt";
                };
        };
 };
 
 &PCIE0 {
        status = "okay";
+
+       /*
+        * relevant lspci topology:
+        *
+        *      -+-[0000:40]---00.0-[41-7f]----00.0-[42-45]--+-02.0-[43]----00.0
+        *                                                   +-03.0-[44]----00.0
+        *                                                   \-04.0-[45]----00.0
+        *
+        */
+
+       bridge@64,0 {
+               reg = <0x00400000 0 0 0 0>;
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
+
+               bridge@65,0 {
+                       /* IDT PES4T4 PCI Express Switch */
+                       compatible = "pci111d,803a";
+                       reg = <0x00410000 0 0 0 0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       bridge@66,2 {
+                               compatible = "pci111d,803a";
+                               reg = <0x00421000 0 0 0 0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               wifi0: wifi@67,0 {
+                                       /* Atheros AR9380 5GHz */
+                                       compatible = "pci168c,0030";
+                                       reg = <0x00430000 0 0 0 0>;
+                                       qca,no-eeprom;
+                                       /* wifi CAL & MAC is stored in nvram */
+
+                                       /*
+                                        * Because this was such a pain.
+                                        * Here's the full device path:
+                                        * pci0000:40/0000:40:00.0/0000:41:00.0/0000:42:02.0/0000:43:00.0
+                                        */
+                               };
+                       };
+
+                       bridge@66,3 {
+                               compatible = "pci111d,803a";
+                               reg = <0x00421800 0 0 0 0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               wifi1: wifi@68,0 {
+                                       /* Atheros AR9381 2.4GHz */
+                                       compatible = "pci168c,0033";
+                                       reg = <0x00440000 0 0 0 0>;
+                                       qca,no-eeprom;
+                                       /* wifi CAL & MAC is stored in nvram */
+                               };
+                       };
+
+                       bridge@66,4 {
+                               compatible = "pci111d,803a";
+                               reg = <0x00422000 0 0 0 0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               usb1: usb@69,0 {
+                                       /* Renesas uPD720202 */
+                                       compatible = "pci1912,0015";
+                                       reg = <0x00450000 0 0 0 0>;
+
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       usb2_port: port@1 {
+                                               reg = <1>;
+                                               #trigger-source-cells = <1>;
+                                       };
+
+                                       usb3_port: port@2 {
+                                               reg = <2>;
+                                               #trigger-source-cells = <1>;
+                                       };
+                               };
+                       };
+               };
+       };
 };
 
 &MSI {