Loading arch/arm/boot/dts/omap3-n950-n9.dtsi +6 −2 Original line number Diff line number Diff line Loading @@ -267,15 +267,19 @@ clock-frequency = <400000>; as3645a@30 { #address-cells = <1>; #size-cells = <0>; reg = <0x30>; compatible = "ams,as3645a"; flash { flash@0 { reg = <0x0>; flash-timeout-us = <150000>; flash-max-microamp = <320000>; led-max-microamp = <60000>; ams,input-max-microamp = <1750000>; }; indicator { indicator@1 { reg = <0x1>; led-max-microamp = <10000>; }; }; Loading drivers/leds/leds-as3645a.c +24 −2 Original line number Diff line number Diff line Loading @@ -112,6 +112,10 @@ #define AS_PEAK_mA_TO_REG(a) \ ((min_t(u32, AS_PEAK_mA_MAX, a) - 1250) / 250) /* LED numbers for Devicetree */ #define AS_LED_FLASH 0 #define AS_LED_INDICATOR 1 enum as_mode { AS_MODE_EXT_TORCH = 0 << AS_CONTROL_MODE_SETTING_SHIFT, AS_MODE_INDICATOR = 1 << AS_CONTROL_MODE_SETTING_SHIFT, Loading Loading @@ -491,10 +495,29 @@ static int as3645a_parse_node(struct as3645a *flash, struct device_node *node) { struct as3645a_config *cfg = &flash->cfg; struct device_node *child; const char *name; int rval; flash->flash_node = of_get_child_by_name(node, "flash"); for_each_child_of_node(node, child) { u32 id = 0; of_property_read_u32(child, "reg", &id); switch (id) { case AS_LED_FLASH: flash->flash_node = of_node_get(child); break; case AS_LED_INDICATOR: flash->indicator_node = of_node_get(child); break; default: dev_warn(&flash->client->dev, "unknown LED %u encountered, ignoring\n", id); break; } } if (!flash->flash_node) { dev_err(&flash->client->dev, "can't find flash node\n"); return -ENODEV; Loading Loading @@ -538,7 +561,6 @@ static int as3645a_parse_node(struct as3645a *flash, &cfg->peak); cfg->peak = AS_PEAK_mA_TO_REG(cfg->peak); flash->indicator_node = of_get_child_by_name(node, "indicator"); if (!flash->indicator_node) { dev_warn(&flash->client->dev, "can't find indicator node\n"); Loading Loading
arch/arm/boot/dts/omap3-n950-n9.dtsi +6 −2 Original line number Diff line number Diff line Loading @@ -267,15 +267,19 @@ clock-frequency = <400000>; as3645a@30 { #address-cells = <1>; #size-cells = <0>; reg = <0x30>; compatible = "ams,as3645a"; flash { flash@0 { reg = <0x0>; flash-timeout-us = <150000>; flash-max-microamp = <320000>; led-max-microamp = <60000>; ams,input-max-microamp = <1750000>; }; indicator { indicator@1 { reg = <0x1>; led-max-microamp = <10000>; }; }; Loading
drivers/leds/leds-as3645a.c +24 −2 Original line number Diff line number Diff line Loading @@ -112,6 +112,10 @@ #define AS_PEAK_mA_TO_REG(a) \ ((min_t(u32, AS_PEAK_mA_MAX, a) - 1250) / 250) /* LED numbers for Devicetree */ #define AS_LED_FLASH 0 #define AS_LED_INDICATOR 1 enum as_mode { AS_MODE_EXT_TORCH = 0 << AS_CONTROL_MODE_SETTING_SHIFT, AS_MODE_INDICATOR = 1 << AS_CONTROL_MODE_SETTING_SHIFT, Loading Loading @@ -491,10 +495,29 @@ static int as3645a_parse_node(struct as3645a *flash, struct device_node *node) { struct as3645a_config *cfg = &flash->cfg; struct device_node *child; const char *name; int rval; flash->flash_node = of_get_child_by_name(node, "flash"); for_each_child_of_node(node, child) { u32 id = 0; of_property_read_u32(child, "reg", &id); switch (id) { case AS_LED_FLASH: flash->flash_node = of_node_get(child); break; case AS_LED_INDICATOR: flash->indicator_node = of_node_get(child); break; default: dev_warn(&flash->client->dev, "unknown LED %u encountered, ignoring\n", id); break; } } if (!flash->flash_node) { dev_err(&flash->client->dev, "can't find flash node\n"); return -ENODEV; Loading Loading @@ -538,7 +561,6 @@ static int as3645a_parse_node(struct as3645a *flash, &cfg->peak); cfg->peak = AS_PEAK_mA_TO_REG(cfg->peak); flash->indicator_node = of_get_child_by_name(node, "indicator"); if (!flash->indicator_node) { dev_warn(&flash->client->dev, "can't find indicator node\n"); Loading