AS3645A fixes
Subsystems (3)
cover AS3645A fixes
Hi folks,
Here are a few fixes for the as3645a DTS as well as changes in bindings. The driver is not in a release yet. I'd like to get these in as through the media tree fixes branch.
Sakari Ailus (3):
as3645a: Use ams,input-max-microamp as documented in DT bindings
dt: bindings: as3645a: Use LED number to refer to LEDs
as3645a: Use integer numbers for parsing LEDs
.../devicetree/bindings/leds/ams,as3645a.txt | 28 ++++++++++++++-------- arch/arm/boot/dts/omap3-n950-n9.dtsi | 10 +++++--- drivers/leds/leds-as3645a.c | 28 +++++++++++++++++++--- 3 files changed, 50 insertions(+), 16 deletions(-)
Signature · 1 line
2.11.0
A message that is not in the archive (sent off-list or not yet received): 20170908124213.18904-1-sakari.ailus-VuQAYsv1563Yd54FQh9/[email protected]
PATCH 1/3 as3645a: Use ams,input-max-microamp as documented in DT bindings
DT bindings document the property "ams,input-max-microamp" that limits the chip's maximum input current. The driver and the DTS however used "peak-current-limit" property. Fix this by using the property documented in DT binding documentation.
--- arch/arm/boot/dts/omap3-n950-n9.dtsi | 2 +- drivers/leds/leds-as3645a.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
arch/arm/boot/dts/omap3-n950-n9.dtsi +1 -1
@@ -273,7 +273,7 @@ flash-timeout-us = <150000>; flash-max-microamp = <320000>; led-max-microamp = <60000>; - peak-current-limit = <1750000>; + ams,input-max-microamp = <1750000>; }; indicator { led-max-microamp = <10000>;
drivers/leds/leds-as3645a.c +1 -1
@@ -534,7 +534,7 @@ static int as3645a_parse_node(struct as3645a *flash,of_property_read_u32 (flash->flash_node,"voltage-reference" , &cfg->voltage_reference); -of_property_read_u32 (flash->flash_node,"peak-current-limit" , +of_property_read_u32 (flash->flash_node,"ams,input-max-microamp" , &cfg->peak); cfg->peak =AS_PEAK_mA_TO_REG (cfg->peak);
Signature · 6 lines
2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] as3645a: Use ams,input-max-microamp as documented in DT bindings
Quoted 6 lines · Sakari Ailus
DT bindings document the property "ams,input-max-microamp" that limits the chip's maximum input current. The driver and the DTS however used "peak-current-limit" property. Fix this by using the property documented in DT binding documentation.
Signed-off-by Sakari Ailus <[email protected]>
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
PATCH 3/3 as3645a: Use integer numbers for parsing LEDs
In reply to a message not in the archiveUse integer numbers for LEDs, 0 is the flash and 1 is the indicator.
--- arch/arm/boot/dts/omap3-n950-n9.dtsi | 8 ++++++-- drivers/leds/leds-as3645a.c | 26 ++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-)
arch/arm/boot/dts/omap3-n950-n9.dtsi +6 -2
@@ -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>; }; };
drivers/leds/leds-as3645a.c +24 -2
@@ -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 ,
@@ -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 ;
@@ -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" );
Signature · 6 lines
2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/3] as3645a: Use integer numbers for parsing LEDs
Quoted 3 lines · Sakari Ailus
Use integer numbers for LEDs, 0 is the flash and 1 is the indicator.
Signed-off-by Sakari Ailus <[email protected]>
Dunno. Old code is shorter, old device tree is shorter, ... IMO both versions are fine, because the LEDs are really different. Do we have documentation somewhere saying that reg= should be used for this? Are you doing this for consistency?
Best regards,
Pavel
Quoted 80 lines
arch/arm/boot/dts/omap3-n950-n9.dtsi | 8 ++++++-- drivers/leds/leds-as3645a.c | 26 ++++++++++++++++++++++++--arch/arm/boot/dts/omap3-n950-n9.dtsi +6
-2@@ -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>; }; };drivers/leds/leds-as3645a.c +24
-2@@ -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 ,@@ -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 ;@@ -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" );
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Re: [PATCH 3/3] as3645a: Use integer numbers for parsing LEDs
Hi Pavel,
Thanks for the review.
Quoted 9 lines · Pavel Machek
Quoted 3 lines · Sakari Ailus
Use integer numbers for LEDs, 0 is the flash and 1 is the indicator.
Signed-off-by Sakari Ailus <[email protected]>Dunno. Old code is shorter, old device tree is shorter, ... IMO both versions are fine, because the LEDs are really different. Do we have documentation somewhere saying that reg= should be used for this? Are you doing this for consistency?
Well, actually for ACPI support. :-) It requires less driver changes this way. See 17th and 18th patches in "[PATCH v9 00/23] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS".
A number of chips have LED binding that is aligned, see e.g. Documentation/devicetree/bindings/leds/leds-bcm6328.txt .
Signature · 4 lines
Regards, Sakari Ailus e-mail: [email protected]
Pavel Machek
Acked-byRe: [PATCH 3/3] as3645a: Use integer numbers for parsing LEDs
Quoted 10 lines · Sakari Ailus
Hi Pavel,
Thanks for the review.
Quoted 5 lines · Pavel Machek
Quoted 3 lines · Sakari Ailus
Use integer numbers for LEDs, 0 is the flash and 1 is the indicator.
Signed-off-by Sakari Ailus <[email protected]>
Quoted 8 lines
Quoted 4 lines
Dunno. Old code is shorter, old device tree is shorter, ... IMO both versions are fine, because the LEDs are really different. Do we have documentation somewhere saying that reg= should be used for this? Are you doing this for consistency?
Well, actually for ACPI support. :-) It requires less driver changes this way. See 17th and 18th patches in "[PATCH v9 00/23] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS".
ACPI, I hate ACPI.
Quoted 2 lines
A number of chips have LED binding that is aligned, see e.g.
Documentation/devicetree/bindings/leds/leds-bcm6328.txt.
Ok, yes, that's common way LED controllers are handled. Usually all the LEDs are "same", but...
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Re: [PATCH 3/3] as3645a: Use integer numbers for parsing LEDs
Quoted 16 lines · Pavel Machek
Quoted 15 lines · Sakari Ailus
Hi Pavel,
Thanks for the review.
Quoted 9 lines · Pavel Machek
Quoted 3 lines · Sakari Ailus
Use integer numbers for LEDs, 0 is the flash and 1 is the indicator.
Dunno. Old code is shorter, old device tree is shorter, ... IMO both versions are fine, because the LEDs are really different. Do we have documentation somewhere saying that reg= should be used for this? Are you doing this for consistency?
Quoted 5 lines
Quoted 3 lines
Well, actually for ACPI support. :-) It requires less driver changes this way. See 17th and 18th patches in "[PATCH v9 00/23] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS".
ACPI, I hate ACPI.
:-D
Quoted 6 lines
Quoted 3 lines
A number of chips have LED binding that is aligned, see e.g.
Documentation/devicetree/bindings/leds/leds-bcm6328.txt.Ok, yes, that's common way LED controllers are handled. Usually all the LEDs are "same", but...
I presume that's the case with most LED driver chips: all the outputs are alike.
Quoted 2 lines
Acked-by Pavel Machek <[email protected]>
Thanks!
Signature · 8 lines
Regards, Sakari Ailus e-mail: [email protected] -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 2/3 dt: bindings: as3645a: Use LED number to refer to LEDs
In reply to Sakari AilusUse integers (reg property) to tell the number of the LED to the driver instead of the node name. While both of these approaches are currently used by the LED bindings, using integers will require less driver changes for ACPI support. Additionally, it will make possible LED naming using chip and LED node names, effectively making the label property most useful for human-readable names only.
--- .../devicetree/bindings/leds/ams,as3645a.txt | 28 ++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-)
Documentation/devicetree/bindings/leds/ams,as3645a.txt +18 -10
@@ -15,11 +15,14 @@ Required properties compatible : Must be "ams,as3645a". reg : The I2C address of the device. Typically 0x30. +#address-cells : 1 +#size-cells : 0 -Required properties of the "flash" child node -============================================= +Required properties of the flash child node (0) +=============================================== +reg: 0 flash-timeout-us: Flash timeout in microseconds. The value must be in the range [100000, 850000] and divisible by 50000. flash-max-microamp: Maximum flash current in microamperes. Has to be
@@ -33,20 +36,21 @@ ams,input-max-microamp: Maximum flash controller input current. The and divisible by 50000. -Optional properties of the "flash" child node -============================================= +Optional properties of the flash child node +=========================================== label : The label of the flash LED. -Required properties of the "indicator" child node -================================================= +Required properties of the indicator child node (1) +=================================================== +reg: 1 led-max-microamp: Maximum indicator current. The allowed values are 2500, 5000, 7500 and 10000. -Optional properties of the "indicator" child node -================================================= +Optional properties of the indicator child node +=============================================== label : The label of the indicator LED.
@@ -55,16 +59,20 @@ Example ======= 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>; label = "as3645a:flash"; }; - indicator { + indicator@1 { + reg = <0x1>; led-max-microamp = <10000>; label = "as3645a:indicator"; };
Signature · 1 line
2.11.0
Re: [PATCH 2/3] dt: bindings: as3645a: Use LED number to refer to LEDs
Quoted 11 lines · Sakari Ailus
Use integers (reg property) to tell the number of the LED to the driver instead of the node name. While both of these approaches are currently used by the LED bindings, using integers will require less driver changes for ACPI support. Additionally, it will make possible LED naming using chip and LED node names, effectively making the label property most useful for human-readable names only.
Signed-off-by Sakari Ailus <[email protected]>--- .../devicetree/bindings/leds/ams,as3645a.txt | 28 ++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-)
Hi Sakari,
Thanks for the patch set.
Quoted 11 lines · Sakari Ailus
Hi folks,
Here are a few fixes for the as3645a DTS as well as changes in bindings. The driver is not in a release yet. I'd like to get these in as through the media tree fixes branch.
Sakari Ailus (3):
as3645a: Use ams,input-max-microamp as documented in DT bindings
dt: bindings: as3645a: Use LED number to refer to LEDs
as3645a: Use integer numbers for parsing LEDs
Quoted 5 lines
.../devicetree/bindings/leds/ams,as3645a.txt | 28 ++++++++++++++-------- arch/arm/boot/dts/omap3-n950-n9.dtsi | 10 +++++--- drivers/leds/leds-as3645a.c | 28 +++++++++++++++++++--- 3 files changed, 50 insertions(+), 16 deletions(-)
Signature · 2 lines
Best regards, Jacek Anaszewski