Skip to content

Commit 325386d

Browse files
notropopcornmix
authored andcommitted
firmware: bcm2835: Support ARCH_BCM270x
Support booting without Device Tree. Turn on USB power. Load driver early because of lacking support for deferred probing in many drivers. Signed-off-by: Noralf Trønnes <[email protected]> firmware: bcm2835: Don't turn on USB power The raspberrypi-power driver is now used to turn on USB power. This partly reverts commit: firmware: bcm2835: Support ARCH_BCM270x Signed-off-by: Noralf Trønnes <[email protected]>
1 parent 04c4f5a commit 325386d

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

drivers/firmware/raspberrypi.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ struct rpi_firmware {
2828
u32 enabled;
2929
};
3030

31+
static struct platform_device *g_pdev;
32+
3133
static DEFINE_MUTEX(transaction_lock);
3234

3335
static void response_callback(struct mbox_client *cl, void *msg)
@@ -231,6 +233,7 @@ static int rpi_firmware_probe(struct platform_device *pdev)
231233
init_completion(&fw->c);
232234

233235
platform_set_drvdata(pdev, fw);
236+
g_pdev = pdev;
234237

235238
rpi_firmware_print_firmware_revision(fw);
236239
rpi_register_hwmon_driver(dev, fw);
@@ -255,6 +258,7 @@ static int rpi_firmware_remove(struct platform_device *pdev)
255258
platform_device_unregister(rpi_hwmon);
256259
rpi_hwmon = NULL;
257260
mbox_free_channel(fw->chan);
261+
g_pdev = NULL;
258262

259263
return 0;
260264
}
@@ -267,7 +271,7 @@ static int rpi_firmware_remove(struct platform_device *pdev)
267271
*/
268272
struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
269273
{
270-
struct platform_device *pdev = of_find_device_by_node(firmware_node);
274+
struct platform_device *pdev = g_pdev;
271275

272276
if (!pdev)
273277
return NULL;
@@ -291,7 +295,18 @@ static struct platform_driver rpi_firmware_driver = {
291295
.shutdown = rpi_firmware_shutdown,
292296
.remove = rpi_firmware_remove,
293297
};
294-
module_platform_driver(rpi_firmware_driver);
298+
299+
static int __init rpi_firmware_init(void)
300+
{
301+
return platform_driver_register(&rpi_firmware_driver);
302+
}
303+
subsys_initcall(rpi_firmware_init);
304+
305+
static void __init rpi_firmware_exit(void)
306+
{
307+
platform_driver_unregister(&rpi_firmware_driver);
308+
}
309+
module_exit(rpi_firmware_exit);
295310

296311
MODULE_AUTHOR("Eric Anholt <[email protected]>");
297312
MODULE_DESCRIPTION("Raspberry Pi firmware driver");

0 commit comments

Comments
 (0)