| LEDs connected to Broadcom BCM6358 controller |
| |
| This controller is present on BCM6358 and BCM6368. |
| In these SoCs 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/fairchild,74hc595.yaml), or |
| by hardware using this driver. |
| |
| Required properties: |
| - compatible : should be "brcm,bcm6358-leds". |
| - #address-cells : must be 1. |
| - #size-cells : must be 0. |
| - reg : BCM6358 LED controller address and size. |
| |
| Optional properties: |
| - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8. |
| Default : 1 |
| - brcm,clk-dat-low : Boolean, makes clock and data signals active low. |
| Default : false |
| |
| Each LED is represented as a sub-node of the brcm,bcm6358-leds device. |
| |
| LED sub-node required properties: |
| - reg : LED pin number (only LEDs 0 to 31 are valid). |
| |
| LED sub-node optional properties: |
| - label : see Documentation/devicetree/bindings/leds/common.txt |
| - default-state : see |
| Documentation/devicetree/bindings/leds/common.txt |
| - linux,default-trigger : see |
| Documentation/devicetree/bindings/leds/common.txt |
| |
| Examples: |
| Scenario 1 : BCM6358 |
| leds0: led-controller@fffe00d0 { |
| compatible = "brcm,bcm6358-leds"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0xfffe00d0 0x8>; |
| |
| alarm_white { |
| reg = <0>; |
| active-low; |
| label = "white:alarm"; |
| }; |
| tv_white { |
| reg = <2>; |
| active-low; |
| label = "white:tv"; |
| }; |
| tel_white { |
| reg = <3>; |
| active-low; |
| label = "white:tel"; |
| }; |
| adsl_white { |
| reg = <4>; |
| active-low; |
| label = "white:adsl"; |
| }; |
| }; |
| |
| Scenario 2 : BCM6368 |
| leds0: led-controller@100000d0 { |
| compatible = "brcm,bcm6358-leds"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x100000d0 0x8>; |
| brcm,pol-low; |
| brcm,clk-div = <4>; |
| |
| power_red { |
| reg = <0>; |
| active-low; |
| label = "red:power"; |
| }; |
| power_green { |
| reg = <1>; |
| active-low; |
| label = "green:power"; |
| default-state = "on"; |
| }; |
| power_blue { |
| reg = <2>; |
| label = "blue:power"; |
| }; |
| broadband_red { |
| reg = <3>; |
| active-low; |
| label = "red:broadband"; |
| }; |
| broadband_green { |
| reg = <4>; |
| label = "green:broadband"; |
| }; |
| broadband_blue { |
| reg = <5>; |
| active-low; |
| label = "blue:broadband"; |
| }; |
| wireless_red { |
| reg = <6>; |
| active-low; |
| label = "red:wireless"; |
| }; |
| wireless_green { |
| reg = <7>; |
| active-low; |
| label = "green:wireless"; |
| }; |
| wireless_blue { |
| reg = <8>; |
| label = "blue:wireless"; |
| }; |
| phone_red { |
| reg = <9>; |
| active-low; |
| label = "red:phone"; |
| }; |
| phone_green { |
| reg = <10>; |
| active-low; |
| label = "green:phone"; |
| }; |
| phone_blue { |
| reg = <11>; |
| label = "blue:phone"; |
| }; |
| upgrading_red { |
| reg = <12>; |
| active-low; |
| label = "red:upgrading"; |
| }; |
| upgrading_green { |
| reg = <13>; |
| active-low; |
| label = "green:upgrading"; |
| }; |
| upgrading_blue { |
| reg = <14>; |
| label = "blue:upgrading"; |
| }; |
| }; |