18c2ecf20Sopenharmony_ciLEDs connected to Broadcom BCM6358 controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThis controller is present on BCM6358 and BCM6368.
48c2ecf20Sopenharmony_ciIn these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller),
58c2ecf20Sopenharmony_ciwhich can either be controlled by software (exporting the 74x164 as spi-gpio.
68c2ecf20Sopenharmony_ciSee Documentation/devicetree/bindings/gpio/gpio-74x164.txt), or
78c2ecf20Sopenharmony_ciby hardware using this driver.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciRequired properties:
108c2ecf20Sopenharmony_ci  - compatible : should be "brcm,bcm6358-leds".
118c2ecf20Sopenharmony_ci  - #address-cells : must be 1.
128c2ecf20Sopenharmony_ci  - #size-cells : must be 0.
138c2ecf20Sopenharmony_ci  - reg : BCM6358 LED controller address and size.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciOptional properties:
168c2ecf20Sopenharmony_ci  - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8.
178c2ecf20Sopenharmony_ci    Default : 1
188c2ecf20Sopenharmony_ci  - brcm,clk-dat-low : Boolean, makes clock and data signals active low.
198c2ecf20Sopenharmony_ci    Default : false
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciEach LED is represented as a sub-node of the brcm,bcm6358-leds device.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciLED sub-node required properties:
248c2ecf20Sopenharmony_ci  - reg : LED pin number (only LEDs 0 to 31 are valid).
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciLED sub-node optional properties:
278c2ecf20Sopenharmony_ci  - label : see Documentation/devicetree/bindings/leds/common.txt
288c2ecf20Sopenharmony_ci  - active-low : Boolean, makes LED active low.
298c2ecf20Sopenharmony_ci    Default : false
308c2ecf20Sopenharmony_ci  - default-state : see
318c2ecf20Sopenharmony_ci    Documentation/devicetree/bindings/leds/common.txt
328c2ecf20Sopenharmony_ci  - linux,default-trigger : see
338c2ecf20Sopenharmony_ci    Documentation/devicetree/bindings/leds/common.txt
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciExamples:
368c2ecf20Sopenharmony_ciScenario 1 : BCM6358
378c2ecf20Sopenharmony_ci	leds0: led-controller@fffe00d0 {
388c2ecf20Sopenharmony_ci		compatible = "brcm,bcm6358-leds";
398c2ecf20Sopenharmony_ci		#address-cells = <1>;
408c2ecf20Sopenharmony_ci		#size-cells = <0>;
418c2ecf20Sopenharmony_ci		reg = <0xfffe00d0 0x8>;
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci		alarm_white {
448c2ecf20Sopenharmony_ci			reg = <0>;
458c2ecf20Sopenharmony_ci			active-low;
468c2ecf20Sopenharmony_ci			label = "white:alarm";
478c2ecf20Sopenharmony_ci		};
488c2ecf20Sopenharmony_ci		tv_white {
498c2ecf20Sopenharmony_ci			reg = <2>;
508c2ecf20Sopenharmony_ci			active-low;
518c2ecf20Sopenharmony_ci			label = "white:tv";
528c2ecf20Sopenharmony_ci		};
538c2ecf20Sopenharmony_ci		tel_white {
548c2ecf20Sopenharmony_ci			reg = <3>;
558c2ecf20Sopenharmony_ci			active-low;
568c2ecf20Sopenharmony_ci			label = "white:tel";
578c2ecf20Sopenharmony_ci		};
588c2ecf20Sopenharmony_ci		adsl_white {
598c2ecf20Sopenharmony_ci			reg = <4>;
608c2ecf20Sopenharmony_ci			active-low;
618c2ecf20Sopenharmony_ci			label = "white:adsl";
628c2ecf20Sopenharmony_ci		};
638c2ecf20Sopenharmony_ci	};
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciScenario 2 : BCM6368
668c2ecf20Sopenharmony_ci	leds0: led-controller@100000d0 {
678c2ecf20Sopenharmony_ci		compatible = "brcm,bcm6358-leds";
688c2ecf20Sopenharmony_ci		#address-cells = <1>;
698c2ecf20Sopenharmony_ci		#size-cells = <0>;
708c2ecf20Sopenharmony_ci		reg = <0x100000d0 0x8>;
718c2ecf20Sopenharmony_ci		brcm,pol-low;
728c2ecf20Sopenharmony_ci		brcm,clk-div = <4>;
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci		power_red {
758c2ecf20Sopenharmony_ci			reg = <0>;
768c2ecf20Sopenharmony_ci			active-low;
778c2ecf20Sopenharmony_ci			label = "red:power";
788c2ecf20Sopenharmony_ci		};
798c2ecf20Sopenharmony_ci		power_green {
808c2ecf20Sopenharmony_ci			reg = <1>;
818c2ecf20Sopenharmony_ci			active-low;
828c2ecf20Sopenharmony_ci			label = "green:power";
838c2ecf20Sopenharmony_ci			default-state = "on";
848c2ecf20Sopenharmony_ci		};
858c2ecf20Sopenharmony_ci		power_blue {
868c2ecf20Sopenharmony_ci			reg = <2>;
878c2ecf20Sopenharmony_ci			label = "blue:power";
888c2ecf20Sopenharmony_ci		};
898c2ecf20Sopenharmony_ci		broadband_red {
908c2ecf20Sopenharmony_ci			reg = <3>;
918c2ecf20Sopenharmony_ci			active-low;
928c2ecf20Sopenharmony_ci			label = "red:broadband";
938c2ecf20Sopenharmony_ci		};
948c2ecf20Sopenharmony_ci		broadband_green {
958c2ecf20Sopenharmony_ci			reg = <4>;
968c2ecf20Sopenharmony_ci			label = "green:broadband";
978c2ecf20Sopenharmony_ci		};
988c2ecf20Sopenharmony_ci		broadband_blue {
998c2ecf20Sopenharmony_ci			reg = <5>;
1008c2ecf20Sopenharmony_ci			active-low;
1018c2ecf20Sopenharmony_ci			label = "blue:broadband";
1028c2ecf20Sopenharmony_ci		};
1038c2ecf20Sopenharmony_ci		wireless_red {
1048c2ecf20Sopenharmony_ci			reg = <6>;
1058c2ecf20Sopenharmony_ci			active-low;
1068c2ecf20Sopenharmony_ci			label = "red:wireless";
1078c2ecf20Sopenharmony_ci		};
1088c2ecf20Sopenharmony_ci		wireless_green {
1098c2ecf20Sopenharmony_ci			reg = <7>;
1108c2ecf20Sopenharmony_ci			active-low;
1118c2ecf20Sopenharmony_ci			label = "green:wireless";
1128c2ecf20Sopenharmony_ci		};
1138c2ecf20Sopenharmony_ci		wireless_blue {
1148c2ecf20Sopenharmony_ci			reg = <8>;
1158c2ecf20Sopenharmony_ci			label = "blue:wireless";
1168c2ecf20Sopenharmony_ci		};
1178c2ecf20Sopenharmony_ci		phone_red {
1188c2ecf20Sopenharmony_ci			reg = <9>;
1198c2ecf20Sopenharmony_ci			active-low;
1208c2ecf20Sopenharmony_ci			label = "red:phone";
1218c2ecf20Sopenharmony_ci		};
1228c2ecf20Sopenharmony_ci		phone_green {
1238c2ecf20Sopenharmony_ci			reg = <10>;
1248c2ecf20Sopenharmony_ci			active-low;
1258c2ecf20Sopenharmony_ci			label = "green:phone";
1268c2ecf20Sopenharmony_ci		};
1278c2ecf20Sopenharmony_ci		phone_blue {
1288c2ecf20Sopenharmony_ci			reg = <11>;
1298c2ecf20Sopenharmony_ci			label = "blue:phone";
1308c2ecf20Sopenharmony_ci		};
1318c2ecf20Sopenharmony_ci		upgrading_red {
1328c2ecf20Sopenharmony_ci			reg = <12>;
1338c2ecf20Sopenharmony_ci			active-low;
1348c2ecf20Sopenharmony_ci			label = "red:upgrading";
1358c2ecf20Sopenharmony_ci		};
1368c2ecf20Sopenharmony_ci		upgrading_green {
1378c2ecf20Sopenharmony_ci			reg = <13>;
1388c2ecf20Sopenharmony_ci			active-low;
1398c2ecf20Sopenharmony_ci			label = "green:upgrading";
1408c2ecf20Sopenharmony_ci		};
1418c2ecf20Sopenharmony_ci		upgrading_blue {
1428c2ecf20Sopenharmony_ci			reg = <14>;
1438c2ecf20Sopenharmony_ci			label = "blue:upgrading";
1448c2ecf20Sopenharmony_ci		};
1458c2ecf20Sopenharmony_ci	};
146