Control the Chromecast's two LEDs using PWM instead of GPIO pins. This
allows for variable brightness.

Signed-off-by: Thomas Hebb <tommyh...@gmail.com>
---
 .../boot/dts/berlin2cd-google-chromecast.dts  | 20 ++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2cd-google-chromecast.dts 
b/arch/arm/boot/dts/berlin2cd-google-chromecast.dts
index 54221f55bfa2..fb71e5436420 100644
--- a/arch/arm/boot/dts/berlin2cd-google-chromecast.dts
+++ b/arch/arm/boot/dts/berlin2cd-google-chromecast.dts
@@ -66,18 +66,21 @@
        };
 
        leds {
-               compatible = "gpio-leds";
+               compatible = "pwm-leds";
+               pinctrl-0 = <&ledpwm_pmux>;
+               pinctrl-names = "default";
 
                white {
                        label = "white";
-                       gpios = <&portc 1 GPIO_ACTIVE_HIGH>;
-                       default-state = "keep";
+                       pwms = <&pwm 0 600000 0>;
+                       max-brightness = <255>;
+                       linux,default-trigger = "default-on";
                };
 
                red {
                        label = "red";
-                       gpios = <&portc 2 GPIO_ACTIVE_HIGH>;
-                       default-state = "keep";
+                       pwms = <&pwm 1 600000 0>;
+                       max-brightness = <255>;
                };
        };
 };
@@ -96,3 +99,10 @@
 &usb_phy1 { status = "okay"; };
 
 &usb1 { status = "okay"; };
+
+&soc_pinctrl {
+       ledpwm_pmux: ledpwm-pmux {
+               groups = "G0";
+               function = "pwm";
+       };
+};
-- 
2.17.0

Reply via email to