All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacek Anaszewski <j.anaszewski81@gmail.com>
To: "Álvaro Fernández Rojas" <noltari@gmail.com>,
	linux-leds@vger.kernel.org, cooloney@gmail.com, jogo@openwrt.org,
	f.fainelli@gmail.com, cernekee@gmail.com,
	j.anaszewski@samsung.com, devicetree@vger.kernel.org
Subject: Re: [PATCH v3 1/2] leds: add DT binding for BCM6328 LED controller
Date: Sun, 26 Apr 2015 13:09:47 +0200	[thread overview]
Message-ID: <20150426130947.2bd5ea2e@ja.home> (raw)
In-Reply-To: <1429895176-21818-2-git-send-email-noltari@gmail.com>

Hi Alvaro,

Thanks for the update. Since this patch will require also DT ack,
please add devicetree@vger.kernel.org on cc as you'll be posting
next version

On Fri, 24 Apr 2015 19:06:15 +0200
Álvaro Fernández Rojas  <noltari@gmail.com> wrote:

> This adds device tree binding documentation for the Broadcom BCM6328 LED controller.
> 
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> Signed-off-by: Jonas Gorski <jogo@openwrt.org>
> ---
>  v3: introduce changes suggested by Jacek
>  - Revert compatible string to "brcm,bcm6328-leds".
>  - Improved description.
>  - Renamed normal LEDs to hardware controlled.
>  - Explain that LEDs are active high by default on active-low optional property.
>  - Properties are now grouped depending on the type of LED and optional requirement.
>  - Added more examples to explain hardware controlled LEDs and activity/link selection.
>  v2: Introduce changes suggested by Florian and Jonas.
>  - Change compatible string to "brcm,bcm6328-leds-ctrl".
>  - Make valid LEDs statement more strict.
>  - Remove compatible strings from LED subnodes.
>  - Clarify that LEDs are active high by default.
>  - Add a better description for brcm,link-signal-sources and brcm,activity-signal-sources.
> 
>  .../devicetree/bindings/leds/leds-bcm6328.txt      | 311 +++++++++++++++++++++
>  1 file changed, 311 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/leds/leds-bcm6328.txt
> 
> diff --git a/Documentation/devicetree/bindings/leds/leds-bcm6328.txt b/Documentation/devicetree/bindings/leds/leds-bcm6328.txt
> new file mode 100644
> index 0000000..6d838f8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/leds-bcm6328.txt
> @@ -0,0 +1,311 @@
> +LEDs connected to Broadcom BCM6328 controller
> +
> +This controller is present on BCM6318, BCM6328, BCM6362 and BCM63268.
> +In these SoCs it's possible to control LEDs both as GPIOs or by hardware.
> +However, on some devices there are Serial LEDs (LEDs connected to a 74x164
> +controller), which can either be controlled by software (exporting the 74x164
> +as spi-gpio. See Documentation/devicetree/bindings/gpio/gpio-74x164.txt), or
> +by hardware using this driver.
> +Some of these Serial LEDs are hardware controlled (e.g. ethernet LEDs) and
> +exporting the 74x164 as spi-gpio prevents those LEDs to be hardware
> +controlled, so the only chance to keep them working is by using this driver.
> +
> +BCM6328 LED controller has a HWDIS register, which controls whether a LED
> +should be controlled by a hardware signal instead of the MODE register value,
> +with 0 meaning hardware control enabled and 1 hardware control disabled. This
> +is usually 1:1 for hardware to LED signals, but through the activity/link
> +registers you have some limited control over rerouting the LEDs (as
> +explained later in brcm,link-signal-sources). Even if a LED is hardware
> +controlled you are still able to make it blink or light it up if it isn't,
> +but you can't turn it off if the hardware decides to light it up. For this
> +reason, hardware controlled LEDs aren't registered as LED class devices.
> +
> +Required properties:
> +- compatible: should be : "brcm,bcm6328-leds".

Please drop the colon after "should be".
Also it is more common to insert a space before the colon character.
e.g.:

compatible : should be ...

Please apply this rule to each property.

> +- #address-cells: must be 1
> +- #size-cells: must be 0
> +- reg: BCM6328 LED controller address and size.
>
> +
> +Optional properties:
> +- brcm,serial-leds: boolean which enables Serial LEDs.

How about:

brcm,serial-leds: Boolean, enables Serial LEDs.

Boolean should begin with capital letter. Please refer to the other
bindings in Documentation/devicetree/bindings to keep the style of
DT documentation consistent.
Also default value should be mentioned.

> +Each LED is represented as a sub-node of the brcm,bcm6328-leds device.
> +
> +LED sub-node required properties:

How about:

Required properties for sub-nodes:

> +- reg: LED pin number (only LEDs 0 to 23 are valid).
> +
> +Software controlled LED optional properties:

How about:

Optional properties for sub-nodes related to software controlled LEDs:

> +- label (optional): see Documentation/devicetree/bindings/leds/common.txt
> +- active-low (optional): boolean that makes LED active low.
> +  Default: false
> +- default-state (optional): see
> +  Documentation/devicetree/bindings/leds/leds-gpio.txt
> +- linux,default-trigger (optional): see
> +  Documentation/devicetree/bindings/leds/common.txt

Please drop "(optional)" as you are already mentioned this in the
section header.

> +Hardware controlled LED optional properties:

How about:

Optional properties for sub-nodes related to hardware controlled LEDs:

> +- brcm,hardware-controlled: boolean that makes this LED hardware
> +  controlled.
> +- brcm,link-signal-sources: An array of hardware link
> +  signal sources. Up to four link hardware signals can get muxed into
> +  these LEDs. Only valid for LEDs 0 to 7, where LED signals 0 to 3 may
> +  be muxed to LEDs 0 to 3, and signals 4 to 7 may be muxed to LEDs
> +  4 to 7. A signal can be muxed to more than one LED, and one LED can
> +  have more than one source signal.
> +- brcm,activity-signal-sources: An array of hardware activity
> +  signal sources. Up to four activity hardware signals can get muxed into
> +  these LEDs. Only valid for LEDs 0 to 7, where LED signals 0 to 3 may
> +  be muxed to LEDs 0 to 3, and signals 4 to 7 may be muxed to LEDs
> +  4 to 7. A signal can be muxed to more than one LED, and one LED can
> +  have more than one source signal.
> +
> +example 1) BCM6328 with 4 EPHY LEDs
> +
> +leds0: led-controller@10000800 {
> +	compatible = "brcm,bcm6328-leds";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	reg = <0x10000800 0x24>;
> +
> +	alarm_red@2 {
> +		reg = <2>;
> +		active-low;
> +		label = "red:alarm";
> +	};
> +	inet_green@3 {
> +		reg = <3>;
> +		active-low;
> +		label = "green:inet";
> +	};
> +	power_green@4 {
> +		reg = <4>;
> +		active-low;
> +		label = "green:power";
> +		default-state = "on";
> +	};
> +	ephy0_spd@17 {
> +		reg = <17>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy1_spd@18 {
> +		reg = <18>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy2_spd@19 {
> +		reg = <19>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy3_spd@20 {
> +		reg = <20>;
> +		brcm,hardware-controlled;
> +	};
> +};
> +
> +example 2) BCM63268 with Serial/GPHY0 LEDs
> +
> +leds0: led-controller@10001900 {
> +	compatible = "brcm,bcm6328-leds";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	reg = <0x10001900 0x24>;
> +	brcm,serial-leds;
> +
> +	gphy0_spd0@0 {
> +		reg = <0>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <0>;
> +	};
> +	gphy0_spd1@1 {
> +		reg = <1>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <1>;
> +	};
> +	inet_red@2 {
> +		reg = <2>;
> +		active-low;
> +		label = "red:inet";
> +	};
> +	dsl_green@3 {
> +		reg = <3>;
> +		active-low;
> +		label = "green:dsl";
> +	};
> +	usb_green@4 {
> +		reg = <4>;
> +		active-low;
> +		label = "green:usb";
> +	};
> +	wps_green@7 {
> +		reg = <7>;
> +		active-low;
> +		label = "green:wps";
> +	};
> +	inet_green@8 {
> +		reg = <8>;
> +		active-low;
> +		label = "green:inet";
> +	};
> +	ephy0_act@9 {
> +		reg = <9>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy1_act@10 {
> +		reg = <10>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy2_act@11 {
> +		reg = <11>;
> +		brcm,hardware-controlled;
> +	};
> +	gphy0_act@12 {
> +		reg = <12>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy0_spd@13 {
> +		reg = <13>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy1_spd@14 {
> +		reg = <14>;
> +		brcm,hardware-controlled;
> +	};
> +	ephy2_spd@15 {
> +		reg = <15>;
> +		brcm,hardware-controlled;
> +	};
> +	power_green@20 {
> +		reg = <20>;
> +		active-low;
> +		label = "green:power";
> +		default-state = "on";
> +	};
> +};
> +
> +example 3) BCM6362 with 1 LED for each EPHY
> +
> +leds0: led-controller@10001900 {
> +	compatible = "brcm,bcm6328-leds";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	reg = <0x10001900 0x24>;
> +
> +	usb@0 {
> +		reg = <0>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <0>;
> +		brcm,activity-signal-sources = <0>;
> +		/* USB link/activity routed to USB LED */
> +	};
> +	inet@1 {
> +		reg = <1>;
> +		brcm,hardware-controlled;
> +		brcm,activity-signal-sources = <1>;
> +		/* INET activity routed to INET LED */
> +	};
> +	ephy0@4 {
> +		reg = <4>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <4>;
> +		/* EPHY0 link routed to EPHY0 LED */
> +	};
> +	ephy1@5 {
> +		reg = <5>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <5>;
> +		/* EPHY1 link routed to EPHY1 LED */
> +	};
> +	ephy2@6 {
> +		reg = <6>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <6>;
> +		/* EPHY2 link routed to EPHY2 LED */
> +	};
> +	ephy3@7 {
> +		reg = <7>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <7>;
> +		/* EPHY3 link routed to EPHY3 LED */
> +	};
> +	power_green@20 {
> +		reg = <20>;
> +		active-low;
> +		label = "green:power";
> +		default-state = "on";
> +	};
> +};
> +
> +example 4) BCM6362 with 1 LED for all EPHYs
> +
> +leds0: led-controller@10001900 {
> +	compatible = "brcm,bcm6328-leds";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	reg = <0x10001900 0x24>;
> +
> +	usb@0 {
> +		reg = <0>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <0 1>;
> +		brcm,activity-signal-sources = <0 1>;
> +		/* USB/INET link/activity routed to USB LED */
> +	};
> +	ephy@4 {
> +		reg = <4>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <4 5 6 7>;
> +		/* EPHY0/1/2/3 link routed to EPHY0 LED */
> +	};
> +	power_green@20 {
> +		reg = <20>;
> +		active-low;
> +		label = "green:power";
> +		default-state = "on";
> +	};
> +};
> +
> +example 5) BCM6362 with EPHY LEDs swapped
> +
> +leds0: led-controller@10001900 {
> +	compatible = "brcm,bcm6328-leds";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	reg = <0x10001900 0x24>;
> +
> +	usb@0 {
> +		reg = <0>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <0>;
> +		brcm,activity-signal-sources = <0 1>;
> +		/* USB link/activity & INET activity routed to USB LED */
> +	};
> +	ephy0@4 {
> +		reg = <4>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <7>;
> +		/* EPHY3 link routed to EPHY0 LED */
> +	};
> +	ephy1@5 {
> +		reg = <5>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <6>;
> +		/* EPHY2 link routed to EPHY1 LED */
> +	};
> +	ephy2@6 {
> +		reg = <6>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <5>;
> +		/* EPHY1 link routed to EPHY2 LED */
> +	};
> +	ephy3@7 {
> +		reg = <7>;
> +		brcm,hardware-controlled;
> +		brcm,link-signal-sources = <4>;
> +		/* EPHY0 link routed to EPHY3 LED */
> +	};
> +	power_green@20 {
> +		reg = <20>;
> +		active-low;
> +		label = "green:power";
> +		default-state = "on";
> +	};
> +};


-- 
Best Regards,
Jacek Anaszewski

  reply	other threads:[~2015-04-26 11:10 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-02 11:54 [PATCH 0/2] BCM6328 LED driver Álvaro Fernández Rojas
2015-04-02 11:54 ` [PATCH 1/2] leds: add DT binding for BCM6328 LED controller Álvaro Fernández Rojas
2015-04-03  2:06   ` Florian Fainelli
2015-04-03 12:19     ` Álvaro Fernández Rojas
2015-04-03 14:46       ` Jonas Gorski
2015-04-02 11:54 ` [PATCH 2/2] leds: add BCM6328 LED driver Álvaro Fernández Rojas
2015-04-05 15:08 ` [PATCH v2 0/2] " Álvaro Fernández Rojas
2015-04-05 15:08   ` [PATCH v2 1/2] leds: add DT binding for BCM6328 LED controller Álvaro Fernández Rojas
2015-04-16 14:39     ` Jacek Anaszewski
2015-04-05 15:08   ` [PATCH 2/2] leds: add BCM6328 LED driver Álvaro Fernández Rojas
2015-04-16 14:37     ` Jacek Anaszewski
2015-04-18  9:14       ` Jonas Gorski
2015-04-20  7:12         ` Jacek Anaszewski
2015-04-24 17:06   ` [PATCH v3 0/2] " Álvaro Fernández Rojas
2015-04-24 17:06     ` [PATCH v3 1/2] leds: add DT binding for BCM6328 LED controller Álvaro Fernández Rojas
2015-04-26 11:09       ` Jacek Anaszewski [this message]
2015-04-24 17:06     ` [PATCH v3 2/2] leds: add BCM6328 LED driver Álvaro Fernández Rojas
2015-04-26 12:15     ` [PATCH v4 0/2] " Álvaro Fernández Rojas
2015-04-26 12:15       ` [PATCH v4 1/2] leds: add DT binding for BCM6328 LED controller Álvaro Fernández Rojas
2015-04-28  8:18         ` Jacek Anaszewski
2015-04-26 12:15       ` [PATCH v4 2/2] leds: add BCM6328 LED driver Álvaro Fernández Rojas
2015-04-28  8:18         ` Jacek Anaszewski
2015-04-28 16:50       ` [PATCH v5 0/2] " Álvaro Fernández Rojas
2015-04-28 16:50         ` [PATCH v5 1/2] leds: add DT binding for BCM6328 LED controller Álvaro Fernández Rojas
2015-04-28 16:50         ` [PATCH v5 2/2] leds: add BCM6328 LED driver Álvaro Fernández Rojas
     [not found]         ` <1430239850-26120-1-git-send-email-noltari-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-29  0:46           ` [PATCH v5 0/2] " Bryan Wu

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=20150426130947.2bd5ea2e@ja.home \
    --to=j.anaszewski81@gmail.com \
    --cc=cernekee@gmail.com \
    --cc=cooloney@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=j.anaszewski@samsung.com \
    --cc=jogo@openwrt.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=noltari@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 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.