hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/drivers/leds/leds-bcm6358.c
....@@ -1,12 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Driver for BCM6358 memory-mapped LEDs, based on leds-syscon.c
34 *
45 * Copyright 2015 Álvaro Fernández Rojas <noltari@gmail.com>
5
- *
6
- * This program is free software; you can redistribute it and/or modify it
7
- * under the terms of the GNU General Public License as published by the
8
- * Free Software Foundation; either version 2 of the License, or (at your
9
- * option) any later version.
106 */
117 #include <linux/delay.h>
128 #include <linux/io.h>
....@@ -98,6 +94,7 @@
9894 static int bcm6358_led(struct device *dev, struct device_node *nc, u32 reg,
9995 void __iomem *mem, spinlock_t *lock)
10096 {
97
+ struct led_init_data init_data = {};
10198 struct bcm6358_led *led;
10299 const char *state;
103100 int rc;
....@@ -112,11 +109,6 @@
112109
113110 if (of_property_read_bool(nc, "active-low"))
114111 led->active_low = true;
115
-
116
- led->cdev.name = of_get_property(nc, "label", NULL) ? : nc->name;
117
- led->cdev.default_trigger = of_get_property(nc,
118
- "linux,default-trigger",
119
- NULL);
120112
121113 if (!of_property_read_string(nc, "default-state", &state)) {
122114 if (!strcmp(state, "on")) {
....@@ -140,8 +132,9 @@
140132 bcm6358_led_set(&led->cdev, led->cdev.brightness);
141133
142134 led->cdev.brightness_set = bcm6358_led_set;
135
+ init_data.fwnode = of_fwnode_handle(nc);
143136
144
- rc = devm_led_classdev_register(dev, &led->cdev);
137
+ rc = devm_led_classdev_register_ext(dev, &led->cdev, &init_data);
145138 if (rc < 0)
146139 return rc;
147140
....@@ -153,19 +146,14 @@
153146 static int bcm6358_leds_probe(struct platform_device *pdev)
154147 {
155148 struct device *dev = &pdev->dev;
156
- struct device_node *np = pdev->dev.of_node;
149
+ struct device_node *np = dev_of_node(&pdev->dev);
157150 struct device_node *child;
158
- struct resource *mem_r;
159151 void __iomem *mem;
160152 spinlock_t *lock; /* memory lock */
161153 unsigned long val;
162154 u32 clk_div;
163155
164
- mem_r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
165
- if (!mem_r)
166
- return -EINVAL;
167
-
168
- mem = devm_ioremap_resource(dev, mem_r);
156
+ mem = devm_platform_ioremap_resource(pdev, 0);
169157 if (IS_ERR(mem))
170158 return PTR_ERR(mem);
171159