1*28300dc5SÁlvaro Fernández RojasLEDs connected to Broadcom BCM6328 controller 2*28300dc5SÁlvaro Fernández Rojas 3*28300dc5SÁlvaro Fernández RojasThis controller is present on BCM6318, BCM6328, BCM6362 and BCM63268. 4*28300dc5SÁlvaro Fernández RojasIn these SoCs it's possible to control LEDs both as GPIOs or by hardware. 5*28300dc5SÁlvaro Fernández RojasHowever, on some devices there are Serial LEDs (LEDs connected to a 74x164 6*28300dc5SÁlvaro Fernández Rojascontroller), which can either be controlled by software (exporting the 74x164 7*28300dc5SÁlvaro Fernández Rojasas spi-gpio. See Documentation/devicetree/bindings/gpio/gpio-74x164.txt), or 8*28300dc5SÁlvaro Fernández Rojasby hardware using this driver. 9*28300dc5SÁlvaro Fernández RojasSome of these Serial LEDs are hardware controlled (e.g. ethernet LEDs) and 10*28300dc5SÁlvaro Fernández Rojasexporting the 74x164 as spi-gpio prevents those LEDs to be hardware 11*28300dc5SÁlvaro Fernández Rojascontrolled, so the only chance to keep them working is by using this driver. 12*28300dc5SÁlvaro Fernández Rojas 13*28300dc5SÁlvaro Fernández RojasRequired properties: 14*28300dc5SÁlvaro Fernández Rojas - compatible : should be "brcm,bcm6328-leds". 15*28300dc5SÁlvaro Fernández Rojas - #address-cells : must be 1. 16*28300dc5SÁlvaro Fernández Rojas - #size-cells : must be 0. 17*28300dc5SÁlvaro Fernández Rojas - reg : BCM6328 LED controller address and size. 18*28300dc5SÁlvaro Fernández Rojas 19*28300dc5SÁlvaro Fernández RojasOptional properties: 20*28300dc5SÁlvaro Fernández Rojas - brcm,serial-leds : Boolean, enables Serial LEDs. 21*28300dc5SÁlvaro Fernández Rojas Default : false 22*28300dc5SÁlvaro Fernández Rojas - brcm,serial-mux : Boolean, enables Serial LEDs multiplexing. 23*28300dc5SÁlvaro Fernández Rojas Default : false 24*28300dc5SÁlvaro Fernández Rojas - brcm,serial-clk-low : Boolean, makes clock signal active low. 25*28300dc5SÁlvaro Fernández Rojas Default : false 26*28300dc5SÁlvaro Fernández Rojas - brcm,serial-dat-low : Boolean, makes data signal active low. 27*28300dc5SÁlvaro Fernández Rojas Default : false 28*28300dc5SÁlvaro Fernández Rojas - brcm,serial-shift-inv : Boolean, inverts Serial LEDs shift direction. 29*28300dc5SÁlvaro Fernández Rojas Default : false 30*28300dc5SÁlvaro Fernández Rojas 31*28300dc5SÁlvaro Fernández RojasEach LED is represented as a sub-node of the brcm,bcm6328-leds device. 32*28300dc5SÁlvaro Fernández Rojas 33*28300dc5SÁlvaro Fernández RojasLED sub-node required properties: 34*28300dc5SÁlvaro Fernández Rojas - reg : LED pin number (only LEDs 0 to 23 are valid). 35*28300dc5SÁlvaro Fernández Rojas 36*28300dc5SÁlvaro Fernández RojasLED sub-node optional properties: 37*28300dc5SÁlvaro Fernández Rojas - label : see Documentation/devicetree/bindings/leds/common.txt 38*28300dc5SÁlvaro Fernández Rojas - active-low : Boolean, makes LED active low. 39*28300dc5SÁlvaro Fernández Rojas Default : false 40*28300dc5SÁlvaro Fernández Rojas 41*28300dc5SÁlvaro Fernández RojasExamples: 42*28300dc5SÁlvaro Fernández RojasScenario 1 : BCM6328 with 4 GPIO LEDs 43*28300dc5SÁlvaro Fernández Rojas leds0: led-controller@10000800 { 44*28300dc5SÁlvaro Fernández Rojas compatible = "brcm,bcm6328-leds"; 45*28300dc5SÁlvaro Fernández Rojas #address-cells = <1>; 46*28300dc5SÁlvaro Fernández Rojas #size-cells = <0>; 47*28300dc5SÁlvaro Fernández Rojas reg = <0x10000800 0x24>; 48*28300dc5SÁlvaro Fernández Rojas 49*28300dc5SÁlvaro Fernández Rojas alarm_red@2 { 50*28300dc5SÁlvaro Fernández Rojas reg = <2>; 51*28300dc5SÁlvaro Fernández Rojas active-low; 52*28300dc5SÁlvaro Fernández Rojas label = "red:alarm"; 53*28300dc5SÁlvaro Fernández Rojas }; 54*28300dc5SÁlvaro Fernández Rojas inet_green@3 { 55*28300dc5SÁlvaro Fernández Rojas reg = <3>; 56*28300dc5SÁlvaro Fernández Rojas active-low; 57*28300dc5SÁlvaro Fernández Rojas label = "green:inet"; 58*28300dc5SÁlvaro Fernández Rojas }; 59*28300dc5SÁlvaro Fernández Rojas power_green@4 { 60*28300dc5SÁlvaro Fernández Rojas reg = <4>; 61*28300dc5SÁlvaro Fernández Rojas active-low; 62*28300dc5SÁlvaro Fernández Rojas label = "green:power"; 63*28300dc5SÁlvaro Fernández Rojas }; 64*28300dc5SÁlvaro Fernández Rojas }; 65*28300dc5SÁlvaro Fernández Rojas 66*28300dc5SÁlvaro Fernández RojasScenario 2 : BCM63268 with Serial LEDs 67*28300dc5SÁlvaro Fernández Rojas leds0: led-controller@10001900 { 68*28300dc5SÁlvaro Fernández Rojas compatible = "brcm,bcm6328-leds"; 69*28300dc5SÁlvaro Fernández Rojas #address-cells = <1>; 70*28300dc5SÁlvaro Fernández Rojas #size-cells = <0>; 71*28300dc5SÁlvaro Fernández Rojas reg = <0x10001900 0x24>; 72*28300dc5SÁlvaro Fernández Rojas brcm,serial-leds; 73*28300dc5SÁlvaro Fernández Rojas brcm,serial-dat-low; 74*28300dc5SÁlvaro Fernández Rojas brcm,serial-shift-inv; 75*28300dc5SÁlvaro Fernández Rojas 76*28300dc5SÁlvaro Fernández Rojas inet_red@2 { 77*28300dc5SÁlvaro Fernández Rojas reg = <2>; 78*28300dc5SÁlvaro Fernández Rojas active-low; 79*28300dc5SÁlvaro Fernández Rojas label = "red:inet"; 80*28300dc5SÁlvaro Fernández Rojas }; 81*28300dc5SÁlvaro Fernández Rojas dsl_green@3 { 82*28300dc5SÁlvaro Fernández Rojas reg = <3>; 83*28300dc5SÁlvaro Fernández Rojas active-low; 84*28300dc5SÁlvaro Fernández Rojas label = "green:dsl"; 85*28300dc5SÁlvaro Fernández Rojas }; 86*28300dc5SÁlvaro Fernández Rojas usb_green@4 { 87*28300dc5SÁlvaro Fernández Rojas reg = <4>; 88*28300dc5SÁlvaro Fernández Rojas active-low; 89*28300dc5SÁlvaro Fernández Rojas label = "green:usb"; 90*28300dc5SÁlvaro Fernández Rojas }; 91*28300dc5SÁlvaro Fernández Rojas wps_green@7 { 92*28300dc5SÁlvaro Fernández Rojas reg = <7>; 93*28300dc5SÁlvaro Fernández Rojas active-low; 94*28300dc5SÁlvaro Fernández Rojas label = "green:wps"; 95*28300dc5SÁlvaro Fernández Rojas }; 96*28300dc5SÁlvaro Fernández Rojas inet_green@8 { 97*28300dc5SÁlvaro Fernández Rojas reg = <8>; 98*28300dc5SÁlvaro Fernández Rojas active-low; 99*28300dc5SÁlvaro Fernández Rojas label = "green:inet"; 100*28300dc5SÁlvaro Fernández Rojas }; 101*28300dc5SÁlvaro Fernández Rojas power_green@20 { 102*28300dc5SÁlvaro Fernández Rojas reg = <20>; 103*28300dc5SÁlvaro Fernández Rojas active-low; 104*28300dc5SÁlvaro Fernández Rojas label = "green:power"; 105*28300dc5SÁlvaro Fernández Rojas }; 106*28300dc5SÁlvaro Fernández Rojas }; 107