linux-riscv.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: JaeJoon Jung <rgbi3307@gmail.com>
To: Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Anup Patel <Anup.Patel@wdc.com>
Cc: linux-riscv@lists.infradead.org
Subject: [PATCH] riscv: Add gpio and pwmleds to DTS(/arch/riscv/boot/dts/sifive/)
Date: Tue, 21 Jan 2020 15:58:37 +0900	[thread overview]
Message-ID: <CAHOvCC5aEc=p_6Yxkyr8n9BXZug_-NA_CJswu8vtkM8aOBhWvg@mail.gmail.com> (raw)

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";
+                        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 {
+                        label = "led3";
+                        max-brightness = <255>;
+                        active-low = <1>;
+                        pwms = <&pwm0 2 7812500 0>;
+                        linux,default-trigger = "netdev";
+                };
+                panic {
+                        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.


             reply	other threads:[~2020-01-21  6:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21  6:58 JaeJoon Jung [this message]
2020-01-21 17:20 ` [PATCH] riscv: Add gpio and pwmleds to DTS(/arch/riscv/boot/dts/sifive/) David Abdurachmanov
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='CAHOvCC5aEc=p_6Yxkyr8n9BXZug_-NA_CJswu8vtkM8aOBhWvg@mail.gmail.com' \
    --to=rgbi3307@gmail.com \
    --cc=Anup.Patel@wdc.com \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.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).