Message ID | 20230605052907.18837-2-quic_sridsn@quicinc.com |
---|---|
State | New |
Headers | show |
Series | Add support for GPIO based leds and buttons | expand |
On 6/6/2023 6:27 PM, Konrad Dybcio wrote: > > On 5.06.2023 07:29, Sridharan S N wrote: >> Add support for wlan-2g LED on GPIO 36 and wps buttons on GPIO 35. >> >> Signed-off-by: Sridharan S N <quic_sridsn@quicinc.com> >> --- >> Changes in V2: >> - Used the hypen in node name instead of underscore >> - Dropped the status property >> >> arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts | 42 +++++++++++++++++++++ >> arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts | 42 +++++++++++++++++++++ >> arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 42 +++++++++++++++++++++ >> 3 files changed, 126 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts b/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts >> index 3af1d5556950..5bd4ff3ad86b 100644 >> --- a/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts >> +++ b/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts >> @@ -7,6 +7,8 @@ >> >> /dts-v1/; >> >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> #include "ipq5332.dtsi" >> >> / { >> @@ -20,6 +22,32 @@ >> chosen { >> stdout-path = "serial0"; >> }; >> + >> + gpio-keys { >> + compatible = "gpio-keys"; >> + pinctrl-0 = <&gpio_keys_default>; >> + pinctrl-names = "default"; >> + >> + button-wps { >> + label = "wps"; >> + linux,code = <KEY_WPS_BUTTON>; >> + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; >> + linux,input-type = <1>; >> + debounce-interval = <60>; >> + }; >> + }; > All of these changes seem very repetetive.. Are these devboards based > on a common design? Maybe ipq5332-rdp-common.dtsi would be beneficial > here? Will move all the common nodes to common dtsi in the next patch > Thanks, Sridharan > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-0 = <&gpio_leds_default>; > + pinctrl-names = "default"; > + > + led-0 { > + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "phy0tx"; > + default-state = "off"; > + }; > + }; > }; > > &blsp1_uart0 { > @@ -57,6 +85,20 @@ > /* PINCTRL */ > > &tlmm { > + gpio_keys_default: gpio-keys-default-state { > + pins = "gpio35"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-up; > + }; > + > + gpio_leds_default: gpio-leds-default-state { > + pins = "gpio36"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-down; > + }; > + > i2c_1_pins: i2c-1-state { > pins = "gpio29", "gpio30"; > function = "blsp1_i2c0"; > diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts > index bcf3b31c20e3..36cbebb75c48 100644 > --- a/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts > +++ b/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts > @@ -7,6 +7,8 @@ > > /dts-v1/; > > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > #include "ipq5332.dtsi" > > / { > @@ -20,6 +22,32 @@ > chosen { > stdout-path = "serial0"; > }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-0 = <&gpio_keys_default>; > + pinctrl-names = "default"; > + > + button-wps { > + label = "wps"; > + linux,code = <KEY_WPS_BUTTON>; > + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; > + linux,input-type = <1>; > + debounce-interval = <60>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-0 = <&gpio_leds_default>; > + pinctrl-names = "default"; > + > + led-0 { > + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "phy0tx"; > + default-state = "off"; > + }; > + }; > }; > > &blsp1_uart0 { > @@ -71,6 +99,20 @@ > /* PINCTRL */ > > &tlmm { > + gpio_keys_default: gpio-keys-default-state { > + pins = "gpio35"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-up; > + }; > + > + gpio_leds_default: gpio-leds-default-state { > + pins = "gpio36"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-down; > + }; > + > i2c_1_pins: i2c-1-state { > pins = "gpio29", "gpio30"; > function = "blsp1_i2c0"; > diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts > index 3b6a5cb8bf07..2d27f48f00c0 100644 > --- a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts > +++ b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts > @@ -7,6 +7,8 @@ > > /dts-v1/; > > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > #include "ipq5332.dtsi" > > / { > @@ -20,6 +22,32 @@ > chosen { > stdout-path = "serial0"; > }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-0 = <&gpio_keys_default>; > + pinctrl-names = "default"; > + > + button-wps { > + label = "wps"; > + linux,code = <KEY_WPS_BUTTON>; > + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; > + linux,input-type = <1>; > + debounce-interval = <60>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-0 = <&gpio_leds_default>; > + pinctrl-names = "default"; > + > + led-0 { > + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "phy0tx"; > + default-state = "off"; > + }; > + }; > }; > > &blsp1_uart0 { > @@ -64,6 +92,20 @@ > /* PINCTRL */ > > &tlmm { > + gpio_keys_default: gpio-keys-default-state { > + pins = "gpio35"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-up; > + }; > + > + gpio_leds_default: gpio-leds-default-state { > + pins = "gpio36"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-down; > + }; > + > sdc_default_state: sdc-default-state { > clk-pins { > pins = "gpio13";
diff --git a/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts b/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts index 3af1d5556950..5bd4ff3ad86b 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts +++ b/arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts @@ -7,6 +7,8 @@ /dts-v1/; +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include "ipq5332.dtsi" / { @@ -20,6 +22,32 @@ chosen { stdout-path = "serial0"; }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&gpio_keys_default>; + pinctrl-names = "default"; + + button-wps { + label = "wps"; + linux,code = <KEY_WPS_BUTTON>; + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&gpio_leds_default>; + pinctrl-names = "default"; + + led-0 { + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tx"; + default-state = "off"; + }; + }; }; &blsp1_uart0 { @@ -57,6 +85,20 @@ /* PINCTRL */ &tlmm { + gpio_keys_default: gpio-keys-default-state { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + gpio_leds_default: gpio-leds-default-state { + pins = "gpio36"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + i2c_1_pins: i2c-1-state { pins = "gpio29", "gpio30"; function = "blsp1_i2c0"; diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts index bcf3b31c20e3..36cbebb75c48 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts +++ b/arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts @@ -7,6 +7,8 @@ /dts-v1/; +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include "ipq5332.dtsi" / { @@ -20,6 +22,32 @@ chosen { stdout-path = "serial0"; }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&gpio_keys_default>; + pinctrl-names = "default"; + + button-wps { + label = "wps"; + linux,code = <KEY_WPS_BUTTON>; + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&gpio_leds_default>; + pinctrl-names = "default"; + + led-0 { + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tx"; + default-state = "off"; + }; + }; }; &blsp1_uart0 { @@ -71,6 +99,20 @@ /* PINCTRL */ &tlmm { + gpio_keys_default: gpio-keys-default-state { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + gpio_leds_default: gpio-leds-default-state { + pins = "gpio36"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + i2c_1_pins: i2c-1-state { pins = "gpio29", "gpio30"; function = "blsp1_i2c0"; diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts index 3b6a5cb8bf07..2d27f48f00c0 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts +++ b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts @@ -7,6 +7,8 @@ /dts-v1/; +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include "ipq5332.dtsi" / { @@ -20,6 +22,32 @@ chosen { stdout-path = "serial0"; }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&gpio_keys_default>; + pinctrl-names = "default"; + + button-wps { + label = "wps"; + linux,code = <KEY_WPS_BUTTON>; + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&gpio_leds_default>; + pinctrl-names = "default"; + + led-0 { + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tx"; + default-state = "off"; + }; + }; }; &blsp1_uart0 { @@ -64,6 +92,20 @@ /* PINCTRL */ &tlmm { + gpio_keys_default: gpio-keys-default-state { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + gpio_leds_default: gpio-leds-default-state { + pins = "gpio36"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + sdc_default_state: sdc-default-state { clk-pins { pins = "gpio13";
Add support for wlan-2g LED on GPIO 36 and wps buttons on GPIO 35. Signed-off-by: Sridharan S N <quic_sridsn@quicinc.com> --- Changes in V2: - Used the hypen in node name instead of underscore - Dropped the status property arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts | 42 +++++++++++++++++++++ arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts | 42 +++++++++++++++++++++ arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 42 +++++++++++++++++++++ 3 files changed, 126 insertions(+)