I'm trying to update an imx8mm based product from Android-10 to Android-12
I'm re-using the existing device tree definition as is on Android 12. However various drivers are never been called and initialized.
The android-12 build runs but the LCD display is never initialized. I can't even confirm that any of i2c based device are being initialized. There's a sn65dsi32 MIPI to LVDS bridge chip that needs to be initialized but the driver's probe function is never being called.
The older Android used a custom sn65dsi32 driver:
./drivers/gpu/drm/bridge/sn65/sn65dsi83_brg.h
./drivers/gpu/drm/bridge/sn65/sn65dsi83_drv.c
./drivers/gpu/drm/bridge/sn65/sn65dsi83_brg.c
./drivers/gpu/drm/bridge/sn65/sn65dsi83_timing.h
But the older driver won't compile on the newer kernel due to various missing header files.
But he newer kernel includes the following driver
./drivers/gpu/drm/bridge/ti-sn65dsi86.c
But the newer drivers probe function sn65dsi83_probe is never being called
On the older Android 10 based Linux I could enabled various logging that would log when a node in the dtb was associated with a particular driver. Output similar to the following:
By enabling debug levels messages in ./drivers/base/dd.c
[Mon Nov 13 15:37:33 2023] bus: 'platform': really_probe: bound device 30280000.watchdog to driver imx2-wdt
[Mon Nov 13 15:37:33 2023] driver: 'sdhci-esdhc-imx': driver_bound: bound to device '30b60000.mmc'
[Mon Nov 13 15:37:33 2023] bus: 'platform': really_probe: bound device 30b60000.mmc to driver sdhci-esdhc-imx
[Mon Nov 13 15:37:33 2023] driver: 'imx_ocotp': driver_bound: bound to device '30350000.ocotp-ctrl'
[Mon Nov 13 15:37:33 2023] bus: 'platform': really_probe: bound device 30350000.ocotp-ctrl to driver imx_ocotp
[Mon Nov 13 15:37:33 2023] driver: 'galcore': driver_bound: bound to device '38000000.gpu'
[Mon Nov 13 15:37:33 2023] bus: 'platform': really_probe: bound device 38000000.gpu to driver galcore
But this mechanism doesn't seem to work on the newer Linux kernel (5.15) used with Android-12
How can I debug why my dtb definitions are being associated or bound to a particular driver ?
If I query /sys/bus/i2c/devices I can see that my dtb definitions are there.
Hello,
You have to build the dtb and reinstall on the board, the you can debug it with Real View ICE or dgb.
Regars