162306a36Sopenharmony_ciLEDs connected to Broadcom BCM6358 controller 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciThis controller is present on BCM6358 and BCM6368. 462306a36Sopenharmony_ciIn these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller), 562306a36Sopenharmony_ciwhich can either be controlled by software (exporting the 74x164 as spi-gpio. 662306a36Sopenharmony_ciSee Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or 762306a36Sopenharmony_ciby hardware using this driver. 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciRequired properties: 1062306a36Sopenharmony_ci - compatible : should be "brcm,bcm6358-leds". 1162306a36Sopenharmony_ci - #address-cells : must be 1. 1262306a36Sopenharmony_ci - #size-cells : must be 0. 1362306a36Sopenharmony_ci - reg : BCM6358 LED controller address and size. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciOptional properties: 1662306a36Sopenharmony_ci - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8. 1762306a36Sopenharmony_ci Default : 1 1862306a36Sopenharmony_ci - brcm,clk-dat-low : Boolean, makes clock and data signals active low. 1962306a36Sopenharmony_ci Default : false 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciEach LED is represented as a sub-node of the brcm,bcm6358-leds device. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciLED sub-node required properties: 2462306a36Sopenharmony_ci - reg : LED pin number (only LEDs 0 to 31 are valid). 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciLED sub-node optional properties: 2762306a36Sopenharmony_ci - label : see Documentation/devicetree/bindings/leds/common.txt 2862306a36Sopenharmony_ci - active-low : Boolean, makes LED active low. 2962306a36Sopenharmony_ci Default : false 3062306a36Sopenharmony_ci - default-state : see 3162306a36Sopenharmony_ci Documentation/devicetree/bindings/leds/common.txt 3262306a36Sopenharmony_ci - linux,default-trigger : see 3362306a36Sopenharmony_ci Documentation/devicetree/bindings/leds/common.txt 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciExamples: 3662306a36Sopenharmony_ciScenario 1 : BCM6358 3762306a36Sopenharmony_ci leds0: led-controller@fffe00d0 { 3862306a36Sopenharmony_ci compatible = "brcm,bcm6358-leds"; 3962306a36Sopenharmony_ci #address-cells = <1>; 4062306a36Sopenharmony_ci #size-cells = <0>; 4162306a36Sopenharmony_ci reg = <0xfffe00d0 0x8>; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci alarm_white { 4462306a36Sopenharmony_ci reg = <0>; 4562306a36Sopenharmony_ci active-low; 4662306a36Sopenharmony_ci label = "white:alarm"; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci tv_white { 4962306a36Sopenharmony_ci reg = <2>; 5062306a36Sopenharmony_ci active-low; 5162306a36Sopenharmony_ci label = "white:tv"; 5262306a36Sopenharmony_ci }; 5362306a36Sopenharmony_ci tel_white { 5462306a36Sopenharmony_ci reg = <3>; 5562306a36Sopenharmony_ci active-low; 5662306a36Sopenharmony_ci label = "white:tel"; 5762306a36Sopenharmony_ci }; 5862306a36Sopenharmony_ci adsl_white { 5962306a36Sopenharmony_ci reg = <4>; 6062306a36Sopenharmony_ci active-low; 6162306a36Sopenharmony_ci label = "white:adsl"; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciScenario 2 : BCM6368 6662306a36Sopenharmony_ci leds0: led-controller@100000d0 { 6762306a36Sopenharmony_ci compatible = "brcm,bcm6358-leds"; 6862306a36Sopenharmony_ci #address-cells = <1>; 6962306a36Sopenharmony_ci #size-cells = <0>; 7062306a36Sopenharmony_ci reg = <0x100000d0 0x8>; 7162306a36Sopenharmony_ci brcm,pol-low; 7262306a36Sopenharmony_ci brcm,clk-div = <4>; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci power_red { 7562306a36Sopenharmony_ci reg = <0>; 7662306a36Sopenharmony_ci active-low; 7762306a36Sopenharmony_ci label = "red:power"; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci power_green { 8062306a36Sopenharmony_ci reg = <1>; 8162306a36Sopenharmony_ci active-low; 8262306a36Sopenharmony_ci label = "green:power"; 8362306a36Sopenharmony_ci default-state = "on"; 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci power_blue { 8662306a36Sopenharmony_ci reg = <2>; 8762306a36Sopenharmony_ci label = "blue:power"; 8862306a36Sopenharmony_ci }; 8962306a36Sopenharmony_ci broadband_red { 9062306a36Sopenharmony_ci reg = <3>; 9162306a36Sopenharmony_ci active-low; 9262306a36Sopenharmony_ci label = "red:broadband"; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci broadband_green { 9562306a36Sopenharmony_ci reg = <4>; 9662306a36Sopenharmony_ci label = "green:broadband"; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci broadband_blue { 9962306a36Sopenharmony_ci reg = <5>; 10062306a36Sopenharmony_ci active-low; 10162306a36Sopenharmony_ci label = "blue:broadband"; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci wireless_red { 10462306a36Sopenharmony_ci reg = <6>; 10562306a36Sopenharmony_ci active-low; 10662306a36Sopenharmony_ci label = "red:wireless"; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci wireless_green { 10962306a36Sopenharmony_ci reg = <7>; 11062306a36Sopenharmony_ci active-low; 11162306a36Sopenharmony_ci label = "green:wireless"; 11262306a36Sopenharmony_ci }; 11362306a36Sopenharmony_ci wireless_blue { 11462306a36Sopenharmony_ci reg = <8>; 11562306a36Sopenharmony_ci label = "blue:wireless"; 11662306a36Sopenharmony_ci }; 11762306a36Sopenharmony_ci phone_red { 11862306a36Sopenharmony_ci reg = <9>; 11962306a36Sopenharmony_ci active-low; 12062306a36Sopenharmony_ci label = "red:phone"; 12162306a36Sopenharmony_ci }; 12262306a36Sopenharmony_ci phone_green { 12362306a36Sopenharmony_ci reg = <10>; 12462306a36Sopenharmony_ci active-low; 12562306a36Sopenharmony_ci label = "green:phone"; 12662306a36Sopenharmony_ci }; 12762306a36Sopenharmony_ci phone_blue { 12862306a36Sopenharmony_ci reg = <11>; 12962306a36Sopenharmony_ci label = "blue:phone"; 13062306a36Sopenharmony_ci }; 13162306a36Sopenharmony_ci upgrading_red { 13262306a36Sopenharmony_ci reg = <12>; 13362306a36Sopenharmony_ci active-low; 13462306a36Sopenharmony_ci label = "red:upgrading"; 13562306a36Sopenharmony_ci }; 13662306a36Sopenharmony_ci upgrading_green { 13762306a36Sopenharmony_ci reg = <13>; 13862306a36Sopenharmony_ci active-low; 13962306a36Sopenharmony_ci label = "green:upgrading"; 14062306a36Sopenharmony_ci }; 14162306a36Sopenharmony_ci upgrading_blue { 14262306a36Sopenharmony_ci reg = <14>; 14362306a36Sopenharmony_ci label = "blue:upgrading"; 14462306a36Sopenharmony_ci }; 14562306a36Sopenharmony_ci }; 146