1LEDs connected to Broadcom BCM6358 controller 2 3This controller is present on BCM6358 and BCM6368. 4In these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller), 5which can either be controlled by software (exporting the 74x164 as spi-gpio. 6See Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or 7by hardware using this driver. 8 9Required properties: 10 - compatible : should be "brcm,bcm6358-leds". 11 - #address-cells : must be 1. 12 - #size-cells : must be 0. 13 - reg : BCM6358 LED controller address and size. 14 15Optional properties: 16 - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8. 17 Default : 1 18 - brcm,clk-dat-low : Boolean, makes clock and data signals active low. 19 Default : false 20 21Each LED is represented as a sub-node of the brcm,bcm6358-leds device. 22 23LED sub-node required properties: 24 - reg : LED pin number (only LEDs 0 to 31 are valid). 25 26LED sub-node optional properties: 27 - label : see Documentation/devicetree/bindings/leds/common.txt 28 - default-state : see 29 Documentation/devicetree/bindings/leds/common.txt 30 - linux,default-trigger : see 31 Documentation/devicetree/bindings/leds/common.txt 32 33Examples: 34Scenario 1 : BCM6358 35 leds0: led-controller@fffe00d0 { 36 compatible = "brcm,bcm6358-leds"; 37 #address-cells = <1>; 38 #size-cells = <0>; 39 reg = <0xfffe00d0 0x8>; 40 41 alarm_white { 42 reg = <0>; 43 active-low; 44 label = "white:alarm"; 45 }; 46 tv_white { 47 reg = <2>; 48 active-low; 49 label = "white:tv"; 50 }; 51 tel_white { 52 reg = <3>; 53 active-low; 54 label = "white:tel"; 55 }; 56 adsl_white { 57 reg = <4>; 58 active-low; 59 label = "white:adsl"; 60 }; 61 }; 62 63Scenario 2 : BCM6368 64 leds0: led-controller@100000d0 { 65 compatible = "brcm,bcm6358-leds"; 66 #address-cells = <1>; 67 #size-cells = <0>; 68 reg = <0x100000d0 0x8>; 69 brcm,pol-low; 70 brcm,clk-div = <4>; 71 72 power_red { 73 reg = <0>; 74 active-low; 75 label = "red:power"; 76 }; 77 power_green { 78 reg = <1>; 79 active-low; 80 label = "green:power"; 81 default-state = "on"; 82 }; 83 power_blue { 84 reg = <2>; 85 label = "blue:power"; 86 }; 87 broadband_red { 88 reg = <3>; 89 active-low; 90 label = "red:broadband"; 91 }; 92 broadband_green { 93 reg = <4>; 94 label = "green:broadband"; 95 }; 96 broadband_blue { 97 reg = <5>; 98 active-low; 99 label = "blue:broadband"; 100 }; 101 wireless_red { 102 reg = <6>; 103 active-low; 104 label = "red:wireless"; 105 }; 106 wireless_green { 107 reg = <7>; 108 active-low; 109 label = "green:wireless"; 110 }; 111 wireless_blue { 112 reg = <8>; 113 label = "blue:wireless"; 114 }; 115 phone_red { 116 reg = <9>; 117 active-low; 118 label = "red:phone"; 119 }; 120 phone_green { 121 reg = <10>; 122 active-low; 123 label = "green:phone"; 124 }; 125 phone_blue { 126 reg = <11>; 127 label = "blue:phone"; 128 }; 129 upgrading_red { 130 reg = <12>; 131 active-low; 132 label = "red:upgrading"; 133 }; 134 upgrading_green { 135 reg = <13>; 136 active-low; 137 label = "green:upgrading"; 138 }; 139 upgrading_blue { 140 reg = <14>; 141 label = "blue:upgrading"; 142 }; 143 }; 144