All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Odroid XU3 DTS: Hook up PWM and use it for LEDs
@ 2015-05-12  0:29 Peter Chubb
  2015-05-12  1:15 ` Krzysztof Kozlowski
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Chubb @ 2015-05-12  0:29 UTC (permalink / raw)
  To: kgene, linux-samsung-soc


PWM output on the XU3 wasn't working because it wasn't hooked up to
its pincontrol.

This patch:
   -- hooks up PWM to its pincontrol, and documents what
      the outputs are on the XU3
   -- switches the LEDs that are on PWM outputs to use PWM
      rather than GPIO.

The main effect is that the brightness of the LEDs can be controlled, and
user-mode fan control is enabled via /sys/class/pwm

The patch is against the for-next branch of the linux-samsung tree.

Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
---
 arch/arm/boot/dts/exynos5422-odroidxu3.dts | 55 +++++++++++++++++++++---------
 1 file changed, 39 insertions(+), 16 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index 026f83e..84d71a1 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -13,6 +13,7 @@
 /dts-v1/;
 #include <dt-bindings/gpio/gpio.h>
 #include "exynos5800.dtsi"
+#include <dt-bindings/gpio/gpio.h>

 / {
        model = "Hardkernel Odroid XU3";
@@ -287,25 +288,47 @@
                status = "okay";
        };

-       leds {
-               compatible = "gpio-leds";
-               heartbeat {
-                       label = "blue:heartbeart";
-                       gpios = <&gpb2 2 0>;
-                       default-state = "off";
-                       linux,default-trigger = "heartbeat";
-               };
+       pwm: pwm@12dd0000 {
+               /*
+                * PWM 0 -- fan
+                * PWM 1 -- Green LED
+                * PWM 2 -- Blue LED
+                * PWM 3 -- on MIPI connector for backlight
+                */
+               pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
+               pinctrl-names = "default";
+               status = "okay";
+       };

-               eMMC {
-                       label = "green:eMMC";
-                       gpios = <&gpb2 1 0>;
-                       default-state = "off";
-                       linux,default-trigger = "mmc0";
-               };
+       pwmleds {
+            compatible = "pwm-leds";
+
+            greenled {
+                    label = "green:mmc0";
+                    pwms = <&pwm 1 2000000 0>;
+                    pwm-names = "pwm1";
+                    /*
+                     * Green LED is much brighter than the others
+                     * so limit its max brightness
+                     */
+                    max_brightness = <127>;
+                    linux,default-trigger = "mmc0";
+            };
+
+            blueled {
+                    label = "blue:heartbeat";
+                    pwms = <&pwm 2 2000000 0>;
+                    pwm-names = "pwm2";
+                    max_brightness = <255>;
+                    linux,default-trigger = "heartbeat";
+            };
+       };

-               microSD {
+       gpioleds {
+               compatible = "gpio-leds";
+               redled {
                        label = "red:microSD";
-                       gpios = <&gpx2 3 0>;
+                       gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                        linux,default-trigger = "mmc1";
                };
--
2.1.4


--
Dr Peter Chubb                                  peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

________________________________

The information in this e-mail may be confidential and subject to legal professional privilege and/or copyright. National ICT Australia Limited accepts no liability for any damage caused by this email or its attachments.

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2] ARM: dts: Odroid XU3 -- Hook up PWM and use it for LEDs
  2015-05-12  1:37     ` Krzysztof Kozlowski
@ 2015-05-12  0:29       ` Peter Chubb
  2015-05-12  2:32         ` Krzysztof Kozlowski
                           ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Peter Chubb @ 2015-05-12  0:29 UTC (permalink / raw)
  To: Krzysztof Kozlowski; +Cc: Peter Chubb, kgene, linux-samsung-soc


PWM output wasn't working because it wasn't hooked up to its pincontrol.
This patch:
   -- hooks up PWM to its pincontrol, and documents what
      the outputs are on the XU3
   -- switches the LEDs that are on PWM outputs to use PWM
      rather than GPIO.

The main effect is that the brightness of the LEDs can be controlled, and
user-mode fan control is enabled via /sys/class/pwm

Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
---
 arch/arm/boot/dts/exynos5422-odroidxu3.dts | 58 +++++++++++++++++++++---------
 1 file changed, 41 insertions(+), 17 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index 026f83e..095282b 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -13,6 +13,7 @@
 /dts-v1/;
 #include <dt-bindings/gpio/gpio.h>
 #include "exynos5800.dtsi"
+#include <dt-bindings/gpio/gpio.h>

 / {
        model = "Hardkernel Odroid XU3";
@@ -287,25 +288,35 @@
                status = "okay";
        };

-       leds {
-               compatible = "gpio-leds";
-               heartbeat {
-                       label = "blue:heartbeart";
-                       gpios = <&gpb2 2 0>;
-                       default-state = "off";
-                       linux,default-trigger = "heartbeat";
-               };
-
-               eMMC {
-                       label = "green:eMMC";
-                       gpios = <&gpb2 1 0>;
-                       default-state = "off";
-                       linux,default-trigger = "mmc0";
-               };
+       pwmleds {
+            compatible = "pwm-leds";
+
+            greenled {
+                    label = "green:mmc0";
+                    pwms = <&pwm 1 2000000 0>;
+                    pwm-names = "pwm1";
+                    /*
+                     * Green LED is much brighter than the others
+                     * so limit its max brightness
+                     */
+                    max_brightness = <127>;
+                    linux,default-trigger = "mmc0";
+            };
+
+            blueled {
+                    label = "blue:heartbeat";
+                    pwms = <&pwm 2 2000000 0>;
+                    pwm-names = "pwm2";
+                    max_brightness = <255>;
+                    linux,default-trigger = "heartbeat";
+            };
+       };

-               microSD {
+       gpioleds {
+               compatible = "gpio-leds";
+               redled {
                        label = "red:microSD";
-                       gpios = <&gpx2 3 0>;
+                       gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                        linux,default-trigger = "mmc1";
                };
@@ -411,3 +422,16 @@
                shunt-resistor = <10000>;
        };
 };
+
+&pwm {
+       /*
+        * PWM 0 -- fan
+        * PWM 1 -- Green LED
+        * PWM 2 -- Blue LED
+        * PWM 3 -- on MIPI connector for backlight
+        */
+       pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
--
2.1.4



--
Dr Peter Chubb                                  peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

________________________________

The information in this e-mail may be confidential and subject to legal professional privilege and/or copyright. National ICT Australia Limited accepts no liability for any damage caused by this email or its attachments.

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] Odroid XU3 DTS: Hook up PWM and use it for LEDs
  2015-05-12  0:29 [PATCH] Odroid XU3 DTS: Hook up PWM and use it for LEDs Peter Chubb
@ 2015-05-12  1:15 ` Krzysztof Kozlowski
  2015-05-12  1:25   ` Peter Chubb
  0 siblings, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2015-05-12  1:15 UTC (permalink / raw)
  To: Peter Chubb; +Cc: kgene, linux-samsung-soc

2015-05-12 9:29 GMT+09:00 Peter Chubb <peter.chubb@nicta.com.au>:
>
> PWM output on the XU3 wasn't working because it wasn't hooked up to
> its pincontrol.

Hi,

Use a common convention of patch title - prefix with "ARM: dts:" and
optionally name of the board. Just look at previous commits in
arch/arm/boot/dts/.

>
> This patch:
>    -- hooks up PWM to its pincontrol, and documents what
>       the outputs are on the XU3
>    -- switches the LEDs that are on PWM outputs to use PWM
>       rather than GPIO.
>
> The main effect is that the brightness of the LEDs can be controlled, and
> user-mode fan control is enabled via /sys/class/pwm
>
> The patch is against the for-next branch of the linux-samsung tree.
>
> Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 55 +++++++++++++++++++++---------
>  1 file changed, 39 insertions(+), 16 deletions(-)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index 026f83e..84d71a1 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -13,6 +13,7 @@
>  /dts-v1/;
>  #include <dt-bindings/gpio/gpio.h>
>  #include "exynos5800.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
>
>  / {
>         model = "Hardkernel Odroid XU3";
> @@ -287,25 +288,47 @@
>                 status = "okay";
>         };
>
> -       leds {
> -               compatible = "gpio-leds";
> -               heartbeat {
> -                       label = "blue:heartbeart";
> -                       gpios = <&gpb2 2 0>;
> -                       default-state = "off";
> -                       linux,default-trigger = "heartbeat";
> -               };
> +       pwm: pwm@12dd0000 {

The label for node is already specified in exynos5420.dtsi. Don't
duplicate it. Actually when overriding nodes you should use
label-convention:
&pwm {
    ...
};

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] Odroid XU3 DTS: Hook up PWM and use it for LEDs
  2015-05-12  1:15 ` Krzysztof Kozlowski
@ 2015-05-12  1:25   ` Peter Chubb
  2015-05-12  1:37     ` Krzysztof Kozlowski
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Chubb @ 2015-05-12  1:25 UTC (permalink / raw)
  To: Krzysztof Kozlowski; +Cc: Peter Chubb, kgene, linux-samsung-soc

>>>>> "Krzysztof" == Krzysztof Kozlowski <k.kozlowski@samsung.com> writes:

Krzysztof> 2015-05-12 9:29 GMT+09:00 Peter Chubb
Krzysztof> <peter.chubb@nicta.com.au>:
>>
>> PWM output on the XU3 wasn't working because it wasn't hooked up to
>> its pincontrol.

Krzysztof> Hi,

Krzysztof> Use a common convention of patch title - prefix with "ARM:
Krzysztof> dts:" and optionally name of the board. Just look at
Krzysztof> previous commits in arch/arm/boot/dts/.


Thanks I'll fix.

Krzysztof> The label for node is already specified in
Krzysztof> exynos5420.dtsi. Don't duplicate it. Actually when
Krzysztof> overriding nodes you should use label-convention: &pwm {
Krzysztof> ...  };

I wasn't sure whether I shouldn't have changed exynos5422.dtsi
rather than here, and just leave the "status = 'okay'" part for this file.

What do you think?  All exynos 54xx parts have the same PWM using the
same pincontrol -- if it's enabled maybe it should be common?

--
Dr Peter Chubb                                  peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

________________________________

The information in this e-mail may be confidential and subject to legal professional privilege and/or copyright. National ICT Australia Limited accepts no liability for any damage caused by this email or its attachments.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] Odroid XU3 DTS: Hook up PWM and use it for LEDs
  2015-05-12  1:25   ` Peter Chubb
@ 2015-05-12  1:37     ` Krzysztof Kozlowski
  2015-05-12  0:29       ` [PATCH v2] ARM: dts: Odroid XU3 -- " Peter Chubb
  0 siblings, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2015-05-12  1:37 UTC (permalink / raw)
  To: Peter Chubb; +Cc: Krzysztof Kozlowski, kgene, linux-samsung-soc

2015-05-12 10:25 GMT+09:00 Peter Chubb <peter.chubb@nicta.com.au>:
>
> Krzysztof> The label for node is already specified in
> Krzysztof> exynos5420.dtsi. Don't duplicate it. Actually when
> Krzysztof> overriding nodes you should use label-convention: &pwm {
> Krzysztof> ...  };
>
> I wasn't sure whether I shouldn't have changed exynos5422.dtsi
> rather than here, and just leave the "status = 'okay'" part for this file.
>
> What do you think?  All exynos 54xx parts have the same PWM using the
> same pincontrol -- if it's enabled maybe it should be common?
>

You are actually overriding the node here, so I meant that instead of:

+       pwm: pwm@12dd0000 {
+               /*
+                * PWM 0 -- fan
+                * PWM 1 -- Green LED
+                * PWM 2 -- Blue LED
+                * PWM 3 -- on MIPI connector for backlight
+                */
+               pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
+               pinctrl-names = "default";
+               status = "okay";
+       };

do like:

+ &pwm {
+               /*
+                * PWM 0 -- fan
+                * PWM 1 -- Green LED
+                * PWM 2 -- Blue LED
+                * PWM 3 -- on MIPI connector for backlight
+                */
+               pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
+               pinctrl-names = "default";
+               status = "okay";
+       };

This does not require touching exynos5422.dtsi (there is no such file
:) ) or other DTSI.

As for generalizing this for other Exynos54xx boards - it depends if
the wires are the same. I don't know how it is connected on other
boards.
Additionally what is connected to the GPIOs of the SoC is not usually
a property of the SoC but the board. So in such case it could go to a
common-board-DTSI file for but rather not for the SoC DTSI. Also then
it would require testing on these common boards.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] ARM: dts: Odroid XU3 -- Hook up PWM and use it for LEDs
  2015-05-12  0:29       ` [PATCH v2] ARM: dts: Odroid XU3 -- " Peter Chubb
@ 2015-05-12  2:32         ` Krzysztof Kozlowski
  2015-05-12  3:26         ` Krzysztof Kozlowski
                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 14+ messages in thread
From: Krzysztof Kozlowski @ 2015-05-12  2:32 UTC (permalink / raw)
  To: Peter Chubb; +Cc: Krzysztof Kozlowski, kgene, linux-samsung-soc

2015-05-12 9:29 GMT+09:00 Peter Chubb <peter.chubb@nicta.com.au>:
>
> PWM output wasn't working because it wasn't hooked up to its pincontrol.
> This patch:
>    -- hooks up PWM to its pincontrol, and documents what
>       the outputs are on the XU3
>    -- switches the LEDs that are on PWM outputs to use PWM
>       rather than GPIO.
>
> The main effect is that the brightness of the LEDs can be controlled, and
> user-mode fan control is enabled via /sys/class/pwm
>
> Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>

The patch looks good (although a tested-by from someone would be nice):
Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

The subject should be something like
 - ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
 - ARM: dts: Hook up PWM and use it for LEDs in exynos5422-odroidxu3

but that can be fixed when applying, so no need to resend.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] ARM: dts: Odroid XU3 -- Hook up PWM and use it for LEDs
  2015-05-12  0:29       ` [PATCH v2] ARM: dts: Odroid XU3 -- " Peter Chubb
  2015-05-12  2:32         ` Krzysztof Kozlowski
@ 2015-05-12  3:26         ` Krzysztof Kozlowski
  2015-05-12 17:47         ` Kukjin Kim
  2015-05-13  4:01         ` [PATCH v3] ARM: dts: exynos5422-odroidxu3: " Peter Chubb
  3 siblings, 0 replies; 14+ messages in thread
From: Krzysztof Kozlowski @ 2015-05-12  3:26 UTC (permalink / raw)
  To: Peter Chubb; +Cc: kgene, linux-samsung-soc

On 12.05.2015 09:29, Peter Chubb wrote:
> 
> PWM output wasn't working because it wasn't hooked up to its pincontrol.
> This patch:
>    -- hooks up PWM to its pincontrol, and documents what
>       the outputs are on the XU3
>    -- switches the LEDs that are on PWM outputs to use PWM
>       rather than GPIO.
> 
> The main effect is that the brightness of the LEDs can be controlled, and
> user-mode fan control is enabled via /sys/class/pwm
> 
> Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 58 +++++++++++++++++++++---------
>  1 file changed, 41 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index 026f83e..095282b 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -13,6 +13,7 @@
>  /dts-v1/;
>  #include <dt-bindings/gpio/gpio.h>
>  #include "exynos5800.dtsi"
> +#include <dt-bindings/gpio/gpio.h>

Errr, probably a leftover after rebasing... please fix it up.

> 
>  / {
>         model = "Hardkernel Odroid XU3";
> @@ -287,25 +288,35 @@
>                 status = "okay";
>         };
> 
> -       leds {
> -               compatible = "gpio-leds";
> -               heartbeat {
> -                       label = "blue:heartbeart";
> -                       gpios = <&gpb2 2 0>;
> -                       default-state = "off";
> -                       linux,default-trigger = "heartbeat";
> -               };
> -
> -               eMMC {
> -                       label = "green:eMMC";
> -                       gpios = <&gpb2 1 0>;
> -                       default-state = "off";
> -                       linux,default-trigger = "mmc0";
> -               };
> +       pwmleds {
> +            compatible = "pwm-leds";
> +
> +            greenled {
> +                    label = "green:mmc0";
> +                    pwms = <&pwm 1 2000000 0>;
> +                    pwm-names = "pwm1";
> +                    /*
> +                     * Green LED is much brighter than the others
> +                     * so limit its max brightness
> +                     */
> +                    max_brightness = <127>;
> +                    linux,default-trigger = "mmc0";
> +            };
> +
> +            blueled {
> +                    label = "blue:heartbeat";
> +                    pwms = <&pwm 2 2000000 0>;
> +                    pwm-names = "pwm2";
> +                    max_brightness = <255>;
> +                    linux,default-trigger = "heartbeat";
> +            };
> +       };
> 
> -               microSD {
> +       gpioleds {
> +               compatible = "gpio-leds";
> +               redled {
>                         label = "red:microSD";
> -                       gpios = <&gpx2 3 0>;
> +                       gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
>                         default-state = "off";
>                         linux,default-trigger = "mmc1";
>                 };
> @@ -411,3 +422,16 @@
>                 shunt-resistor = <10000>;
>         };
>  };
> +
> +&pwm {
> +       /*
> +        * PWM 0 -- fan
> +        * PWM 1 -- Green LED
> +        * PWM 2 -- Blue LED
> +        * PWM 3 -- on MIPI connector for backlight
> +        */
> +       pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
> +       pinctrl-names = "default";
> +       status = "okay";
> +};
> +
> --
> 2.1.4
> 
> 
> 
> --
> Dr Peter Chubb                                  peter.chubb AT nicta.com.au
> http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA
> 
> ________________________________
> 
> The information in this e-mail may be confidential and subject to legal professional privilege and/or copyright. National ICT Australia Limited accepts no liability for any damage caused by this email or its attachments.
> 

Please remove this footer from email. If this patch is confidential,
should I apply it? I don't want to apply confidential patches...

Additionally there is something wrong with your mailer because it sets
the date from the patchset, so this email has the same date as v1. So
the email ended not at the top of mail mailbox. Are you using git
send-email?

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] ARM: dts: Odroid XU3 -- Hook up PWM and use it for LEDs
  2015-05-12  0:29       ` [PATCH v2] ARM: dts: Odroid XU3 -- " Peter Chubb
  2015-05-12  2:32         ` Krzysztof Kozlowski
  2015-05-12  3:26         ` Krzysztof Kozlowski
@ 2015-05-12 17:47         ` Kukjin Kim
  2015-05-13  4:01         ` [PATCH v3] ARM: dts: exynos5422-odroidxu3: " Peter Chubb
  3 siblings, 0 replies; 14+ messages in thread
From: Kukjin Kim @ 2015-05-12 17:47 UTC (permalink / raw)
  To: Peter Chubb; +Cc: Krzysztof Kozlowski, kgene, linux-samsung-soc

On 05/12/15 09:29, Peter Chubb wrote:
> 
> PWM output wasn't working because it wasn't hooked up to its pincontrol.
> This patch:
>    -- hooks up PWM to its pincontrol, and documents what

don't use '--' can occur some confusing in git... just '-' is enough.

>       the outputs are on the XU3
>    -- switches the LEDs that are on PWM outputs to use PWM
>       rather than GPIO.
> 
> The main effect is that the brightness of the LEDs can be controlled, and
> user-mode fan control is enabled via /sys/class/pwm

the purpose of this patch looks good, but there are small comments.

> 
> Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 58 +++++++++++++++++++++---------
>  1 file changed, 41 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index 026f83e..095282b 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -13,6 +13,7 @@
>  /dts-v1/;
>  #include <dt-bindings/gpio/gpio.h>
>  #include "exynos5800.dtsi"
> +#include <dt-bindings/gpio/gpio.h>

Don't add same inclusion.

> 
>  / {
>         model = "Hardkernel Odroid XU3";
> @@ -287,25 +288,35 @@
>                 status = "okay";
>         };
> 
> -       leds {
> -               compatible = "gpio-leds";
> -               heartbeat {
> -                       label = "blue:heartbeart";
> -                       gpios = <&gpb2 2 0>;
> -                       default-state = "off";
> -                       linux,default-trigger = "heartbeat";
> -               };
> -
> -               eMMC {
> -                       label = "green:eMMC";
> -                       gpios = <&gpb2 1 0>;
> -                       default-state = "off";
> -                       linux,default-trigger = "mmc0";
> -               };
> +       pwmleds {
> +            compatible = "pwm-leds";
> +
> +            greenled {
> +                    label = "green:mmc0";
> +                    pwms = <&pwm 1 2000000 0>;
> +                    pwm-names = "pwm1";
> +                    /*
> +                     * Green LED is much brighter than the others
> +                     * so limit its max brightness
> +                     */
> +                    max_brightness = <127>;
> +                    linux,default-trigger = "mmc0";
> +            };
> +
> +            blueled {
> +                    label = "blue:heartbeat";
> +                    pwms = <&pwm 2 2000000 0>;
> +                    pwm-names = "pwm2";
> +                    max_brightness = <255>;
> +                    linux,default-trigger = "heartbeat";
> +            };
> +       };
> 
> -               microSD {
> +       gpioleds {
> +               compatible = "gpio-leds";
> +               redled {
>                         label = "red:microSD";
> -                       gpios = <&gpx2 3 0>;
> +                       gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
>                         default-state = "off";
>                         linux,default-trigger = "mmc1";
>                 };

I need to check about gpx2-3...

> @@ -411,3 +422,16 @@
>                 shunt-resistor = <10000>;
>         };
>  };
> +
> +&pwm {
> +       /*
> +        * PWM 0 -- fan
> +        * PWM 1 -- Green LED
> +        * PWM 2 -- Blue LED
> +        * PWM 3 -- on MIPI connector for backlight
> +        */
> +       pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
> +       pinctrl-names = "default";
> +       status = "okay";
> +};
> +

Please don't add last empty line.

> --
> 2.1.4

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v3] ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
  2015-05-12  0:29       ` [PATCH v2] ARM: dts: Odroid XU3 -- " Peter Chubb
                           ` (2 preceding siblings ...)
  2015-05-12 17:47         ` Kukjin Kim
@ 2015-05-13  4:01         ` Peter Chubb
  2015-05-13 13:17           ` Krzysztof Kozlowski
  3 siblings, 1 reply; 14+ messages in thread
From: Peter Chubb @ 2015-05-13  4:01 UTC (permalink / raw)
  To: Krzysztof Kozlowski, kgene, linux-samsung-soc


PWM output wasn't working because it wasn't hooked up to its pincontrol.
This patch:
   - hooks up PWM to its pincontrol, and documents what
     the outputs are on the XU3
   - switches the LEDs that are on PWM outputs to use PWM
     rather than GPIO.

The main effect is that the brightness of the LEDs can be controlled, and
user-mode fan control is enabled via /sys/class/pwm

Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
---
 arch/arm/boot/dts/exynos5422-odroidxu3.dts | 56 +++++++++++++++++++++---------
 1 file changed, 39 insertions(+), 17 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index f0ce60b..6f96b3d 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -287,25 +287,35 @@
 		status = "okay";
 	};
 
-	leds {
-		compatible = "gpio-leds";
-		heartbeat {
-			label = "blue:heartbeart";
-			gpios = <&gpb2 2 0>;
-			default-state = "off";
-			linux,default-trigger = "heartbeat";
-		};
-
-		eMMC {
-			label = "green:eMMC";
-			gpios = <&gpb2 1 0>;
-			default-state = "off";
-			linux,default-trigger = "mmc0";
-		};
+	pwmleds {
+	     compatible = "pwm-leds";
+
+	     greenled {
+		     label = "green:mmc0";
+		     pwms = <&pwm 1 2000000 0>;
+		     pwm-names = "pwm1";
+		     /*
+		      * Green LED is much brighter than the others
+		      * so limit its max brightness
+		      */
+		     max_brightness = <127>; 
+		     linux,default-trigger = "mmc0";
+	     };
+
+	     blueled {
+		     label = "blue:heartbeat";
+		     pwms = <&pwm 2 2000000 0>;
+		     pwm-names = "pwm2";
+		     max_brightness = <255>;
+		     linux,default-trigger = "heartbeat";
+	     };
+	};
 
-		microSD {
+	gpioleds {
+		compatible = "gpio-leds";
+		redled {
 			label = "red:microSD";
-			gpios = <&gpx2 3 0>;
+			gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 			linux,default-trigger = "mmc1";
 		};
@@ -415,3 +425,15 @@
 		shunt-resistor = <10000>;
 	};
 };
+
+&pwm {
+	/*
+	 * PWM 0 -- fan
+	 * PWM 1 -- Green LED
+	 * PWM 2 -- Blue LED
+	 * PWM 3 -- on MIPI connector for backlight
+	 */
+	pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
+	pinctrl-names = "default";
+	status = "okay";
+};
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v3] ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
  2015-05-13  4:01         ` [PATCH v3] ARM: dts: exynos5422-odroidxu3: " Peter Chubb
@ 2015-05-13 13:17           ` Krzysztof Kozlowski
  2015-05-13 23:14             ` Peter Chubb
  0 siblings, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2015-05-13 13:17 UTC (permalink / raw)
  To: Peter Chubb, kgene, linux-samsung-soc

W dniu 13.05.2015 o 13:01, Peter Chubb pisze:
> 
> PWM output wasn't working because it wasn't hooked up to its pincontrol.
> This patch:
>    - hooks up PWM to its pincontrol, and documents what
>      the outputs are on the XU3
>    - switches the LEDs that are on PWM outputs to use PWM
>      rather than GPIO.
> 
> The main effect is that the brightness of the LEDs can be controlled, and
> user-mode fan control is enabled via /sys/class/pwm
> 
> Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 56 +++++++++++++++++++++---------
>  1 file changed, 39 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index f0ce60b..6f96b3d 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -287,25 +287,35 @@
>  		status = "okay";
>  	};
>  
> -	leds {
> -		compatible = "gpio-leds";
> -		heartbeat {
> -			label = "blue:heartbeart";
> -			gpios = <&gpb2 2 0>;
> -			default-state = "off";
> -			linux,default-trigger = "heartbeat";
> -		};
> -
> -		eMMC {
> -			label = "green:eMMC";
> -			gpios = <&gpb2 1 0>;
> -			default-state = "off";
> -			linux,default-trigger = "mmc0";
> -		};
> +	pwmleds {
> +	     compatible = "pwm-leds";
> +
> +	     greenled {
> +		     label = "green:mmc0";
> +		     pwms = <&pwm 1 2000000 0>;
> +		     pwm-names = "pwm1";
> +		     /*
> +		      * Green LED is much brighter than the others
> +		      * so limit its max brightness
> +		      */
> +		     max_brightness = <127>; 

Please run checkpatch before sending a patch. Here you have trailing
whitespace error.

Additionally the indentation is broken in most of the lines - mixed tabs
with spaces. Just stick to the kernel coding convention - tabs (8
characters wide).

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v3] ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
  2015-05-13 13:17           ` Krzysztof Kozlowski
@ 2015-05-13 23:14             ` Peter Chubb
  2015-05-13 23:57               ` [PATCH v4] " Peter Chubb
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Chubb @ 2015-05-13 23:14 UTC (permalink / raw)
  To: Krzysztof Kozlowski; +Cc: Peter Chubb, kgene, linux-samsung-soc

>>>>> "Krzysztof" == Krzysztof Kozlowski <k.kozlowski@samsung.com> writes:

Krzysztof> W dniu 13.05.2015 o 13:01, Peter Chubb pisze:

Krzysztof> Please run checkpatch before sending a patch. Here you have
Krzysztof> trailing whitespace error.

Arrgh --- thanks for spotting that.

Krzysztof> Additionally the indentation is broken in most of the lines
Krzysztof> - mixed tabs with spaces. Just stick to the kernel coding
Krzysztof> convention - tabs (8 characters wide).

And that.  I'm working on another project simultaneously that uses
4-space indent, and must have forgotten to reset Emacs's indent rules.

Krzysztof> Best regards, Krzysztof

V4 coming soon.
--
Dr Peter Chubb				        peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v4] ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
  2015-05-13 23:14             ` Peter Chubb
@ 2015-05-13 23:57               ` Peter Chubb
  2015-07-30 20:09                 ` Anand Moon
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Chubb @ 2015-05-13 23:57 UTC (permalink / raw)
  To: Peter Chubb; +Cc: Krzysztof Kozlowski, kgene, linux-samsung-soc


PWM output wasn't working because it wasn't hooked up to its pincontrol.
This patch:
   - hooks up PWM to its pincontrol, and documents what
     the outputs are on the XU3
   - switches the LEDs that are on PWM outputs to use PWM
     rather than GPIO.

The main effect is that the brightness of the LEDs can be controlled, and
user-mode fan control is enabled via /sys/class/pwm

Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
---
 arch/arm/boot/dts/exynos5422-odroidxu3.dts | 50 +++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 14 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index f0ce60b..0c62156 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -287,25 +287,35 @@
 		status = "okay";
 	};
 
-	leds {
-		compatible = "gpio-leds";
-		heartbeat {
-			label = "blue:heartbeart";
-			gpios = <&gpb2 2 0>;
-			default-state = "off";
-			linux,default-trigger = "heartbeat";
+	pwmleds {
+		compatible = "pwm-leds";
+
+		greenled {
+			label = "green:mmc0";
+			pwms = <&pwm 1 2000000 0>;
+			pwm-names = "pwm1";
+			/*
+			 * Green LED is much brighter than the others
+			 * so limit its max brightness
+			 */
+			max_brightness = <127>;
+			linux,default-trigger = "mmc0";
 		};
 
-		eMMC {
-			label = "green:eMMC";
-			gpios = <&gpb2 1 0>;
-			default-state = "off";
-			linux,default-trigger = "mmc0";
+		blueled {
+			label = "blue:heartbeat";
+			pwms = <&pwm 2 2000000 0>;
+			pwm-names = "pwm2";
+			max_brightness = <255>;
+			linux,default-trigger = "heartbeat";
 		};
+	};
 
-		microSD {
+	gpioleds {
+		compatible = "gpio-leds";
+		redled {
 			label = "red:microSD";
-			gpios = <&gpx2 3 0>;
+			gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 			linux,default-trigger = "mmc1";
 		};
@@ -415,3 +425,15 @@
 		shunt-resistor = <10000>;
 	};
 };
+
+&pwm {
+	/*
+	 * PWM 0 -- fan
+	 * PWM 1 -- Green LED
+	 * PWM 2 -- Blue LED
+	 * PWM 3 -- on MIPI connector for backlight
+	 */
+	pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
+	pinctrl-names = "default";
+	status = "okay";
+};
-- 
2.1.4

-- 
Dr Peter Chubb				        peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v4] ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
  2015-05-13 23:57               ` [PATCH v4] " Peter Chubb
@ 2015-07-30 20:09                 ` Anand Moon
  2015-07-31 23:23                   ` Peter Chubb
  0 siblings, 1 reply; 14+ messages in thread
From: Anand Moon @ 2015-07-30 20:09 UTC (permalink / raw)
  To: Peter Chubb; +Cc: Krzysztof Kozlowski, kgene, linux-samsung-soc

Hi Peter,

On 14/05/2015, Peter Chubb <peter.chubb@nicta.com.au> wrote:
>
> PWM output wasn't working because it wasn't hooked up to its pincontrol.
> This patch:
>    - hooks up PWM to its pincontrol, and documents what
>      the outputs are on the XU3
>    - switches the LEDs that are on PWM outputs to use PWM
>      rather than GPIO.
>
> The main effect is that the brightness of the LEDs can be controlled, and
> user-mode fan control is enabled via /sys/class/pwm
>
> Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 50
> +++++++++++++++++++++---------
>  1 file changed, 36 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index f0ce60b..0c62156 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -287,25 +287,35 @@
>  		status = "okay";
>  	};
>
> -	leds {
> -		compatible = "gpio-leds";
> -		heartbeat {
> -			label = "blue:heartbeart";
> -			gpios = <&gpb2 2 0>;
> -			default-state = "off";
> -			linux,default-trigger = "heartbeat";
> +	pwmleds {
> +		compatible = "pwm-leds";
> +
> +		greenled {
> +			label = "green:mmc0";
> +			pwms = <&pwm 1 2000000 0>;
> +			pwm-names = "pwm1";
> +			/*
> +			 * Green LED is much brighter than the others
> +			 * so limit its max brightness
> +			 */
> +			max_brightness = <127>;
> +			linux,default-trigger = "mmc0";
>  		};
>
> -		eMMC {
> -			label = "green:eMMC";
> -			gpios = <&gpb2 1 0>;
> -			default-state = "off";
> -			linux,default-trigger = "mmc0";
> +		blueled {
> +			label = "blue:heartbeat";
> +			pwms = <&pwm 2 2000000 0>;
> +			pwm-names = "pwm2";
> +			max_brightness = <255>;
> +			linux,default-trigger = "heartbeat";
>  		};
> +	};
>
> -		microSD {
> +	gpioleds {
> +		compatible = "gpio-leds";
> +		redled {
>  			label = "red:microSD";
> -			gpios = <&gpx2 3 0>;
> +			gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
>  			default-state = "off";
>  			linux,default-trigger = "mmc1";
>  		};
> @@ -415,3 +425,15 @@
>  		shunt-resistor = <10000>;
>  	};
>  };
> +
> +&pwm {
> +	/*
> +	 * PWM 0 -- fan
> +	 * PWM 1 -- Green LED
> +	 * PWM 2 -- Blue LED
> +	 * PWM 3 -- on MIPI connector for backlight
> +	 */
> +	pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> --
> 2.1.4
>
> --
> Dr Peter Chubb				        peter.chubb AT nicta.com.au
> http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

I wonder how PWM can be enabled on the odroidxu3 board.

I could not find the node getting populated in the /sys/class/leds/

root@odroidxu3:l# la -la   /sys/class/leds/
total 0
drwxr-xr-x  2 root root 0 Jul 31 04:56 .
drwxr-xr-x 47 root root 0 Jul 31 04:56 ..
lrwxrwxrwx  1 root root 0 Jul 31 04:56 red:microSD ->
../../devices/platform/gpioleds/leds/red:microSD

Well I have enable. following  config options in .config.

CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=m
CONFIG_LEDS_SYSCON=y
# CONFIG_LEDS_PM8941_WLED is not set
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
# CONFIG_LEDS_TRIGGER_CPU is not set
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
# CONFIG_LEDS_TRIGGER_CAMERA is not set

Please let me know if I am missing some thing.

-Anand Moon
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v4] ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs
  2015-07-30 20:09                 ` Anand Moon
@ 2015-07-31 23:23                   ` Peter Chubb
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Chubb @ 2015-07-31 23:23 UTC (permalink / raw)
  To: Anand Moon; +Cc: Peter Chubb, Krzysztof Kozlowski, kgene, linux-samsung-soc

>>>>> "Anand" == Anand Moon <linux.amoon@gmail.com> writes:

Anand> Hi Peter,

Hi Anand,
   You have  LEDS-PWM built as a module --- try modprobe leds-pwm

I'm sorry, I can't try this right now -- we've just moved offices,
and the Odroid XU3 is still packed in the bottom of a box somewhere.


Peter C
-- 
Dr Peter Chubb				        peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-07-31 23:35 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-12  0:29 [PATCH] Odroid XU3 DTS: Hook up PWM and use it for LEDs Peter Chubb
2015-05-12  1:15 ` Krzysztof Kozlowski
2015-05-12  1:25   ` Peter Chubb
2015-05-12  1:37     ` Krzysztof Kozlowski
2015-05-12  0:29       ` [PATCH v2] ARM: dts: Odroid XU3 -- " Peter Chubb
2015-05-12  2:32         ` Krzysztof Kozlowski
2015-05-12  3:26         ` Krzysztof Kozlowski
2015-05-12 17:47         ` Kukjin Kim
2015-05-13  4:01         ` [PATCH v3] ARM: dts: exynos5422-odroidxu3: " Peter Chubb
2015-05-13 13:17           ` Krzysztof Kozlowski
2015-05-13 23:14             ` Peter Chubb
2015-05-13 23:57               ` [PATCH v4] " Peter Chubb
2015-07-30 20:09                 ` Anand Moon
2015-07-31 23:23                   ` Peter Chubb

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.