init: Implement fine-grained initialization policy
Put initialization priorities as device driver Kconfig parameter. Initialization priority value for each platform is defined in the platform Kconfig file. Drivers and platform code use SYS_DEFINE_DEVICE to add and initialization function. Change-Id: I2f4f3c7370dac02408a1b50a0a1bade8b427a282 Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com> Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
fb6de2d486
commit
57f2741e4f
66 changed files with 447 additions and 115 deletions
|
@ -34,6 +34,14 @@ config SHARED_IRQ_NUM_CLIENTS
|
|||
instance of the shared interrupt driver. To conserve RAM set
|
||||
this value to the lowest practical value.
|
||||
|
||||
config SHARED_IRQ_INIT_PRIORITY
|
||||
int
|
||||
depends on SHARED_IRQ
|
||||
prompt "Shared IRQ init priority"
|
||||
help
|
||||
Shared IRQ are initialized on SECONDARY init level. They
|
||||
have to be initialized before any device that uses them.
|
||||
|
||||
config SHARED_IRQ_0
|
||||
bool "Shared interrupt instance 0"
|
||||
depends on SHARED_IRQ
|
||||
|
|
|
@ -142,7 +142,8 @@ struct shared_irq_runtime shared_irq_0_runtime;
|
|||
|
||||
DECLARE_DEVICE_INIT_CONFIG(shared_irq_0, CONFIG_SHARED_IRQ_0_NAME,
|
||||
shared_irq_initialize, &shared_irq_config_0);
|
||||
pre_kernel_early_init(shared_irq_0, &shared_irq_0_runtime);
|
||||
SYS_DEFINE_DEVICE(shared_irq_0, &shared_irq_0_runtime, SECONDARY,
|
||||
CONFIG_SHARED_IRQ_INIT_PRIORITY);
|
||||
|
||||
IRQ_CONNECT_STATIC(shared_irq_0, CONFIG_SHARED_IRQ_0_IRQ,
|
||||
CONFIG_SHARED_IRQ_0_PRI, shared_irq_isr_0, 0,
|
||||
|
@ -175,7 +176,8 @@ struct shared_irq_runtime shared_irq_1_runtime;
|
|||
|
||||
DECLARE_DEVICE_INIT_CONFIG(shared_irq_1, CONFIG_SHARED_IRQ_1_NAME,
|
||||
shared_irq_initialize, &shared_irq_config_1);
|
||||
pre_kernel_early_init(shared_irq_1, &shared_irq_1_runtime);
|
||||
SYS_DEFINE_DEVICE(shared_irq_1, &shared_irq_1_runtime, SECONDARY,
|
||||
CONFIG_SHARED_IRQ_INIT_PRIORITY);
|
||||
|
||||
IRQ_CONNECT_STATIC(shared_irq_1, CONFIG_SHARED_IRQ_1_IRQ,
|
||||
CONFIG_SHARED_IRQ_1_PRI, shared_irq_isr_1, 0,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue