[Verse 1]
In the device tree lives a blueprint so clear
Nodes describe the hardware living here
Each one holds a compatible string inside
Telling kernels which driver should preside
When the system boots and scans the tree
Platform bus creates devices we can see
[Chorus]
Match the string, find the driver
Compatible means they're survivors
Platform device creation time
From device tree nodes in perfect rhyme
Probe gets called when names align
Driver binding by design
[Verse 2]
The compatible property holds the key
Array of strings in priority
Most specific first, then general names
Kernel searches through its driver claims
When it finds a match within the list
Driver probe function can't be missed
[Chorus]
Match the string, find the driver
Compatible means they're survivors
Platform device creation time
From device tree nodes in perfect rhyme
Probe gets called when names align
Driver binding by design
[Bridge]
Platform driver table holds the match
Of device table entries in a batch
Each entry has a compatible name
Kernel compares them in this matching game
Resources parsed from device tree nodes
Passed to drivers in structured modes
[Verse 3]
Memory regions, interrupts and clocks
Device tree properties unlock the blocks
Platform device wraps them all with care
Making hardware resources drivers can share
The binding dance happens at boot time
Device tree to driver paradigm
[Chorus]
Match the string, find the driver
Compatible means they're survivors
Platform device creation time
From device tree nodes in perfect rhyme
Probe gets called when names align
Driver binding by design
[Outro]
From tree to bus to driver code
Hardware abstraction on this road
Compatible strings the bridge between
Hardware description and kernel scene