2023-05-31 07:02:38

by Sridharan S N

[permalink] [raw]
Subject: [PATCH 0/2] Add support for GPIO based leds and buttons

Add support for wlan-2g led and wps button available on IPQ5332 and
IPQ9574

Sridharan S N (2):
arm64: dts: qcom: ipq5332: enable GPIO based LEDs and Buttons
arm64: dts: qcom: ipq9574: enable GPIO based LEDs

arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts | 43 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts | 43 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 43 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts | 20 ++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 20 ++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts | 20 ++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts | 20 ++++++++++
7 files changed, 209 insertions(+)

--
2.17.1



2023-05-31 07:18:28

by Sridharan S N

[permalink] [raw]
Subject: [PATCH 1/2] arm64: dts: qcom: ipq5332: enable GPIO based LEDs and Buttons

Add support for wlan-2g LED on GPIO 36 and wps buttons on GPIO 35.

Signed-off-by: Sridharan S N <[email protected]>
---
arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts | 43 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts | 43 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 43 +++++++++++++++++++++
3 files changed, 129 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..ba733b6cab06 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,33 @@
chosen {
stdout-path = "serial0";
};
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&gpio_keys_default>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ 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 +86,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..5322b9ee3359 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,33 @@
chosen {
stdout-path = "serial0";
};
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&gpio_keys_default>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ 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 +100,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..15c54dfcaf3f 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,33 @@
chosen {
stdout-path = "serial0";
};
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&gpio_keys_default>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ 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 +93,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";
--
2.17.1


2023-05-31 07:20:15

by Sridharan S N

[permalink] [raw]
Subject: [PATCH 2/2] arm64: dts: qcom: ipq9574: enable GPIO based LEDs

Add support for wlan-2g LED on GPIO 64.

Signed-off-by: Sridharan S N <[email protected]>
---
arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts | 20 ++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 20 ++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts | 20 ++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts | 20 ++++++++++++++++++++
4 files changed, 80 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
index 2b093e02637b..77b450cbdea6 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
@@ -8,6 +8,7 @@

/dts-v1/;

+#include <dt-bindings/gpio/gpio.h>
#include "ipq9574.dtsi"

/ {
@@ -21,6 +22,18 @@
chosen {
stdout-path = "serial0:115200n8";
};
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&gpio_leds_default>;
+ pinctrl-names = "default";
+
+ led-0 {
+ gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tx";
+ default-state = "off";
+ };
+ };
};

&blsp1_spi0 {
@@ -79,6 +92,13 @@
};

&tlmm {
+ gpio_leds_default: gpio-leds-default-state {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
sdc_default_state: sdc-default-state {
clk-pins {
pins = "gpio5";
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index 2b3ed8d351f7..b47971b54ccc 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -8,6 +8,7 @@

/dts-v1/;

+#include <dt-bindings/gpio/gpio.h>
#include "ipq9574.dtsi"

/ {
@@ -21,6 +22,18 @@
chosen {
stdout-path = "serial0:115200n8";
};
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&gpio_leds_default>;
+ pinctrl-names = "default";
+
+ led-0 {
+ gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tx";
+ default-state = "off";
+ };
+ };
};

&blsp1_uart2 {
@@ -65,6 +78,13 @@
};

&tlmm {
+ gpio_leds_default: gpio-leds-default-state {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
sdc_default_state: sdc-default-state {
clk-pins {
pins = "gpio5";
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
index c8fa54e1a62c..50be898cef92 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
@@ -8,6 +8,7 @@

/dts-v1/;

+#include <dt-bindings/gpio/gpio.h>
#include "ipq9574.dtsi"

/ {
@@ -21,6 +22,18 @@
chosen {
stdout-path = "serial0:115200n8";
};
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&gpio_leds_default>;
+ pinctrl-names = "default";
+
+ led-0 {
+ gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tx";
+ default-state = "off";
+ };
+ };
};

&blsp1_spi0 {
@@ -67,6 +80,13 @@
};

&tlmm {
+ gpio_leds_default: gpio-leds-default-state {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
spi_0_pins: spi-0-state {
pins = "gpio11", "gpio12", "gpio13", "gpio14";
function = "blsp0_spi";
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
index f01de6628c3b..f45b5d5353f8 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
@@ -8,6 +8,7 @@

/dts-v1/;

+#include <dt-bindings/gpio/gpio.h>
#include "ipq9574.dtsi"

/ {
@@ -21,6 +22,18 @@
chosen {
stdout-path = "serial0:115200n8";
};
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&gpio_leds_default>;
+ pinctrl-names = "default";
+
+ led-0 {
+ gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tx";
+ default-state = "off";
+ };
+ };
};

&blsp1_spi0 {
@@ -67,6 +80,13 @@
};

&tlmm {
+ gpio_leds_default: gpio-leds-default-state {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
spi_0_pins: spi-0-state {
pins = "gpio11", "gpio12", "gpio13", "gpio14";
function = "blsp0_spi";
--
2.17.1


2023-05-31 07:21:17

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/2] arm64: dts: qcom: ipq5332: enable GPIO based LEDs and Buttons

On 31/05/2023 08:56, 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 <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts | 43 +++++++++++++++++++++
> arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts | 43 +++++++++++++++++++++
> arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 43 +++++++++++++++++++++
> 3 files changed, 129 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..ba733b6cab06 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,33 @@
> chosen {
> stdout-path = "serial0";
> };
> +
> + gpio_keys {

No underscores in node names.

> + compatible = "gpio-keys";
> + pinctrl-0 = <&gpio_keys_default>;
> + pinctrl-names = "default";
> + status = "okay";

It's by default, why do you need it?



Best regards,
Krzysztof


2023-05-31 08:20:05

by Sridharan S N

[permalink] [raw]
Subject: Re: [PATCH 1/2] arm64: dts: qcom: ipq5332: enable GPIO based LEDs and Buttons


On 5/31/2023 12:45 PM, Krzysztof Kozlowski wrote:
> On 31/05/2023 08:56, 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 <[email protected]>
>> ---
>> arch/arm64/boot/dts/qcom/ipq5332-mi01.2.dts | 43 +++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/ipq5332-rdp442.dts | 43 +++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 43 +++++++++++++++++++++
>> 3 files changed, 129 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..ba733b6cab06 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,33 @@
>> chosen {
>> stdout-path = "serial0";
>> };
>> +
>> + gpio_keys {
> No underscores in node names.
Will address it in V2
>
>> + compatible = "gpio-keys";
>> + pinctrl-0 = <&gpio_keys_default>;
>> + pinctrl-names = "default";
>> + status = "okay";
> It's by default, why do you need it?
Will address it in V2
>
>
>
> Best regards,
> Krzysztof
>