99
1010#include <linux/leds.h>
1111#include <linux/mfd/max5970.h>
12- #include <linux/of .h>
12+ #include <linux/mod_devicetable .h>
1313#include <linux/platform_device.h>
14+ #include <linux/property.h>
1415#include <linux/regmap.h>
1516
1617#define ldev_to_maxled (c ) container_of(c, struct max5970_led, cdev)
@@ -40,25 +41,24 @@ static int max5970_led_set_brightness(struct led_classdev *cdev,
4041
4142static int max5970_led_probe (struct platform_device * pdev )
4243{
44+ struct fwnode_handle * led_node , * child ;
4345 struct device * dev = & pdev -> dev ;
44- struct device_node * np = dev_of_node (dev -> parent );
4546 struct regmap * regmap ;
46- struct device_node * led_node , * child ;
4747 struct max5970_led * ddata ;
4848 int ret = - ENODEV ;
4949
50- regmap = dev_get_regmap (pdev -> dev . parent , NULL );
50+ regmap = dev_get_regmap (dev -> parent , NULL );
5151 if (!regmap )
5252 return - ENODEV ;
5353
54- led_node = of_get_child_by_name ( np , "leds" );
54+ led_node = device_get_named_child_node ( dev -> parent , "leds" );
5555 if (!led_node )
5656 return - ENODEV ;
5757
58- for_each_available_child_of_node (led_node , child ) {
58+ fwnode_for_each_available_child_node (led_node , child ) {
5959 u32 reg ;
6060
61- if (of_property_read_u32 (child , "reg" , & reg ))
61+ if (fwnode_property_read_u32 (child , "reg" , & reg ))
6262 continue ;
6363
6464 if (reg >= MAX5970_NUM_LEDS ) {
@@ -68,24 +68,24 @@ static int max5970_led_probe(struct platform_device *pdev)
6868
6969 ddata = devm_kzalloc (dev , sizeof (* ddata ), GFP_KERNEL );
7070 if (!ddata ) {
71- of_node_put (child );
71+ fwnode_handle_put (child );
7272 return - ENOMEM ;
7373 }
7474
7575 ddata -> index = reg ;
7676 ddata -> regmap = regmap ;
7777 ddata -> dev = dev ;
7878
79- if (of_property_read_string (child , "label" , & ddata -> cdev .name ))
80- ddata -> cdev .name = child -> name ;
79+ if (fwnode_property_read_string (child , "label" , & ddata -> cdev .name ))
80+ ddata -> cdev .name = fwnode_get_name ( child ) ;
8181
8282 ddata -> cdev .max_brightness = 1 ;
8383 ddata -> cdev .brightness_set_blocking = max5970_led_set_brightness ;
8484 ddata -> cdev .default_trigger = "none" ;
8585
8686 ret = devm_led_classdev_register (dev , & ddata -> cdev );
8787 if (ret < 0 ) {
88- of_node_put (child );
88+ fwnode_handle_put (child );
8989 dev_err (dev , "Failed to initialize LED %u\n" , reg );
9090 return ret ;
9191 }
@@ -100,8 +100,8 @@ static struct platform_driver max5970_led_driver = {
100100 },
101101 .probe = max5970_led_probe ,
102102};
103-
104103module_platform_driver (max5970_led_driver );
104+
105105MODULE_AUTHOR ("Patrick Rudolph <patrick.rudolph@9elements.com>" );
106106MODULE_AUTHOR ("Naresh Solanki <Naresh.Solanki@9elements.com>" );
107107MODULE_DESCRIPTION ("MAX5970_hot-swap controller LED driver" );
0 commit comments