Back to home page

OSCL-LXR

 
 

    


0001 LEDs connected to Broadcom BCM6358 controller
0002 
0003 This controller is present on BCM6358 and BCM6368.
0004 In these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller),
0005 which can either be controlled by software (exporting the 74x164 as spi-gpio.
0006 See Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or
0007 by hardware using this driver.
0008 
0009 Required properties:
0010   - compatible : should be "brcm,bcm6358-leds".
0011   - #address-cells : must be 1.
0012   - #size-cells : must be 0.
0013   - reg : BCM6358 LED controller address and size.
0014 
0015 Optional properties:
0016   - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8.
0017     Default : 1
0018   - brcm,clk-dat-low : Boolean, makes clock and data signals active low.
0019     Default : false
0020 
0021 Each LED is represented as a sub-node of the brcm,bcm6358-leds device.
0022 
0023 LED sub-node required properties:
0024   - reg : LED pin number (only LEDs 0 to 31 are valid).
0025 
0026 LED sub-node optional properties:
0027   - label : see Documentation/devicetree/bindings/leds/common.txt
0028   - active-low : Boolean, makes LED active low.
0029     Default : false
0030   - default-state : see
0031     Documentation/devicetree/bindings/leds/common.txt
0032   - linux,default-trigger : see
0033     Documentation/devicetree/bindings/leds/common.txt
0034 
0035 Examples:
0036 Scenario 1 : BCM6358
0037         leds0: led-controller@fffe00d0 {
0038                 compatible = "brcm,bcm6358-leds";
0039                 #address-cells = <1>;
0040                 #size-cells = <0>;
0041                 reg = <0xfffe00d0 0x8>;
0042 
0043                 alarm_white {
0044                         reg = <0>;
0045                         active-low;
0046                         label = "white:alarm";
0047                 };
0048                 tv_white {
0049                         reg = <2>;
0050                         active-low;
0051                         label = "white:tv";
0052                 };
0053                 tel_white {
0054                         reg = <3>;
0055                         active-low;
0056                         label = "white:tel";
0057                 };
0058                 adsl_white {
0059                         reg = <4>;
0060                         active-low;
0061                         label = "white:adsl";
0062                 };
0063         };
0064 
0065 Scenario 2 : BCM6368
0066         leds0: led-controller@100000d0 {
0067                 compatible = "brcm,bcm6358-leds";
0068                 #address-cells = <1>;
0069                 #size-cells = <0>;
0070                 reg = <0x100000d0 0x8>;
0071                 brcm,pol-low;
0072                 brcm,clk-div = <4>;
0073 
0074                 power_red {
0075                         reg = <0>;
0076                         active-low;
0077                         label = "red:power";
0078                 };
0079                 power_green {
0080                         reg = <1>;
0081                         active-low;
0082                         label = "green:power";
0083                         default-state = "on";
0084                 };
0085                 power_blue {
0086                         reg = <2>;
0087                         label = "blue:power";
0088                 };
0089                 broadband_red {
0090                         reg = <3>;
0091                         active-low;
0092                         label = "red:broadband";
0093                 };
0094                 broadband_green {
0095                         reg = <4>;
0096                         label = "green:broadband";
0097                 };
0098                 broadband_blue {
0099                         reg = <5>;
0100                         active-low;
0101                         label = "blue:broadband";
0102                 };
0103                 wireless_red {
0104                         reg = <6>;
0105                         active-low;
0106                         label = "red:wireless";
0107                 };
0108                 wireless_green {
0109                         reg = <7>;
0110                         active-low;
0111                         label = "green:wireless";
0112                 };
0113                 wireless_blue {
0114                         reg = <8>;
0115                         label = "blue:wireless";
0116                 };
0117                 phone_red {
0118                         reg = <9>;
0119                         active-low;
0120                         label = "red:phone";
0121                 };
0122                 phone_green {
0123                         reg = <10>;
0124                         active-low;
0125                         label = "green:phone";
0126                 };
0127                 phone_blue {
0128                         reg = <11>;
0129                         label = "blue:phone";
0130                 };
0131                 upgrading_red {
0132                         reg = <12>;
0133                         active-low;
0134                         label = "red:upgrading";
0135                 };
0136                 upgrading_green {
0137                         reg = <13>;
0138                         active-low;
0139                         label = "green:upgrading";
0140                 };
0141                 upgrading_blue {
0142                         reg = <14>;
0143                         label = "blue:upgrading";
0144                 };
0145         };