Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: UART question



What I will be happy to learn too, is the articulation between the
config and the DTB: there may be nodes created because some device is
declared in the config, while being, also, described in the DTB; but
some devices only declared in the DTB will escape the detection.

Has the DTB to be mirrored in some way in the config? This is the
question for which I didn't search an answer in the sources...
The config lists the drivers to compile into the kernel and each driver has a list of "compatible" strings that are checked against those in the DTB when the driver's "match" function is invoked by the kernel. Only the DTB nodes with their "status" property set to "okay" are submitted to the match function. For every match, the driver's "attach" function is invoked so it can use the information provided by the corresponding DTB node to configure a device instance. After configuring the hardware, the driver's "attach" function must call the relevant attach kernel API so the kernel becomes aware of the new device instance and knows how to call its methods. This can be tty_attach() for an UART, fdtbus_register_i2c_controller() + fdtbus_attach_i2cbus() for an I2C interface, or sysmon_envsys_sensor_attach() + sysmon_envsys_register() for a temperature sensor or an ADC.
You get the idea.


Home | Main Index | Thread Index | Old Index