Home
last modified time | relevance | path

Searched hist:b3a88b52a17cc124fd7ef3dc7a37ec2ba51febc0 (Results 1 – 3 of 3) sorted by relevance

/optee_os/core/include/kernel/
H A Ddt_driver.hb3a88b52a17cc124fd7ef3dc7a37ec2ba51febc0 Sun Sep 12 15:12:52 UTC 2021 Etienne Carriere <etienne.carriere@linaro.org> core: dt_driver probe sequence

Add a driver_init initcall function to parse DT from root node and
probe devices for which a compatible driver is registered in the
dt_driver list. When a matching driver is found, its probe function
is called to initialize the device.

Driver probe function returns TEE_SUCCESS or successful initialization,
TEE_ERROR_DEFER_DRIVER_INIT if waiting for a dependent device, otherwise
another TEE_Result error code. In the later case, the probe function
panics.

The probe sequence uses 2 lists: a list of the device DT nodes for which
a driver shall be probed (probe list) and a list of devices that were
successfully probed and initialized (ready list). Since at least clock
framework and dt_driver do both parse DT for matching nodes, we must
centralized successfully probed devices to not add them twice in the
probe list.

Note that a DT node can probe several drivers, one per driver type,
as defined by dt_driver_type enumerated type.

Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Co-developed-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
H A Ddt.hb3a88b52a17cc124fd7ef3dc7a37ec2ba51febc0 Sun Sep 12 15:12:52 UTC 2021 Etienne Carriere <etienne.carriere@linaro.org> core: dt_driver probe sequence

Add a driver_init initcall function to parse DT from root node and
probe devices for which a compatible driver is registered in the
dt_driver list. When a matching driver is found, its probe function
is called to initialize the device.

Driver probe function returns TEE_SUCCESS or successful initialization,
TEE_ERROR_DEFER_DRIVER_INIT if waiting for a dependent device, otherwise
another TEE_Result error code. In the later case, the probe function
panics.

The probe sequence uses 2 lists: a list of the device DT nodes for which
a driver shall be probed (probe list) and a list of devices that were
successfully probed and initialized (ready list). Since at least clock
framework and dt_driver do both parse DT for matching nodes, we must
centralized successfully probed devices to not add them twice in the
probe list.

Note that a DT node can probe several drivers, one per driver type,
as defined by dt_driver_type enumerated type.

Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Co-developed-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
/optee_os/core/kernel/
H A Ddt_driver.cb3a88b52a17cc124fd7ef3dc7a37ec2ba51febc0 Sun Sep 12 15:12:52 UTC 2021 Etienne Carriere <etienne.carriere@linaro.org> core: dt_driver probe sequence

Add a driver_init initcall function to parse DT from root node and
probe devices for which a compatible driver is registered in the
dt_driver list. When a matching driver is found, its probe function
is called to initialize the device.

Driver probe function returns TEE_SUCCESS or successful initialization,
TEE_ERROR_DEFER_DRIVER_INIT if waiting for a dependent device, otherwise
another TEE_Result error code. In the later case, the probe function
panics.

The probe sequence uses 2 lists: a list of the device DT nodes for which
a driver shall be probed (probe list) and a list of devices that were
successfully probed and initialized (ready list). Since at least clock
framework and dt_driver do both parse DT for matching nodes, we must
centralized successfully probed devices to not add them twice in the
probe list.

Note that a DT node can probe several drivers, one per driver type,
as defined by dt_driver_type enumerated type.

Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Co-developed-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>