mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
dm: doc: update of-plat with new phandle support
Update documentation to reflect the new phandle support when OF_PLATDATA is used. Now phandles are implemented as pointers to U_BOOT_DEVICE, which makes it possible to get a pointer to the actual device. Signed-off-by: Walter Lozano <walter.lozano@collabora.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Simon Glass
parent
51f1263d89
commit
cbd484f0eb
@@ -69,9 +69,8 @@ strictly necessary. Notable problems include:
|
|||||||
- Correct relations between nodes are not implemented. This means that
|
- Correct relations between nodes are not implemented. This means that
|
||||||
parent/child relations (like bus device iteration) do not work yet.
|
parent/child relations (like bus device iteration) do not work yet.
|
||||||
Some phandles (those that are recognised as such) are converted into
|
Some phandles (those that are recognised as such) are converted into
|
||||||
a pointer to platform data. This pointer can potentially be used to
|
a pointer to struct driver_info. This pointer can be used to access
|
||||||
access the referenced device (by searching for the pointer value).
|
the referenced device.
|
||||||
This feature is not yet implemented, however.
|
|
||||||
|
|
||||||
|
|
||||||
How it works
|
How it works
|
||||||
@@ -146,10 +145,10 @@ and the following device declaration:
|
|||||||
.clock_freq_min_max = {0x61a80, 0x8f0d180},
|
.clock_freq_min_max = {0x61a80, 0x8f0d180},
|
||||||
.vmmc_supply = 0xb,
|
.vmmc_supply = 0xb,
|
||||||
.num_slots = 0x1,
|
.num_slots = 0x1,
|
||||||
.clocks = {{&dtv_clock_controller_at_ff760000, 456},
|
.clocks = {{NULL, 456},
|
||||||
{&dtv_clock_controller_at_ff760000, 68},
|
{NULL, 68},
|
||||||
{&dtv_clock_controller_at_ff760000, 114},
|
{NULL, 114},
|
||||||
{&dtv_clock_controller_at_ff760000, 118}},
|
{NULL, 118}},
|
||||||
.cap_mmc_highspeed = true,
|
.cap_mmc_highspeed = true,
|
||||||
.disable_wp = true,
|
.disable_wp = true,
|
||||||
.bus_width = 0x4,
|
.bus_width = 0x4,
|
||||||
@@ -164,6 +163,13 @@ and the following device declaration:
|
|||||||
.platdata_size = sizeof(dtv_dwmmc_at_ff0c0000),
|
.platdata_size = sizeof(dtv_dwmmc_at_ff0c0000),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void dm_populate_phandle_data(void) {
|
||||||
|
dtv_dwmmc_at_ff0c0000.clocks[0].node = DM_GET_DEVICE(clock_controller_at_ff760000);
|
||||||
|
dtv_dwmmc_at_ff0c0000.clocks[1].node = DM_GET_DEVICE(clock_controller_at_ff760000);
|
||||||
|
dtv_dwmmc_at_ff0c0000.clocks[2].node = DM_GET_DEVICE(clock_controller_at_ff760000);
|
||||||
|
dtv_dwmmc_at_ff0c0000.clocks[3].node = DM_GET_DEVICE(clock_controller_at_ff760000);
|
||||||
|
}
|
||||||
|
|
||||||
The device is then instantiated at run-time and the platform data can be
|
The device is then instantiated at run-time and the platform data can be
|
||||||
accessed using:
|
accessed using:
|
||||||
|
|
||||||
@@ -329,7 +335,9 @@ prevents them being used inadvertently. All usage must be bracketed with
|
|||||||
#if CONFIG_IS_ENABLED(OF_PLATDATA).
|
#if CONFIG_IS_ENABLED(OF_PLATDATA).
|
||||||
|
|
||||||
The dt-platdata.c file contains the device declarations and is is built in
|
The dt-platdata.c file contains the device declarations and is is built in
|
||||||
spl/dt-platdata.c.
|
spl/dt-platdata.c. It additionally contains the definition of
|
||||||
|
dm_populate_phandle_data() which is responsible of filling the phandle
|
||||||
|
information by adding references to U_BOOT_DEVICE by using DM_GET_DEVICE
|
||||||
|
|
||||||
The beginnings of a libfdt Python module are provided. So far this only
|
The beginnings of a libfdt Python module are provided. So far this only
|
||||||
implements a subset of the features.
|
implements a subset of the features.
|
||||||
|
Reference in New Issue
Block a user