989d42e85dc2f (Greg Kroah-Hartman 2017-11-07 17:30:07 +0100 1) // SPDX-License-Identifier: GPL-2.0
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 2) /*
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 3) * Copyright (c) 2002-3 Patrick Mochel
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 4) * Copyright (c) 2002-3 Open Source Development Labs
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 5) */
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 6)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 7) #include <linux/device.h>
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 8) #include <linux/init.h>
3947be1969a9c (Dave Hansen 2005-10-29 18:16:54 -0700 9) #include <linux/memory.h>
194ec9368c0db (Sudeep Holla 2015-05-14 15:28:24 +0100 10) #include <linux/of.h>
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 11)
a1bdc7aad8b55 (Ben Dooks 2005-10-13 17:54:41 +0100 12) #include "base.h"
a1bdc7aad8b55 (Ben Dooks 2005-10-13 17:54:41 +0100 13)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 14) /**
4a3ad20ccd8f4 (Greg Kroah-Hartman 2008-01-24 22:50:12 -0800 15) * driver_init - initialize driver model.
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 16) *
4a3ad20ccd8f4 (Greg Kroah-Hartman 2008-01-24 22:50:12 -0800 17) * Call the driver model init functions to initialize their
4a3ad20ccd8f4 (Greg Kroah-Hartman 2008-01-24 22:50:12 -0800 18) * subsystems. Called early from init/main.c.
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 19) */
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 20) void __init driver_init(void)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 21) {
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 22) /* These are the core pieces */
2b2af54a5bb6f (Kay Sievers 2009-04-30 15:23:42 +0200 23) devtmpfs_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 24) devices_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 25) buses_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 26) classes_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 27) firmware_init();
4039483fd3065 (Michael Holzheu 2006-05-09 12:53:49 +0200 28) hypervisor_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 29)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 30) /* These are also core pieces, but must come after the
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 31) * core core pieces.
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 32) */
319b11ef5719a (Wesley W. Terpstra 2018-06-21 15:37:37 +0200 33) of_core_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 34) platform_bus_init();
471b12c43f376 (Dave Jiang 2021-02-10 13:16:11 -0700 35) auxiliary_bus_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 36) cpu_dev_init();
3947be1969a9c (Dave Hansen 2005-10-29 18:16:54 -0700 37) memory_dev_init();
caa73ea158de9 (Rafael J. Wysocki 2013-12-29 15:25:48 +0100 38) container_dev_init();
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 39) }