From patchwork Wed Dec 10 23:53:55 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 419906 X-Patchwork-Delegate: jogo@openwrt.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id CD1BC1400E7 for ; Thu, 11 Dec 2014 10:54:06 +1100 (AEDT) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id CA92128C20D; Thu, 11 Dec 2014 00:52:15 +0100 (CET) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 7DBB928C20C for ; Thu, 11 Dec 2014 00:52:13 +0100 (CET) X-policyd-weight: using cached result; rate:hard: -8.5 Received: from mail-wg0-f46.google.com (mail-wg0-f46.google.com [74.125.82.46]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Thu, 11 Dec 2014 00:52:13 +0100 (CET) Received: by mail-wg0-f46.google.com with SMTP id x13so5073668wgg.33 for ; Wed, 10 Dec 2014 15:53:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=Dwc56m/lFvcCsY87HDETLimxJbLuWaOwRqf8Om9jKs0=; b=P/JRGHGdAELN/GOL/IToyJPzVaJUViaWu3AL2BuXqRM9Gm9fFhIxWn+X+ReZ+EQCiV /fy4ImMv6dGhSMrxJyPr+I+MNa6PnqxTJhuO5X+4zwf++prJBDLyXf9m/TcorfnQz8J/ Mw03AUmS17HA8UtN592hGB5Su32u0FwV19h+UXu74Br+XOoW7SK3zNmB97MHhDCQCIyt zoaW8kJhPxGzWiBe06pwBXuwYOg09kt1EBMKv2602iS1XmmktqeyVbEaVJ8sVxApVjvC 2fouplgIN/cUi5z0+ZOuFxJCyjp+NyXQG30tAi/D3uQq5V7epuBWvVeWMNfKS8qz2x1f JoQA== X-Received: by 10.180.218.39 with SMTP id pd7mr17584951wic.21.1418255638131; Wed, 10 Dec 2014 15:53:58 -0800 (PST) Received: from [192.168.1.10] (148.Red-83-46-232.dynamicIP.rima-tde.net. [83.46.232.148]) by mx.google.com with ESMTPSA id xt9sm7726275wjc.42.2014.12.10.15.53.56 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 10 Dec 2014 15:53:57 -0800 (PST) Message-ID: <5488DD13.7010703@gmail.com> Date: Thu, 11 Dec 2014 00:53:55 +0100 From: =?ISO-8859-1?Q?=C1lvaro_Fern=E1ndez_Rojas?= User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: OpenWrt Development List , Jonas Gorski References: <5488DC9C.3000504@gmail.com> In-Reply-To: <5488DC9C.3000504@gmail.com> Subject: [OpenWrt-Devel] [PATCH 3/3] brcm63xx: add GPIOs to DT X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Signed-off-by: Álvaro Fernández Rojas diff --git a/target/linux/brcm63xx/dts/a226g.dts b/target/linux/brcm63xx/dts/a226g.dts index 9aff81b..0c26c7b 100644 --- a/target/linux/brcm63xx/dts/a226g.dts +++ b/target/linux/brcm63xx/dts/a226g.dts @@ -5,6 +5,83 @@ / { model = "Pirelli A226G"; compatible = "pirelli,a226g", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + wps { + label = "wps"; + gpios = <&gpio0 34 1>; + linux,code = <0x211>; + }; + reset { + label = "reset"; + gpios = <&gpio0 37 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + voip_red { + label = "DWV-S0:red:VoIP"; + gpios = <&gpio0 0 1>; + }; + eth_red { + label = "DWV-S0:red:ethernet"; + gpios = <&gpio0 1 1>; + }; + dsl_green { + label = "DWV-S0:green:ADSL"; + gpios = <&gpio0 2 1>; + }; + usb_green { + label = "DWV-S0:green:USB"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "DWV-S0:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "DWV-S0:red:power"; + gpios = <&gpio0 5 1>; + }; + inet_red { + label = "DWV-S0:red:internet"; + gpios = <&gpio0 6 1>; + }; + inet_green { + label = "DWV-S0:green:internet"; + gpios = <&gpio0 7 1>; + }; + eth_green { + label = "DWV-S0:green:ethernet"; + gpios = <&gpio0 8 1>; + }; + voip_green { + label = "DWV-S0:green:VoIP"; + gpios = <&gpio0 9 1>; + }; + wifi_red { + label = "DWV-S0:red:wifi"; + gpios = <&gpio0 10 1>; + }; + usb_red { + label = "DWV-S0:red:USB"; + gpios = <&gpio0 11 1>; + }; + dsl_red { + label = "DWV-S0:red:ADSL"; + gpios = <&gpio0 12 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/a226m-fwb.dts b/target/linux/brcm63xx/dts/a226m-fwb.dts index 1abf870..4963c90 100644 --- a/target/linux/brcm63xx/dts/a226m-fwb.dts +++ b/target/linux/brcm63xx/dts/a226m-fwb.dts @@ -5,6 +5,83 @@ / { model = "Pirelli A226M-FWB"; compatible = "pirelli,a226m-fwb", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + wps { + label = "wps"; + gpios = <&gpio0 34 1>; + linux,code = <0x211>; + }; + reset { + label = "reset"; + gpios = <&gpio0 37 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + voip_red { + label = "DWV-S0:red:VoIP"; + gpios = <&gpio0 0 1>; + }; + eth_red { + label = "DWV-S0:red:ethernet"; + gpios = <&gpio0 1 1>; + }; + dsl_green { + label = "DWV-S0:green:ADSL"; + gpios = <&gpio0 2 1>; + }; + usb_green { + label = "DWV-S0:green:USB"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "DWV-S0:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "DWV-S0:red:power"; + gpios = <&gpio0 5 1>; + }; + inet_red { + label = "DWV-S0:red:internet"; + gpios = <&gpio0 6 1>; + }; + inet_green { + label = "DWV-S0:green:internet"; + gpios = <&gpio0 7 1>; + }; + eth_green { + label = "DWV-S0:green:ethernet"; + gpios = <&gpio0 8 1>; + }; + voip_green { + label = "DWV-S0:green:VoIP"; + gpios = <&gpio0 9 1>; + }; + wifi_red { + label = "DWV-S0:red:wifi"; + gpios = <&gpio0 10 1>; + }; + usb_red { + label = "DWV-S0:red:USB"; + gpios = <&gpio0 11 1>; + }; + dsl_red { + label = "DWV-S0:red:ADSL"; + gpios = <&gpio0 12 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/a226m.dts b/target/linux/brcm63xx/dts/a226m.dts index ba6382e..1581a6c 100644 --- a/target/linux/brcm63xx/dts/a226m.dts +++ b/target/linux/brcm63xx/dts/a226m.dts @@ -5,6 +5,83 @@ / { model = "Pirelli A226M"; compatible = "pirelli,a226m", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + wps { + label = "wps"; + gpios = <&gpio0 34 1>; + linux,code = <0x211>; + }; + reset { + label = "reset"; + gpios = <&gpio0 37 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + voip_red { + label = "DWV-S0:red:VoIP"; + gpios = <&gpio0 0 1>; + }; + eth_red { + label = "DWV-S0:red:ethernet"; + gpios = <&gpio0 1 1>; + }; + dsl_green { + label = "DWV-S0:green:ADSL"; + gpios = <&gpio0 2 1>; + }; + usb_green { + label = "DWV-S0:green:USB"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "DWV-S0:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "DWV-S0:red:power"; + gpios = <&gpio0 5 1>; + }; + inet_red { + label = "DWV-S0:red:internet"; + gpios = <&gpio0 6 1>; + }; + inet_green { + label = "DWV-S0:green:internet"; + gpios = <&gpio0 7 1>; + }; + eth_green { + label = "DWV-S0:green:ethernet"; + gpios = <&gpio0 8 1>; + }; + voip_green { + label = "DWV-S0:green:VoIP"; + gpios = <&gpio0 9 1>; + }; + wifi_red { + label = "DWV-S0:red:wifi"; + gpios = <&gpio0 10 1>; + }; + usb_red { + label = "DWV-S0:red:USB"; + gpios = <&gpio0 11 1>; + }; + dsl_red { + label = "DWV-S0:red:ADSL"; + gpios = <&gpio0 12 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/a4001n.dts b/target/linux/brcm63xx/dts/a4001n.dts index 011fbf4..1f8eaf6 100644 --- a/target/linux/brcm63xx/dts/a4001n.dts +++ b/target/linux/brcm63xx/dts/a4001n.dts @@ -5,4 +5,49 @@ / { model = "ADB P.DG A4001N"; compatible = "adb,a4001n", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 24 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_red { + label = "A4001N:red:inet"; + gpios = <&gpio0 1 0>; + }; + power_red { + label = "A4001N:red:power"; + gpios = <&gpio0 4 0>; + }; + power_green { + label = "A4001N:green:power"; + gpios = <&gpio0 8 0>; + default-state = "on"; + }; + usb_green { + label = "A4001N:green:usb"; + gpios = <&gpio0 10 1>; + }; + dsl_green { + label = "A4001N:green:dsl"; + gpios = <&gpio0 11 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/a4001n1.dts b/target/linux/brcm63xx/dts/a4001n1.dts index 2bdd201..d45210f 100644 --- a/target/linux/brcm63xx/dts/a4001n1.dts +++ b/target/linux/brcm63xx/dts/a4001n1.dts @@ -5,4 +5,77 @@ / { model = "ADB P.DG A4001N1"; compatible = "adb,a4001n1", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = <0x198>; + }; + wps { + label = "wlan"; + gpios = <&gpio0 24 1>; + linux,code = <0xee>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_red { + label = "A4001N1:red:inet"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "A4001N1:green:ppp"; + gpios = <&gpio0 3 1>; + }; + power_red { + label = "A4001N1:red:power"; + gpios = <&gpio0 4 1>; + }; + ppp_red { + label = "A4001N1:red:ppp"; + gpios = <&gpio0 5 1>; + }; + usb_green { + label = "A4001N1:green:3g"; + gpios = <&gpio0 6 1>; + }; + usb_red { + label = "A4001N1:red:3g"; + gpios = <&gpio0 7 1>; + }; + power_green { + label = "A4001N1:green:power"; + gpios = <&gpio0 8 1>; + default-state = "on"; + }; + wlan_green { + label = "A4001N1:green:wlan"; + gpios = <&gpio0 9 1>; + }; + wlan_red { + label = "A4001N1:red:wlan"; + gpios = <&gpio0 10 1>; + }; + inet_green { + label = "A4001N1:green:inet"; + gpios = <&gpio0 11 1>; + }; + eth_red { + label = "A4001N1:red:eth"; + gpios = <&gpio0 20 1>; + }; + eth_green { + label = "A4001N1:green:eth"; + gpios = <&gpio0 31 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/agpf-s0.dts b/target/linux/brcm63xx/dts/agpf-s0.dts index 9d66b89..3aa4e05 100644 --- a/target/linux/brcm63xx/dts/agpf-s0.dts +++ b/target/linux/brcm63xx/dts/agpf-s0.dts @@ -5,6 +5,87 @@ / { model = "Pirelli Alice Gate AGPF-S0"; compatible = "pirelli,agpf-s0", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + wps { + label = "wps"; + gpios = <&gpio0 34 1>; + linux,code = <0x211>; + }; + reset { + label = "reset"; + gpios = <&gpio0 37 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "AGPF-S0:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "AGPF-S0:red:power"; + gpios = <&gpio0 5 1>; + }; + service_green { + label = "AGPF-S0:green:service"; + gpios = <&gpio0 6 1>; + }; + service_red { + label = "AGPF-S0:red:service"; + gpios = <&gpio0 7 1>; + }; + dsl_green { + label = "AGPF-S0:green:adsl"; + gpios = <&gpio0 9 1>; + }; + dsl_red { + label = "AGPF-S0:red:adsl"; + gpios = <&gpio0 10 1>; + }; + wifi_green { + label = "AGPF-S0:green:wifi"; + gpios = <&gpio0 22 1>; + }; + wifi_red { + label = "AGPF-S0:red:wifi"; + gpios = <&gpio0 23 1>; + }; + inet_red { + label = "AGPF-S0:red:internet"; + gpios = <&gpio0 24 1>; + }; + inet_green { + label = "AGPF-S0:green:internet"; + gpios = <&gpio0 25 1>; + }; + usr1_green { + label = "AGPF-S0:green:usr1"; + gpios = <&gpio0 26 1>; + }; + usr1_red { + label = "AGPF-S0:red:usr1"; + gpios = <&gpio0 27 1>; + }; + usr2_green { + label = "AGPF-S0:green:usr2"; + gpios = <&gpio0 29 1>; + }; + usr2_red { + label = "AGPF-S0:red:usr2"; + gpios = <&gpio0 30 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/ar-5381u.dts b/target/linux/brcm63xx/dts/ar-5381u.dts index 812108a..d5f728a 100644 --- a/target/linux/brcm63xx/dts/ar-5381u.dts +++ b/target/linux/brcm63xx/dts/ar-5381u.dts @@ -5,4 +5,36 @@ / { model = "Comtrend AR-5381u"; compatible = "comtrend,ar-5381u", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + alarm_red { + label = "AR-5381u:red:alarm"; + gpios = <&gpio0 2 1>; + }; + inet_green { + label = "AR-5381u:green:inet"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "AR-5381u:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/ar-5387un.dts b/target/linux/brcm63xx/dts/ar-5387un.dts index d24a655..a8883e2 100644 --- a/target/linux/brcm63xx/dts/ar-5387un.dts +++ b/target/linux/brcm63xx/dts/ar-5387un.dts @@ -5,4 +5,44 @@ / { model = "Comtrend AR-5387un"; compatible = "comtrend,ar-5387un", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_red { + label = "AR-5387un:red:inet"; + gpios = <&gpio0 1 0>; + }; + power_red { + label = "AR-5387un:red:power"; + gpios = <&gpio0 4 0>; + }; + inet_green { + label = "AR-5387un:green:inet"; + gpios = <&gpio0 7 0>; + }; + power_green { + label = "AR-5387un:green:power"; + gpios = <&gpio0 8 0>; + default-state = "on"; + }; + dsl_green { + label = "AR-5387un:green:dsl"; + gpios = <&gpio0 11 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/ar1004g.dts b/target/linux/brcm63xx/dts/ar1004g.dts index c5bea28a..09396f4 100644 --- a/target/linux/brcm63xx/dts/ar1004g.dts +++ b/target/linux/brcm63xx/dts/ar1004g.dts @@ -5,4 +5,36 @@ / { model = "ASMAX AR 1004g"; compatible = "asmax,ar1004g", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "AR1004G:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + inet_green { + label = "AR1004G:green:inet"; + gpios = <&gpio0 3 1>; + }; + power_red { + label = "AR1004G:red:power"; + gpios = <&gpio0 6 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm6318.dtsi b/target/linux/brcm63xx/dts/bcm6318.dtsi index 97bdea7..f40a6ed 100644 --- a/target/linux/brcm63xx/dts/bcm6318.dtsi +++ b/target/linux/brcm63xx/dts/bcm6318.dtsi @@ -3,6 +3,10 @@ #size-cells = <1>; compatible = "brcm,bcm6318"; + aliases { + gpio0 = &gpio0; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -51,5 +55,15 @@ interrupt-parent = <&cpu_intc>; interrupts = <2>; }; + + gpio0: gpio@10000080 { + compatible = "brcm,bcm6345-gpio"; + reg = <0x10000080 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <50>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm63268.dtsi b/target/linux/brcm63xx/dts/bcm63268.dtsi index bc80d70..3dd702a 100644 --- a/target/linux/brcm63xx/dts/bcm63268.dtsi +++ b/target/linux/brcm63xx/dts/bcm63268.dtsi @@ -3,6 +3,10 @@ #size-cells = <1>; compatible = "brcm,bcm63268"; + aliases { + gpio0 = &gpio0; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -58,5 +62,15 @@ interrupt-parent = <&cpu_intc>; interrupts = <2>, <3>; }; + + gpio0: gpio@100000c0 { + compatible = "brcm,bcm6345-gpio"; + reg = <0x100000c0 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <52>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6328.dtsi b/target/linux/brcm63xx/dts/bcm6328.dtsi index 53f96ff..4a483fd 100644 --- a/target/linux/brcm63xx/dts/bcm6328.dtsi +++ b/target/linux/brcm63xx/dts/bcm6328.dtsi @@ -3,6 +3,10 @@ #size-cells = <1>; compatible = "brcm,bcm6328"; + aliases { + gpio0 = &gpio0; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -51,5 +55,15 @@ interrupt-parent = <&cpu_intc>; interrupts = <2>; }; + + gpio0: gpio@10000080 { + compatible = "brcm,bcm6345-gpio"; + reg = <0x10000080 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <32>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6338.dtsi b/target/linux/brcm63xx/dts/bcm6338.dtsi index c1980f4..003233a 100644 --- a/target/linux/brcm63xx/dts/bcm6338.dtsi +++ b/target/linux/brcm63xx/dts/bcm6338.dtsi @@ -5,6 +5,7 @@ aliases { pflash = &pflash; + gpio0 = &gpio0; }; cpus { @@ -65,5 +66,15 @@ interrupt-parent = <&cpu_intc>; interrupts = <3>, <4>, <5>, <6>; }; + + gpio0: gpio@fffe0400 { + compatible = "brcm,bcm6345-gpio"; + reg = <0xfffe0400 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <8>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6345.dtsi b/target/linux/brcm63xx/dts/bcm6345.dtsi index e8e7016..4fdd9c6 100644 --- a/target/linux/brcm63xx/dts/bcm6345.dtsi +++ b/target/linux/brcm63xx/dts/bcm6345.dtsi @@ -5,6 +5,7 @@ aliases { pflash = &pflash; + gpio0 = &gpio0; }; cpus { @@ -65,5 +66,15 @@ interrupt-parent = <&cpu_intc>; interrupts = <3>, <4>, <5>, <6>; }; + + gpio0: gpio@fffe0400 { + compatible = "brcm,bcm6345-gpio"; + reg = <0xfffe0400 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <16>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 0c 08 ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6348.dtsi b/target/linux/brcm63xx/dts/bcm6348.dtsi index 7dd423b..df6f069 100644 --- a/target/linux/brcm63xx/dts/bcm6348.dtsi +++ b/target/linux/brcm63xx/dts/bcm6348.dtsi @@ -5,6 +5,7 @@ aliases { pflash = &pflash; + gpio0 = &gpio0; }; cpus { @@ -67,5 +68,15 @@ brcm,field-width = <5>; }; + + gpio0: gpio@fffe0400 { + compatible = "brcm,bcm6345-gpio"; + reg = <0xfffe0400 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <37>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6358.dtsi b/target/linux/brcm63xx/dts/bcm6358.dtsi index 7217b8d..47b3491 100644 --- a/target/linux/brcm63xx/dts/bcm6358.dtsi +++ b/target/linux/brcm63xx/dts/bcm6358.dtsi @@ -5,6 +5,7 @@ aliases { pflash = &pflash; + gpio0 = &gpio0; }; cpus { @@ -83,5 +84,15 @@ interrupt-parent = <&periph_intc>; interrupts = <20>, <21>; }; + + gpio0: gpio@fffe0080 { + compatible = "brcm,bcm6345-gpio"; + reg = <0xfffe0080 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <40>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6362.dtsi b/target/linux/brcm63xx/dts/bcm6362.dtsi index 4e2e41d..5b905fb 100644 --- a/target/linux/brcm63xx/dts/bcm6362.dtsi +++ b/target/linux/brcm63xx/dts/bcm6362.dtsi @@ -3,6 +3,10 @@ #size-cells = <1>; compatible = "brcm,bcm6362"; + aliases { + gpio0 = &gpio0; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -58,5 +62,15 @@ interrupt-parent = <&cpu_intc>; interrupts = <2>, <3>; }; + + gpio0: gpio@10000080 { + compatible = "brcm,bcm6345-gpio"; + reg = <0x10000080 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <48>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; }; diff --git a/target/linux/brcm63xx/dts/bcm6368.dtsi b/target/linux/brcm63xx/dts/bcm6368.dtsi index 27b9f62..6065780 100644 --- a/target/linux/brcm63xx/dts/bcm6368.dtsi +++ b/target/linux/brcm63xx/dts/bcm6368.dtsi @@ -5,6 +5,7 @@ aliases { pflash = &pflash; + gpio0 = &gpio0; }; cpus { @@ -73,6 +74,16 @@ interrupt-parent = <&cpu_intc>; interrupts = <2>, <3>; }; + + gpio0: gpio@10000080 { + compatible = "brcm,bcm6345-gpio"; + reg = <0x10000080 0x80>; + gpio-controller; + #gpio-cells = <2>; + bcm6345,num-gpios = <38>; + bcm6345,gpio-base = <0>; + bcm6345,register-map = [ 00 04 08 0c ]; + }; }; pflash: nor@18000000 { diff --git a/target/linux/brcm63xx/dts/bcm963281TAN.dts b/target/linux/brcm63xx/dts/bcm963281TAN.dts index be69997..f257125 100644 --- a/target/linux/brcm63xx/dts/bcm963281TAN.dts +++ b/target/linux/brcm63xx/dts/bcm963281TAN.dts @@ -5,4 +5,34 @@ / { model = "Broadcom bcm963281TAN reference board"; compatible = "brcm,bcm963281TAN", "brcm,bcm6328"; + + gpio-leds { + compatible = "gpio-leds"; + + inet { + label = "963281TAN::internet"; + gpios = <&gpio0 1 1>; + }; + power { + label = "963281TAN::power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + inet_fail { + label = "963281TAN::internet-fail"; + gpios = <&gpio0 7 1>; + }; + power_fail { + label = "963281TAN::power-fail"; + gpios = <&gpio0 8 1>; + }; + wps { + label = "963281TAN::wps"; + gpios = <&gpio0 9 1>; + }; + dsl { + label = "963281TAN::dsl"; + gpios = <&gpio0 11 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96328avng.dts b/target/linux/brcm63xx/dts/bcm96328avng.dts index 52e7daf..8dbdbda 100644 --- a/target/linux/brcm63xx/dts/bcm96328avng.dts +++ b/target/linux/brcm63xx/dts/bcm96328avng.dts @@ -5,4 +5,34 @@ / { model = "Broadcom BCM96328avng reference board"; compatible = "brcm,bcm96328avng", "brcm,bcm6328"; + + gpio-leds { + compatible = "gpio-leds"; + + inet_fail { + label = "96328avng::internet-fail"; + gpios = <&gpio0 2 1>; + }; + dsl { + label = "96328avng::dsl"; + gpios = <&gpio0 3 1>; + }; + power { + label = "96328avng::power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_fail { + label = "96328avng::power-fail"; + gpios = <&gpio0 8 1>; + }; + wps { + label = "96328avng::wps"; + gpios = <&gpio0 9 1>; + }; + inet { + label = "96328avng::internet"; + gpios = <&gpio0 11 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96338GW.dts b/target/linux/brcm63xx/dts/bcm96338GW.dts index 2040e2f..d378df1 100644 --- a/target/linux/brcm63xx/dts/bcm96338GW.dts +++ b/target/linux/brcm63xx/dts/bcm96338GW.dts @@ -5,4 +5,30 @@ / { model = "Broadcom BCM96338GW reference board"; compatible = "brcm,bcm96338gw", "brcm,bcm6338"; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96338GW:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96338GW:green:stop"; + gpios = <&gpio0 1 1>; + }; + dsl_green { + label = "96338GW:green:adsl"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96338GW:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + ses_green { + label = "96338GW:green:ses"; + gpios = <&gpio0 5 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96338W.dts b/target/linux/brcm63xx/dts/bcm96338W.dts index 1609541..9cca783 100644 --- a/target/linux/brcm63xx/dts/bcm96338W.dts +++ b/target/linux/brcm63xx/dts/bcm96338W.dts @@ -5,4 +5,30 @@ / { model = "Broadcom BCM96338W reference board"; compatible = "brcm,bcm96338w", "brcm,bcm6338"; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96338W:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96338W:green:stop"; + gpios = <&gpio0 1 1>; + }; + dsl_green { + label = "96338W:green:adsl"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96338W:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + ses_green { + label = "96338W:green:ses"; + gpios = <&gpio0 5 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96348GW-10.dts b/target/linux/brcm63xx/dts/bcm96348GW-10.dts index 172ee62..173a8c3 100644 --- a/target/linux/brcm63xx/dts/bcm96348GW-10.dts +++ b/target/linux/brcm63xx/dts/bcm96348GW-10.dts @@ -5,4 +5,44 @@ / { model = "Broadcom BCM96348GW-10 reference board"; compatible = "brcm,bcm96348gw-10", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 6 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348GW-10:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348GW-10:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348GW-10:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348GW-10:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348GW-10:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96348GW-11.dts b/target/linux/brcm63xx/dts/bcm96348GW-11.dts index 906ecab..8a6575a 100644 --- a/target/linux/brcm63xx/dts/bcm96348GW-11.dts +++ b/target/linux/brcm63xx/dts/bcm96348GW-11.dts @@ -5,4 +5,44 @@ / { model = "Broadcom BCM96348GW-11 reference board"; compatible = "brcm,bcm96348gw-11", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348GW-11:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348GW-11:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348GW-11:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348GW-11:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348GW-11:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96348GW.dts b/target/linux/brcm63xx/dts/bcm96348GW.dts index cd039f8..c130be8 100644 --- a/target/linux/brcm63xx/dts/bcm96348GW.dts +++ b/target/linux/brcm63xx/dts/bcm96348GW.dts @@ -5,4 +5,44 @@ / { model = "Broadcom BCM96348GW reference board"; compatible = "brcm,bcm96348gw", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 36 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348GW:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348GW:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348GW:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348GW:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348GW:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96348R.dts b/target/linux/brcm63xx/dts/bcm96348R.dts index 004abcb..69842b1 100644 --- a/target/linux/brcm63xx/dts/bcm96348R.dts +++ b/target/linux/brcm63xx/dts/bcm96348R.dts @@ -5,4 +5,30 @@ / { model = "Broadcom 96348R reference board"; compatible = "brcm,bcm96348r", "brcm,bcm6348"; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348R:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348R:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348R:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348R:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348R:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96358VW.dts b/target/linux/brcm63xx/dts/bcm96358VW.dts index a978d41..57e26f6 100644 --- a/target/linux/brcm63xx/dts/bcm96358VW.dts +++ b/target/linux/brcm63xx/dts/bcm96358VW.dts @@ -5,4 +5,30 @@ / { model = "Broadcom BCM96358VW reference board"; compatible = "brcm,bcm96358vw", "brcm,bcm6358"; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96358VW:green:power"; + gpios = <&gpio0 4 0>; + default-state = "on"; + }; + stop_green { + label = "96358VW:green:stop"; + gpios = <&gpio0 5 0>; + }; + adsl_fail_green { + label = "96358VW:green:adsl-fail"; + gpios = <&gpio0 15 1>; + }; + ppp_green { + label = "96358VW:green:ppp"; + gpios = <&gpio0 22 1>; + }; + ppp_fail_green { + label = "96358VW:green:ppp-fail"; + gpios = <&gpio0 23 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96358VW2.dts b/target/linux/brcm63xx/dts/bcm96358VW2.dts index bcf3c81..730426f 100644 --- a/target/linux/brcm63xx/dts/bcm96358VW2.dts +++ b/target/linux/brcm63xx/dts/bcm96358VW2.dts @@ -5,4 +5,26 @@ / { model = "Broadcom BCM96358VW2 reference board"; compatible = "brcm,bcm96358vw2", "brcm,bcm6358"; + + gpio-leds { + compatible = "gpio-leds"; + + stop_green { + label = "96358VW2:green:stop"; + gpios = <&gpio0 4 1>; + }; + power_green { + label = "96358VW2:green:power"; + gpios = <&gpio0 5 1>; + default-state = "on"; + }; + adsl_green { + label = "96358VW2:green:adsl"; + gpios = <&gpio0 22 1>; + }; + ppp_fail_green { + label = "96358VW2:green:ppp-fail"; + gpios = <&gpio0 23 0>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96368MVNgr.dts b/target/linux/brcm63xx/dts/bcm96368MVNgr.dts index b274bfd..fa3e6e8 100644 --- a/target/linux/brcm63xx/dts/bcm96368MVNgr.dts +++ b/target/linux/brcm63xx/dts/bcm96368MVNgr.dts @@ -5,4 +5,30 @@ / { model = "Broadcom BCM96368MVNgr reference board"; compatible = "brcm,bcm96368mvngr", "brcm,bcm6368"; + + gpio-leds { + compatible = "gpio-leds"; + + dsl_green { + label = "96368MVNgr:green:adsl"; + gpios = <&gpio0 2 1>; + }; + inet_fail_green { + label = "96368MVNgr:green:inet-fail"; + gpios = <&gpio0 3 0>; + }; + inet_green { + label = "96368MVNgr:green:inet"; + gpios = <&gpio0 5 0>; + }; + power_green { + label = "96368MVNgr:green:power"; + gpios = <&gpio0 22 0>; + default-state = "on"; + }; + wps_green { + label = "96368MVNgr:green:wps"; + gpios = <&gpio0 23 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/bcm96368MVWG.dts b/target/linux/brcm63xx/dts/bcm96368MVWG.dts index f462411..0fb3566 100644 --- a/target/linux/brcm63xx/dts/bcm96368MVWG.dts +++ b/target/linux/brcm63xx/dts/bcm96368MVWG.dts @@ -5,4 +5,30 @@ / { model = "Broadcom BCM96368MVWG reference board"; compatible = "brcm,bcm96368mvwg", "brcm,bcm6368"; + + gpio-leds { + compatible = "gpio-leds"; + + dsl_green { + label = "96368MVWG:green:adsl"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96368MVWG:green:ppp"; + gpios = <&gpio0 5 0>; + }; + power_green { + label = "96368MVWG:green:power"; + gpios = <&gpio0 22 0>; + default-state = "on"; + }; + wps_green { + label = "96368MVWG:green:wps"; + gpios = <&gpio0 23 1>; + }; + ppp_fail_red { + label = "96368MVWG:red:ppp-fail"; + gpios = <&gpio0 31 0>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/cpva642.dts b/target/linux/brcm63xx/dts/cpva642.dts index a12dd81..6a7edc5 100644 --- a/target/linux/brcm63xx/dts/cpva642.dts +++ b/target/linux/brcm63xx/dts/cpva642.dts @@ -5,6 +5,71 @@ / { model = "Telsey CPVA642-type (CPA-ZNTE60T)"; compatible = "telsey,cpva642", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 36 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 37 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + eth_green { + label = "CPVA642:green:ether"; + gpios = <&gpio0 1 1>; + }; + phone2_green { + label = "CPVA642:green:phone2"; + gpios = <&gpio0 2 1>; + }; + usb_green { + label = "CPVA642:green:usb"; + gpios = <&gpio0 3 1>; + }; + phone1_green { + label = "CPVA642:green:phone1"; + gpios = <&gpio0 4 1>; + }; + wifi_red { + label = "CPVA642:red:wifi"; + gpios = <&gpio0 6 1>; + }; + link_red { + label = "CPVA642:red:link"; + gpios = <&gpio0 9 1>; + }; + link_green { + label = "CPVA642:green:link"; + gpios = <&gpio0 10 1>; + }; + power_green { + label = "CPVA642:green:power"; + gpios = <&gpio0 11 1>; + default-state = "on"; + }; + power_red { + label = "CPVA642:red:power"; + gpios = <&gpio0 14 1>; + }; + wifi_green { + label = "CPVA642:green:wifi"; + gpios = <&gpio0 28 0>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/ct-5365.dts b/target/linux/brcm63xx/dts/ct-5365.dts index 2ada4f8..dd9aa79 100644 --- a/target/linux/brcm63xx/dts/ct-5365.dts +++ b/target/linux/brcm63xx/dts/ct-5365.dts @@ -5,6 +5,48 @@ / { model = "Comtrend CT-5365"; compatible = "comtrend,ct-5365", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + wlan { + label = "wlan"; + gpios = <&gpio0 34 1>; + linux,code = <0xee>; + }; + wps { + label = "wps"; + gpios = <&gpio0 35 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348A-122:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + alarm_red { + label = "96348A-122:red:alarm"; + gpios = <&gpio0 2 1>; + }; + wps_green { + label = "96348A-122:green:wps"; + gpios = <&gpio0 6 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/ct-6373.dts b/target/linux/brcm63xx/dts/ct-6373.dts old mode 100644 new mode 100755 index 1aca23a..c91c9b2 --- a/target/linux/brcm63xx/dts/ct-6373.dts +++ b/target/linux/brcm63xx/dts/ct-6373.dts @@ -5,6 +5,74 @@ / { model = "Comtrend CT-6373"; compatible = "comtrend,ct-6373", "brcm,bcm6358"; + + spi-gpio { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi-gpio"; + + gpio-mosi = <&gpio0 7 0>; + gpio-sck = <&gpio0 6 0>; + num-chipselects = <0>; + + gpio1: 74x164@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + + gpio-controller; + #gpio-cells = <2>; + + registers-number = <1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 35 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "CT6373-1:green:power"; + gpios = <&gpio0 0 0>; + default-state = "on"; + }; + usb_green { + label = "CT6373-1:green:usb"; + gpios = <&gpio0 3 1>; + }; + wlan_green { + label = "CT6373-1:green:wlan"; + gpios = <&gpio0 9 1>; + }; + dsl_green { + label = "CT6373-1:green:adsl"; + gpios = <&gpio1 0 1>; + }; + line_green { + label = "CT6373-1:green:line"; + gpios = <&gpio1 1 1>; + }; + fxs1_green { + label = "CT6373-1:green:fxs1"; + gpios = <&gpio1 2 1>; + }; + fxs2_green { + label = "CT6373-1:green:fxs2"; + gpios = <&gpio1 3 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/ct536plus.dts b/target/linux/brcm63xx/dts/ct536plus.dts index d8e2d3b..61a5096 100644 --- a/target/linux/brcm63xx/dts/ct536plus.dts +++ b/target/linux/brcm63xx/dts/ct536plus.dts @@ -5,4 +5,32 @@ / { model = "Comtrend CT-536+/CT-5621T"; compatible = "comtrend,ct536+", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "CT536_CT5621:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + adsl_fail_green { + label = "CT536_CT5621:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/dg834gtpn.dts b/target/linux/brcm63xx/dts/dg834gtpn.dts index 8742985..f4ece9e 100644 --- a/target/linux/brcm63xx/dts/dg834gtpn.dts +++ b/target/linux/brcm63xx/dts/dg834gtpn.dts @@ -5,6 +5,46 @@ / { model = "Netgear DG834GT/PN"; compatible = "netgear,dg834gtpn", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 6 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348GW-10:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348GW-10:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348GW-10:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348GW-10:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348GW-10:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/dsl-2640b-b.dts b/target/linux/brcm63xx/dts/dsl-2640b-b.dts index efc0dc5..6f2bda6 100644 --- a/target/linux/brcm63xx/dts/dsl-2640b-b.dts +++ b/target/linux/brcm63xx/dts/dsl-2640b-b.dts @@ -5,6 +5,42 @@ / { model = "D-Link DSL-2640B rev B2"; compatible = "d-link,dsl-2640b-b", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 7 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "D-4P-W:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + status { + label = "D-4P-W::status"; + gpios = <&gpio0 3 1>; + }; + inet_green { + label = "D-4P-W:green:internet"; + gpios = <&gpio0 4 1>; + }; + inet_red { + label = "D-4P-W:red:internet"; + gpios = <&gpio0 5 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/dsl-2650u.dts b/target/linux/brcm63xx/dts/dsl-2650u.dts index 23b3301..7e88e01 100644 --- a/target/linux/brcm63xx/dts/dsl-2650u.dts +++ b/target/linux/brcm63xx/dts/dsl-2650u.dts @@ -5,6 +5,28 @@ / { model = "D-Link DSL-2650U"; compatible = "d-link,dsl-2650u", "brcm,bcm6358"; + + gpio-leds { + compatible = "gpio-leds"; + + stop_green { + label = "96358VW2:green:stop"; + gpios = <&gpio0 4 1>; + }; + power_green { + label = "96358VW2:green:power"; + gpios = <&gpio0 5 1>; + default-state = "on"; + }; + adsl_green { + label = "96358VW2:green:adsl"; + gpios = <&gpio0 22 1>; + }; + ppp_fail_green { + label = "96358VW2:green:ppp-fail"; + gpios = <&gpio0 23 0>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/dsl-274xb-c.dts b/target/linux/brcm63xx/dts/dsl-274xb-c.dts index e36ddfa..c4b0237 100644 --- a/target/linux/brcm63xx/dts/dsl-274xb-c.dts +++ b/target/linux/brcm63xx/dts/dsl-274xb-c.dts @@ -5,6 +5,46 @@ / { model = "D-Link DSL-2740B/DSL-2741B rev C2/3"; compatible = "d-link,dsl-274xb-c2", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_green { + label = "dsl-274xb:green:internet"; + gpios = <&gpio0 2 1>; + }; + power_red { + label = "dsl-274xb:red:power"; + gpios = <&gpio0 4 1>; + }; + power_green { + label = "dsl-274xb:green:power"; + gpios = <&gpio0 5 1>; + default-state = "on"; + }; + dsl_green { + label = "dsl-274xb:green:adsl"; + gpios = <&gpio0 9 1>; + }; + inet_red { + label = "dsl-274xb:red:internet"; + gpios = <&gpio0 10 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/dsl-274xb-f.dts b/target/linux/brcm63xx/dts/dsl-274xb-f.dts old mode 100644 new mode 100755 index a17f988..f8ad084 --- a/target/linux/brcm63xx/dts/dsl-274xb-f.dts +++ b/target/linux/brcm63xx/dts/dsl-274xb-f.dts @@ -5,4 +5,58 @@ / { model = "D-Link DSL-2740B/DSL-2741B rev F1"; compatible = "d-link,dsl-274xb-f", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + wifi { + label = "wifi"; + gpios = <&gpio0 10 1>; + linux,code = <0xee>; + }; + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 24 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_red { + label = "dsl-274xb:red:internet"; + gpios = <&gpio0 2 1>; + }; + dsl_green { + label = "dsl-274xb:green:dsl"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "dsl-274xb:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "dsl-274xb:red:power"; + gpios = <&gpio0 8 1>; + }; + wps_blue { + label = "dsl-274xb:blue:wps"; + gpios = <&gpio0 9 1>; + }; + inet_green { + label = "dsl-274xb:green:internet"; + gpios = <&gpio0 11 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts b/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts index 20accd7..135e3ad 100644 --- a/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts +++ b/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts @@ -5,4 +5,44 @@ / { model = "D-Link DVA-G3810BN/TL"; compatible = "d-link,dva-g3810bn/tl", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + voip { + label = "DVAG3810BN::voip"; + gpios = <&gpio0 1 0>; + }; + power { + label = "DVAG3810BN::power"; + gpios = <&gpio0 4 0>; + default-state = "on"; + }; + stop { + label = "DVAG3810BN::stop"; + gpios = <&gpio0 5 0>; + }; + dsl { + label = "DVAG3810BN::dsl"; + gpios = <&gpio0 22 1>; + }; + inet { + label = "DVAG3810BN::internet"; + gpios = <&gpio0 23 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/f5d7633.dts b/target/linux/brcm63xx/dts/f5d7633.dts index 9393413..81e1e25 100644 --- a/target/linux/brcm63xx/dts/f5d7633.dts +++ b/target/linux/brcm63xx/dts/f5d7633.dts @@ -5,6 +5,46 @@ / { model = "Belkin F5D7633"; compatible = "belkin,f5d7633", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 6 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348GW-10:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348GW-10:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348GW-10:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348GW-10:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348GW-10:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/fast2504n.dts b/target/linux/brcm63xx/dts/fast2504n.dts index 2f202a3..a3bb927 100644 --- a/target/linux/brcm63xx/dts/fast2504n.dts +++ b/target/linux/brcm63xx/dts/fast2504n.dts @@ -5,4 +5,53 @@ / { model = "Sagem F@ST2504n"; compatible = "sagem,f@st2504n", "brcm,bcm6362"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 24 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 25 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_orange { + label = "fast2504n:orange:power"; + gpios = <&gpio0 2 1>; + }; + power_green { + label = "fast2504n:green:power"; + gpios = <&gpio0 10 1>; + default-state = "on"; + }; + inet_red { + label = "fast2504n:red:internet"; + gpios = <&gpio0 26 1>; + }; + ok_green { + label = "fast2504n:green:ok"; + gpios = <&gpio0 28 1>; + }; + ok_orange { + label = "fast2504n:orange:ok"; + gpios = <&gpio0 29 1>; + }; + wlan_orangee { + label = "fast2504n:orange:wlan"; + gpios = <&gpio0 30 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/fast2604.dts b/target/linux/brcm63xx/dts/fast2604.dts index 5dcaa55..704beff 100644 --- a/target/linux/brcm63xx/dts/fast2604.dts +++ b/target/linux/brcm63xx/dts/fast2604.dts @@ -5,6 +5,42 @@ / { model = "Sagem F@ST2604"; compatible = "sagem,f@st2604", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "F@ST2604:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + power_red { + label = "F@ST2604:red:power"; + gpios = <&gpio0 1 1>; + }; + inet_red { + label = "F@ST2604:red:inet"; + gpios = <&gpio0 4 1>; + }; + wps_green { + label = "F@ST2604:green:wps"; + gpios = <&gpio0 5 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/fast2704v2.dts b/target/linux/brcm63xx/dts/fast2704v2.dts index f001b77..053ad35 100644 --- a/target/linux/brcm63xx/dts/fast2704v2.dts +++ b/target/linux/brcm63xx/dts/fast2704v2.dts @@ -5,4 +5,62 @@ / { model = "Sagem F@ST2704V2"; compatible = "sagem,f@st2704v2", "brcm,bcm6328"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + rfkill { + label = "rfkill"; + gpios = <&gpio0 15 1>; + linux,code = <0xee>; + }; + reset { + label = "reset"; + gpios = <&gpio0 23 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 24 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + usb_green { + label = "F@ST2704V2:green:usb"; + gpios = <&gpio0 1 1>; + }; + inet_red { + label = "F@ST2704V2:red:inet"; + gpios = <&gpio0 2 1>; + }; + dsl_green { + label = "F@ST2704V2:green:dsl"; + gpios = <&gpio0 3 1>; + }; + power_green { + label = "F@ST2704V2:green:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "F@ST2704V2:red:power"; + gpios = <&gpio0 5 1>; + }; + wps_green { + label = "F@ST2704V2:green:wps"; + gpios = <&gpio0 10 1>; + }; + inet_green { + label = "F@ST2704V2:green:inet"; + gpios = <&gpio0 11 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/gw6000.dts b/target/linux/brcm63xx/dts/gw6000.dts index f0b5c54..eb98c33 100644 --- a/target/linux/brcm63xx/dts/gw6000.dts +++ b/target/linux/brcm63xx/dts/gw6000.dts @@ -5,4 +5,18 @@ / { model = "TECOM GW6000"; compatible = "tecom,gw6000", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 36 1>; + linux,code = <0x198>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/gw6200.dts b/target/linux/brcm63xx/dts/gw6200.dts index 4165030..7691134 100644 --- a/target/linux/brcm63xx/dts/gw6200.dts +++ b/target/linux/brcm63xx/dts/gw6200.dts @@ -5,4 +5,39 @@ / { model = "TECOM GW6200"; compatible = "tecom,gw6200", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 36 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + line1_green { + label = "GW6200:green:line1"; + gpios = <&gpio0 4 1>; + }; + line2_green { + label = "GW6200:green:line2"; + gpios = <&gpio0 5 1>; + }; + line3_green { + label = "GW6200:green:line3"; + gpios = <&gpio0 6 1>; + }; + tel_green { + label = "GW6200:green:tel"; + gpios = <&gpio0 7 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/hg520v.dts b/target/linux/brcm63xx/dts/hg520v.dts index bc8af33..fe9d7ed 100644 --- a/target/linux/brcm63xx/dts/hg520v.dts +++ b/target/linux/brcm63xx/dts/hg520v.dts @@ -5,6 +5,29 @@ / { model = "Huawei EchoLife HG520v"; compatible = "huawei,hg520v", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 37 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_green { + label = "HW520:green:net"; + gpios = <&gpio0 31 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/hg553.dts b/target/linux/brcm63xx/dts/hg553.dts index 75fec8b..cc7b6a3 100644 --- a/target/linux/brcm63xx/dts/hg553.dts +++ b/target/linux/brcm63xx/dts/hg553.dts @@ -5,6 +5,48 @@ / { model = "Huawei EchoLife HG553"; compatible = "huawei,hg553", "brcm,bcm6358"; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "HW553:blue:power"; + gpios = <&gpio0 4 1>; + default-state = "on"; + }; + power_red { + label = "HW553:red:power"; + gpios = <&gpio0 5 1>; + }; + hspa_red { + label = "HW553:red:hspa"; + gpios = <&gpio0 12 1>; + }; + hspa_blue { + label = "HW553:blue:hspa"; + gpios = <&gpio0 13 1>; + }; + lan_red { + label = "HW553:red:lan"; + gpios = <&gpio0 22 1>; + }; + lan_blue { + label = "HW553:blue:lan"; + gpios = <&gpio0 23 1>; + }; + wifi_red { + label = "HW553:red:wifi"; + gpios = <&gpio0 25 1>; + }; + dsl_red { + label = "HW553:red:adsl"; + gpios = <&gpio0 34 1>; + }; + dsl_blue { + label = "HW553:blue:adsl"; + gpios = <&gpio0 35 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/hg556a-a.dts b/target/linux/brcm63xx/dts/hg556a-a.dts index bf43571..70f10dc 100644 --- a/target/linux/brcm63xx/dts/hg556a-a.dts +++ b/target/linux/brcm63xx/dts/hg556a-a.dts @@ -5,6 +5,94 @@ / { model = "Huawei EchoLife HG556a (version A)"; compatible = "huawei,hg556a-a", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + help { + label = "help"; + gpios = <&gpio0 8 1>; + linux,code = <0x8a>; + }; + wlan { + label = "wlan"; + gpios = <&gpio0 9 1>; + linux,code = <0xee>; + }; + restart { + label = "restart"; + gpios = <&gpio0 10 1>; + linux,code = <0x198>; + }; + reset { + label = "reset"; + gpios = <&gpio0 11 1>; + linux,code = <0xab>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + message_red { + label = "HW556:red:message"; + gpios = <&gpio0 0 1>; + }; + hspa_red { + label = "HW556:red:hspa"; + gpios = <&gpio0 1 1>; + }; + dsl_red { + label = "HW556:red:dsl"; + gpios = <&gpio0 2 1>; + }; + power_red { + label = "HW556:red:power"; + gpios = <&gpio0 3 1>; + default-state = "on"; + }; + all_red { + label = "HW556:red:all"; + gpios = <&gpio0 6 1>; + default-state = "on"; + }; + lan1_green { + label = "HW556:green:lan1"; + gpios = <&gpio0 12 1>; + }; + lan1_red { + label = "HW556:red:lan1"; + gpios = <&gpio0 13 1>; + }; + lan2_green { + label = "HW556:green:lan2"; + gpios = <&gpio0 15 1>; + }; + lan2_red { + label = "HW556:red:lan2"; + gpios = <&gpio0 22 1>; + }; + lan3_green { + label = "HW556:green:lan3"; + gpios = <&gpio0 23 1>; + }; + lan3_red { + label = "HW556:red:lan3"; + gpios = <&gpio0 26 1>; + }; + lan4_green { + label = "HW556:green:lan4"; + gpios = <&gpio0 27 1>; + }; + lan4_red { + label = "HW556:red:lan4"; + gpios = <&gpio0 28 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/hg556a-b.dts b/target/linux/brcm63xx/dts/hg556a-b.dts index 6d218c2..b42e86f 100644 --- a/target/linux/brcm63xx/dts/hg556a-b.dts +++ b/target/linux/brcm63xx/dts/hg556a-b.dts @@ -5,6 +5,94 @@ / { model = "Huawei EchoLife HG556a (version B)"; compatible = "huawei,hg556a-b", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + help { + label = "help"; + gpios = <&gpio0 8 1>; + linux,code = <0x8a>; + }; + wlan { + label = "wlan"; + gpios = <&gpio0 9 1>; + linux,code = <0xee>; + }; + restart { + label = "restart"; + gpios = <&gpio0 10 1>; + linux,code = <0x198>; + }; + reset { + label = "reset"; + gpios = <&gpio0 11 1>; + linux,code = <0xab>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + message_red { + label = "HW556:red:message"; + gpios = <&gpio0 0 1>; + }; + hspa_red { + label = "HW556:red:hspa"; + gpios = <&gpio0 1 1>; + }; + dsl_red { + label = "HW556:red:dsl"; + gpios = <&gpio0 2 1>; + }; + power_red { + label = "HW556:red:power"; + gpios = <&gpio0 3 1>; + default-state = "on"; + }; + all_red { + label = "HW556:red:all"; + gpios = <&gpio0 6 1>; + default-state = "on"; + }; + lan1_green { + label = "HW556:green:lan1"; + gpios = <&gpio0 12 1>; + }; + lan1_red { + label = "HW556:red:lan1"; + gpios = <&gpio0 13 1>; + }; + lan2_green { + label = "HW556:green:lan2"; + gpios = <&gpio0 15 1>; + }; + lan2_red { + label = "HW556:red:lan2"; + gpios = <&gpio0 22 1>; + }; + lan3_green { + label = "HW556:green:lan3"; + gpios = <&gpio0 23 1>; + }; + lan3_red { + label = "HW556:red:lan3"; + gpios = <&gpio0 26 1>; + }; + lan4_green { + label = "HW556:green:lan4"; + gpios = <&gpio0 27 1>; + }; + lan4_red { + label = "HW556:red:lan4"; + gpios = <&gpio0 28 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/hg556a-c.dts b/target/linux/brcm63xx/dts/hg556a-c.dts index a5bccda..4c845ed 100644 --- a/target/linux/brcm63xx/dts/hg556a-c.dts +++ b/target/linux/brcm63xx/dts/hg556a-c.dts @@ -5,6 +5,89 @@ / { model = "Huawei EchoLife HG556a (version C)"; compatible = "huawei,hg556a-c", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + help { + label = "help"; + gpios = <&gpio0 8 1>; + linux,code = <0x8a>; + }; + wlan { + label = "wlan"; + gpios = <&gpio0 9 1>; + linux,code = <0xee>; + }; + restart { + label = "restart"; + gpios = <&gpio0 10 1>; + linux,code = <0x198>; + }; + reset { + label = "reset"; + gpios = <&gpio0 11 1>; + linux,code = <0xab>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + lan1_green { + label = "HW556:green:lan1"; + gpios = <&gpio0 0 1>; + }; + lan2_green { + label = "HW556:green:lan2"; + gpios = <&gpio0 1 1>; + }; + dsl_red { + label = "HW556:red:dsl"; + gpios = <&gpio0 2 1>; + }; + power_red { + label = "HW556:red:power"; + gpios = <&gpio0 3 1>; + default-state = "on"; + }; + message_red { + label = "HW556:red:message"; + gpios = <&gpio0 12 1>; + }; + lan1_red { + label = "HW556:red:lan1"; + gpios = <&gpio0 13 1>; + }; + hspa_red { + label = "HW556:red:hspa"; + gpios = <&gpio0 15 1>; + }; + lan2_red { + label = "HW556:red:lan2"; + gpios = <&gpio0 22 1>; + }; + lan3_green { + label = "HW556:green:lan3"; + gpios = <&gpio0 23 1>; + }; + lan3_red { + label = "HW556:red:lan3"; + gpios = <&gpio0 26 1>; + }; + lan4_green { + label = "HW556:green:lan4"; + gpios = <&gpio0 27 1>; + }; + lan4_red { + label = "HW556:red:lan4"; + gpios = <&gpio0 28 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/nb4-fxc-r1.dts b/target/linux/brcm63xx/dts/nb4-fxc-r1.dts old mode 100644 new mode 100755 index e04845f..636b94a --- a/target/linux/brcm63xx/dts/nb4-fxc-r1.dts +++ b/target/linux/brcm63xx/dts/nb4-fxc-r1.dts @@ -5,4 +5,94 @@ / { model = "SFR Neuf Box 4 (Foxconn)"; compatible = "sfr,nb4-fxc-r1", "brcm,bcm6358"; + + spi-gpio { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi-gpio"; + + gpio-mosi = <&gpio0 7 0>; + gpio-sck = <&gpio0 6 0>; + num-chipselects = <0>; + + gpio1: 74x164@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + + gpio-controller; + #gpio-cells = <2>; + + registers-number = <1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + service { + label = "service"; + gpios = <&gpio0 27 1>; + linux,code = <0x100>; + }; + clip { + label = "clip"; + gpios = <&gpio0 31 1>; + linux,code = <0x101>; + }; + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 37 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + traffic_white { + label = "NB4-FXC-r1:white:traffic"; + gpios = <&gpio0 2 0>; + }; + service_blue { + label = "NB4-FXC-r1:blue:service"; + gpios = <&gpio0 4 0>; + }; + wifi_white { + label = "NB4-FXC-r1:white:wifi"; + gpios = <&gpio0 15 0>; + }; + service_red { + label = "NB4-FXC-r1:red:service"; + gpios = <&gpio0 29 0>; + }; + service_green { + label = "NB4-FXC-r1:green:service"; + gpios = <&gpio0 30 0>; + }; + alarm_white { + label = "NB4-FXC-r1:white:alarm"; + gpios = <&gpio1 0 1>; + }; + tv_white { + label = "NB4-FXC-r1:white:tv"; + gpios = <&gpio1 2 1>; + }; + tel_white { + label = "NB4-FXC-r1:white:tel"; + gpios = <&gpio1 3 1>; + }; + adsl_white { + label = "NB4-FXC-r0:white:adsl"; + gpios = <&gpio1 4 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/nb4-ser-r0.dts b/target/linux/brcm63xx/dts/nb4-ser-r0.dts old mode 100644 new mode 100755 index 9b82ccd..b8ad868 --- a/target/linux/brcm63xx/dts/nb4-ser-r0.dts +++ b/target/linux/brcm63xx/dts/nb4-ser-r0.dts @@ -5,4 +5,94 @@ / { model = "SFR Neuf Box 4 (Sercomm)"; compatible = "sfr,nb4-ser-r0", "brcm,bcm6358"; + + spi-gpio { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi-gpio"; + + gpio-mosi = <&gpio0 7 0>; + gpio-sck = <&gpio0 6 0>; + num-chipselects = <0>; + + gpio1: 74x164@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + + gpio-controller; + #gpio-cells = <2>; + + registers-number = <1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + service { + label = "service"; + gpios = <&gpio0 27 1>; + linux,code = <0x100>; + }; + clip { + label = "clip"; + gpios = <&gpio0 31 1>; + linux,code = <0x101>; + }; + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 37 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + traffic_white { + label = "NB4-SER-r0:white:traffic"; + gpios = <&gpio0 2 1>; + }; + service_blue { + label = "NB4-SER-r0:blue:service"; + gpios = <&gpio0 4 1>; + }; + wifi_white { + label = "NB4-SER-r0:white:wifi"; + gpios = <&gpio0 15 1>; + }; + service_red { + label = "NB4-SER-r0:red:service"; + gpios = <&gpio0 29 1>; + }; + service_green { + label = "NB4-SER-r0:green:service"; + gpios = <&gpio0 30 1>; + }; + alarm_white { + label = "NB4-SER-r0:white:alarm"; + gpios = <&gpio1 0 1>; + }; + tv_white { + label = "NB4-SER-r0:white:tv"; + gpios = <&gpio1 2 1>; + }; + tel_white { + label = "NB4-SER-r0:white:tel"; + gpios = <&gpio1 3 1>; + }; + adsl_white { + label = "NB4-SER-r0:white:adsl"; + gpios = <&gpio1 4 1>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/nb6-ser-r0.dts b/target/linux/brcm63xx/dts/nb6-ser-r0.dts index ea3b1fa..ae16ad3 100644 --- a/target/linux/brcm63xx/dts/nb6-ser-r0.dts +++ b/target/linux/brcm63xx/dts/nb6-ser-r0.dts @@ -5,4 +5,33 @@ / { model = "SFR neufbox 6 (Sercomm)"; compatible = "sfr,nb6-ser-r0", "brcm,bcm6362"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + service { + label = "service"; + gpios = <&gpio0 10 1>; + linux,code = <0x100>; + }; + wlan { + label = "wlan"; + gpios = <&gpio0 12 1>; + linux,code = <0xee>; + }; + reset { + label = "reset"; + gpios = <&gpio0 24 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 25 1>; + linux,code = <0x211>; + }; + }; }; diff --git a/target/linux/brcm63xx/dts/p870hw-51a-v2.dts b/target/linux/brcm63xx/dts/p870hw-51a-v2.dts index 916dd4a..ab16ae0 100644 --- a/target/linux/brcm63xx/dts/p870hw-51a-v2.dts +++ b/target/linux/brcm63xx/dts/p870hw-51a-v2.dts @@ -5,6 +5,51 @@ / { model = "Zyxel P870HW-51a v2"; compatible = "zyxel,p870hw-51a-v2", "brcm,bcm6368"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 35 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "P870HW-51a:green:power"; + gpios = <&gpio0 0 0>; + default-state = "on"; + }; + dsl_green { + label = "P870HW-51a:green:dsl"; + gpios = <&gpio0 2 1>; + }; + inet_green { + label = "P870HW-51a:green:inet"; + gpios = <&gpio0 22 1>; + }; + wps_orange { + label = "P870HW-51a:orange:wps"; + gpios = <&gpio0 24 1>; + }; + inet_red { + label = "P870HW-51a:red:inet"; + gpios = <&gpio0 33 0>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/rg100a.dts b/target/linux/brcm63xx/dts/rg100a.dts index df628dc..824b5e4 100644 --- a/target/linux/brcm63xx/dts/rg100a.dts +++ b/target/linux/brcm63xx/dts/rg100a.dts @@ -5,6 +5,28 @@ / { model = "Alcatel RG100A"; compatible = "alcatel,rg100a", "brcm,bcm6358"; + + gpio-leds { + compatible = "gpio-leds"; + + stop_green { + label = "96358VW2:green:stop"; + gpios = <&gpio0 4 1>; + }; + power_green { + label = "96358VW2:green:power"; + gpios = <&gpio0 5 1>; + default-state = "on"; + }; + adsl_green { + label = "96358VW2:green:adsl"; + gpios = <&gpio0 22 1>; + }; + ppp_fail_green { + label = "96358VW2:green:ppp-fail"; + gpios = <&gpio0 23 0>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/spw303v.dts b/target/linux/brcm63xx/dts/spw303v.dts index 664ad7b..cd993bb 100644 --- a/target/linux/brcm63xx/dts/spw303v.dts +++ b/target/linux/brcm63xx/dts/spw303v.dts @@ -5,6 +5,55 @@ / { model = "T-Com Speedport W303 V"; compatible = "t-com,spw303v", "brcm,bcm6358"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 11 0>; + linux,code = <0x198>; + }; + ses { + label = "ses"; + gpios = <&gpio0 37 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + ses_green { + label = "spw303v:green:ses"; + gpios = <&gpio0 0 1>; + }; + power_adsl_red { + label = "spw303v:red:power+adsl"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "spw303v:green:ppp"; + gpios = <&gpio0 5 1>; + }; + power_adsl_green { + label = "spw303v:green:power+adsl"; + gpios = <&gpio0 22 1>; + default-state = "on"; + }; + voip_green { + label = "spw303v:green:voip"; + gpios = <&gpio0 27 1>; + }; + pots_green { + label = "spw303v:green:pots"; + gpios = <&gpio0 31 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/spw500v.dts b/target/linux/brcm63xx/dts/spw500v.dts index d9ac629..76f0696 100644 --- a/target/linux/brcm63xx/dts/spw500v.dts +++ b/target/linux/brcm63xx/dts/spw500v.dts @@ -5,6 +5,46 @@ / { model = "T-Com Speedport W500 V"; compatible = "t-com,spw500v", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "SPW500V:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + power_red { + label = "SPW500V:red:power"; + gpios = <&gpio0 1 1>; + }; + ppp_green { + label = "SPW500V:green:ppp"; + gpios = <&gpio0 3 1>; + }; + pstn_green { + label = "SPW500V:green:pstn"; + gpios = <&gpio0 28 1>; + }; + voip_green { + label = "SPW500V:green:voip"; + gpios = <&gpio0 32 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/td-w8900gb.dts b/target/linux/brcm63xx/dts/td-w8900gb.dts index c8ff50c..3750ee5 100644 --- a/target/linux/brcm63xx/dts/td-w8900gb.dts +++ b/target/linux/brcm63xx/dts/td-w8900gb.dts @@ -5,6 +5,46 @@ / { model = "TP-Link TD-W8900GB"; compatible = "tp-link,td-w8900gb", "brcm,bcm6348"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 33 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_green { + label = "96348GW-11:green:power"; + gpios = <&gpio0 0 1>; + default-state = "on"; + }; + stop_green { + label = "96348GW-11:green:stop"; + gpios = <&gpio0 1 1>; + }; + adsl_fail_green { + label = "96348GW-11:green:adsl-fail"; + gpios = <&gpio0 2 1>; + }; + ppp_green { + label = "96348GW-11:green:ppp"; + gpios = <&gpio0 3 1>; + }; + ppp_fail_green { + label = "96348GW-11:green:ppp-fail"; + gpios = <&gpio0 4 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/usr9108.dts b/target/linux/brcm63xx/dts/usr9108.dts index 40d7e1c..b50d597 100644 --- a/target/linux/brcm63xx/dts/usr9108.dts +++ b/target/linux/brcm63xx/dts/usr9108.dts @@ -5,6 +5,19 @@ / { model = "USRobotics 9108"; compatible = "usr,9108", "brcm,bcm6348"; + + gpio-leds { + compatible = "gpio-leds"; + + usb { + label = "96348GW-A::usb"; + gpios = <&gpio0 0 1>; + }; + dsl { + label = "96348GW-A::adsl"; + gpios = <&gpio0 3 1>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/vr-3025u.dts b/target/linux/brcm63xx/dts/vr-3025u.dts index 86fde1c..b4577b6 100644 --- a/target/linux/brcm63xx/dts/vr-3025u.dts +++ b/target/linux/brcm63xx/dts/vr-3025u.dts @@ -5,6 +5,62 @@ / { model = "Comtrend VR-3025u"; compatible = "comtrend,vr-3025u", "brcm,bcm6368"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + dsl_green { + label = "VR-3025u:green:dsl"; + gpios = <&gpio0 2 1>; + }; + inet_green { + label = "VR-3025u:green:inet"; + gpios = <&gpio0 5 0>; + }; + lan1_green { + label = "VR-3025u:green:lan1"; + gpios = <&gpio0 6 1>; + }; + lan2_green { + label = "VR-3025u:green:lan2"; + gpios = <&gpio0 7 1>; + }; + lan3_green { + label = "VR-3025u:green:lan3"; + gpios = <&gpio0 8 1>; + }; + lan4_green { + label = "VR-3025u:green:lan4"; + gpios = <&gpio0 9 1>; + }; + power_green { + label = "VR-3025u:green:power"; + gpios = <&gpio0 22 0>; + default-state = "on"; + }; + power_red { + label = "VR-3025u:red:power"; + gpios = <&gpio0 24 0>; + }; + inet_red { + label = "VR-3025u:red:inet"; + gpios = <&gpio0 31 0>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/vr-3025un.dts b/target/linux/brcm63xx/dts/vr-3025un.dts index 6fc0c2a..e0d1473 100644 --- a/target/linux/brcm63xx/dts/vr-3025un.dts +++ b/target/linux/brcm63xx/dts/vr-3025un.dts @@ -5,6 +5,62 @@ / { model = "Comtrend VR-3025un"; compatible = "comtrend,vr-3025un", "brcm,bcm6368"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + dsl_green { + label = "VR-3025un:green:dsl"; + gpios = <&gpio0 2 1>; + }; + inet_green { + label = "VR-3025un:green:inet"; + gpios = <&gpio0 5 0>; + }; + lan1_green { + label = "VR-3025un:green:lan1"; + gpios = <&gpio0 6 1>; + }; + lan2_green { + label = "VR-3025un:green:lan2"; + gpios = <&gpio0 7 1>; + }; + lan3_green { + label = "VR-3025un:green:lan3"; + gpios = <&gpio0 8 1>; + }; + iptv_green { + label = "VR-3025un:green:iptv"; + gpios = <&gpio0 9 1>; + }; + power_green { + label = "VR-3025un:green:power"; + gpios = <&gpio0 22 0>; + default-state = "on"; + }; + power_red { + label = "VR-3025un:red:power"; + gpios = <&gpio0 24 0>; + }; + inet_red { + label = "VR-3025un:red:inet"; + gpios = <&gpio0 31 0>; + }; + }; }; &pflash { diff --git a/target/linux/brcm63xx/dts/wap-5813n.dts b/target/linux/brcm63xx/dts/wap-5813n.dts index 29b85a2..361e04a 100644 --- a/target/linux/brcm63xx/dts/wap-5813n.dts +++ b/target/linux/brcm63xx/dts/wap-5813n.dts @@ -5,6 +5,56 @@ / { model = "Comtrend WAP-5813n"; compatible = "comtrend,wap-5813n", "brcm,bcm6368"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + wlan { + label = "wlan"; + gpios = <&gpio0 32 1>; + linux,code = <0xee>; + }; + reset { + label = "reset"; + gpios = <&gpio0 34 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 33 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + inet_green { + label = "WAP-5813n:green:inet"; + gpios = <&gpio0 5 0>; + }; + power_green { + label = "WAP-5813n:green:power"; + gpios = <&gpio0 22 0>; + default-state = "on"; + }; + wps_green { + label = "WAP-5813n:green:wps"; + gpios = <&gpio0 23 1>; + }; + power_red { + label = "WAP-5813n:red:power"; + gpios = <&gpio0 24 0>; + }; + inet_red { + label = "WAP-5813n:red:inet"; + gpios = <&gpio0 31 0>; + }; + }; }; &pflash {