From: David Abdurachmanov <david.abdurachmanov@gmail.com>
To: JaeJoon Jung <rgbi3307@gmail.com>
Cc: linux-riscv <linux-riscv@lists.infradead.org>,
Anup Patel <Anup.Patel@wdc.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Paul Walmsley <paul.walmsley@sifive.com>
Subject: Re: [PATCH] riscv: Add gpio and pwmleds to DTS(/arch/riscv/boot/dts/sifive/)
Date: Tue, 21 Jan 2020 19:20:44 +0200 [thread overview]
Message-ID: <CAEn-LTrqPXeZcHYGc=FgyteDdZZn+pPeHttuOSxaPu1EfKPR7A@mail.gmail.com> (raw)
In-Reply-To: <CAHOvCC5aEc=p_6Yxkyr8n9BXZug_-NA_CJswu8vtkM8aOBhWvg@mail.gmail.com>
I have a similar patch, but still using old GPIO driver (non
upstream). See comments below.
On Tue, Jan 21, 2020 at 8:59 AM JaeJoon Jung <rgbi3307@gmail.com> wrote:
>
> I added below DTS to act gpio and pwmleds for SiFive FU540 Unleashed board.
>
> diff --git a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
> b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
> index a2e3d54e830c..b03bf570020c 100644
> --- a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
> +++ b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi
>
> + gpio0: gpio@10060000 {
> + compatible = "sifive,fu540-c000-gpio", "sifive,gpio0";
> + reg = <0x0 0x10060000 0x0 0x1000>;
> + reg-names = "control";
> + gpio-controller;
> + #gpio-cells = <2>;
> + ngpios = <16>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupt-parent = <&plic0>;
> + interrupts = <15 16 17 18 19 20 21 22 23 24
> 25 26 27 28 29 30>;
> + status = "disabled";
> + };
>
>
> diff --git a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
> b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
> index 88cfcb96bf23..f3f55dbbf737 100644
> --- a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
> +++ b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
>
> cpus {
> @@ -41,6 +41,39 @@
> clock-frequency = <RTCCLK_FREQ>;
> clock-output-names = "rtcclk";
> };
> +
> +
> + pwmleds {
> + compatible = "pwm-leds";
> + heartbeat {
> + label = "led1";
Could we have labels based on schematics and prints on PCB?
I use:
label = "green:d1";
label = "green:d2";
label = "green:d3";
label = "green:d4";
> + max-brightness = <255>;
> + active-low = <1>;
> + pwms = <&pwm0 0 7812500 0>;
> + linux,default-trigger = "heartbeat";
> + };
> + mtd {
> + label = "led2";
> + max-brightness = <255>;
> + active-low = <1>;
> + pwms = <&pwm0 1 7812500 0>;
> + linux,default-trigger = "mtd";
> + };
> + netdev {
Just a quick note. For this to work properly you also need to have udev rule.
I think, there was a patch posted in 2019 to enable netdev
configuration in DTS to avoid having configuration via udev or
similar, but that wasn't merged the last time I checked (late 2019).
See:
[PATCH 4/4] leds: netdev trigger: allow setting initial values in device tree
https://www.spinics.net/lists/netdev/msg557736.html
> + label = "led3";
> + max-brightness = <255>;
> + active-low = <1>;
> + pwms = <&pwm0 2 7812500 0>;
> + linux,default-trigger = "netdev";
> + };
> + panic {
I find that panic PWM LED doesn't actually work for me.
IIUC this might only work for GPIO attached LEDs based on comments I found.
I have this LED remapped for mmc0 activity:
mmc0 {
label = "green:d4";
pwms = <&pwm0 3 2000000 0>;
max-brightness = <255>;
linux,default-trigger = "mmc0";
};
> + label = "led4";
> + max-brightness = <255>;
> + active-low = <1>;
> + pwms = <&pwm0 3 7812500 0>;
> + linux,default-trigger = "panic";
> + };
> + };
> };
>
> &uart0 {
> @@ -94,3 +127,7 @@
> &pwm1 {
> status = "okay";
> };
> +
> +&gpio0 {
> + status = "okay";
> +};
>
>
> If apply above DTS, the gpio-sifive driver works well without source
> modification.
> drivers/gpio/gpio-sifive.c
> drivers/leds/leds-pwm.c
>
> I have checked below:
>
> led1(D1) is acting well as heartbeat.
>
> RISCV-FU540:/sys/class/leds# pwd
> /sys/class/leds
> RISCV-FU540:/sys/class/leds# ll
> total 0
> drwxr-xr-x 2 root root 0 Jan 1 00:00 ./
> drwxr-xr-x 32 root root 0 Jan 1 00:00 ../
> lrwxrwxrwx 1 root root 0 Jan 1 00:00 led1 ->
> ../../devices/platform/pwmleds/leds/led1/
> lrwxrwxrwx 1 root root 0 Jan 1 00:00 led2 ->
> ../../devices/platform/pwmleds/leds/led2/
> lrwxrwxrwx 1 root root 0 Jan 1 00:00 led3 ->
> ../../devices/platform/pwmleds/leds/led3/
> lrwxrwxrwx 1 root root 0 Jan 1 00:00 led4 ->
> ../../devices/platform/pwmleds/leds/led4/
>
> RISCV-FU540:/sys/class/leds# cd led3
> RISCV-FU540:/sys/class/leds/led3# ll
> total 0
> drwxr-xr-x 2 root root 0 Jan 1 00:00 ./
> drwxr-xr-x 6 root root 0 Jan 1 00:00 ../
> -rw-r--r-- 1 root root 4096 Jan 1 00:01 brightness
> lrwxrwxrwx 1 root root 0 Jan 1 00:00 device ->
> ../../../pwmleds/
> -r--r--r-- 1 root root 4096 Jan 1 00:00 max_brightness
> lrwxrwxrwx 1 root root 0 Jan 1 00:00 subsystem ->
> ../../../../../class/leds/
> -rw-r--r-- 1 root root 4096 Jan 1 00:00 trigger
> -rw-r--r-- 1 root root 4096 Jan 1 00:00 uevent
> RISCV-FU540:/sys/class/leds/led3# echo 1 > brightness
> RISCV-FU540:/sys/class/leds/led3# echo 127 > brightness
> RISCV-FU540:/sys/class/leds/led3# echo 255 > brightness
>
> leds(D1, D2, D3, D4) are acting well as pwm brightness.
>
next prev parent reply other threads:[~2020-01-21 17:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-21 6:58 [PATCH] riscv: Add gpio and pwmleds to DTS(/arch/riscv/boot/dts/sifive/) JaeJoon Jung
2020-01-21 17:20 ` David Abdurachmanov [this message]
2020-01-30 3:35 ` Paul Walmsley
2020-01-30 6:23 ` JaeJoon Jung
2020-01-30 16:13 ` David Abdurachmanov
2020-01-30 17:20 ` JaeJoon Jung
2020-01-31 13:20 ` David Abdurachmanov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAEn-LTrqPXeZcHYGc=FgyteDdZZn+pPeHttuOSxaPu1EfKPR7A@mail.gmail.com' \
--to=david.abdurachmanov@gmail.com \
--cc=Anup.Patel@wdc.com \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rgbi3307@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).