9
9
10
10
#include <linux/leds.h>
11
11
#include <linux/mfd/max5970.h>
12
- #include <linux/of .h>
12
+ #include <linux/mod_devicetable .h>
13
13
#include <linux/platform_device.h>
14
+ #include <linux/property.h>
14
15
#include <linux/regmap.h>
15
16
16
17
#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,
40
41
41
42
static int max5970_led_probe (struct platform_device * pdev )
42
43
{
44
+ struct fwnode_handle * led_node , * child ;
43
45
struct device * dev = & pdev -> dev ;
44
- struct device_node * np = dev_of_node (dev -> parent );
45
46
struct regmap * regmap ;
46
- struct device_node * led_node , * child ;
47
47
struct max5970_led * ddata ;
48
48
int ret = - ENODEV ;
49
49
50
- regmap = dev_get_regmap (pdev -> dev . parent , NULL );
50
+ regmap = dev_get_regmap (dev -> parent , NULL );
51
51
if (!regmap )
52
52
return - ENODEV ;
53
53
54
- led_node = of_get_child_by_name ( np , "leds" );
54
+ led_node = device_get_named_child_node ( dev -> parent , "leds" );
55
55
if (!led_node )
56
56
return - ENODEV ;
57
57
58
- for_each_available_child_of_node (led_node , child ) {
58
+ fwnode_for_each_available_child_node (led_node , child ) {
59
59
u32 reg ;
60
60
61
- if (of_property_read_u32 (child , "reg" , & reg ))
61
+ if (fwnode_property_read_u32 (child , "reg" , & reg ))
62
62
continue ;
63
63
64
64
if (reg >= MAX5970_NUM_LEDS ) {
@@ -68,24 +68,24 @@ static int max5970_led_probe(struct platform_device *pdev)
68
68
69
69
ddata = devm_kzalloc (dev , sizeof (* ddata ), GFP_KERNEL );
70
70
if (!ddata ) {
71
- of_node_put (child );
71
+ fwnode_handle_put (child );
72
72
return - ENOMEM ;
73
73
}
74
74
75
75
ddata -> index = reg ;
76
76
ddata -> regmap = regmap ;
77
77
ddata -> dev = dev ;
78
78
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 ) ;
81
81
82
82
ddata -> cdev .max_brightness = 1 ;
83
83
ddata -> cdev .brightness_set_blocking = max5970_led_set_brightness ;
84
84
ddata -> cdev .default_trigger = "none" ;
85
85
86
86
ret = devm_led_classdev_register (dev , & ddata -> cdev );
87
87
if (ret < 0 ) {
88
- of_node_put (child );
88
+ fwnode_handle_put (child );
89
89
dev_err (dev , "Failed to initialize LED %u\n" , reg );
90
90
return ret ;
91
91
}
@@ -100,8 +100,8 @@ static struct platform_driver max5970_led_driver = {
100
100
},
101
101
.probe = max5970_led_probe ,
102
102
};
103
-
104
103
module_platform_driver (max5970_led_driver );
104
+
105
105
MODULE_AUTHOR ("Patrick Rudolph <patrick.rudolph@9elements.com>" );
106
106
MODULE_AUTHOR ("Naresh Solanki <Naresh.Solanki@9elements.com>" );
107
107
MODULE_DESCRIPTION ("MAX5970_hot-swap controller LED driver" );
0 commit comments