Message ID | 84iobwuj23.wl-peter.chubb@nicta.com.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 > -- 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
>>>>> "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
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"; +};