Hi ALL:
I met a SPI device driver (Sitronix st7262) probing problem @ android 13(Kernel version: 5.15.71)
In our hardware design, st7262 (panel) is connected to imx8mm via ecspi2
Related DTS
&ecspi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
dmas = <&sdma1 2 7 0>, <&sdma1 3 7 0>;
dma-names = "rx", "tx";
status = "okay";
panel@0 {
reg = <0>;
display-id = "840000";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcd_module>;
compatible = "sitronix,st7262";
spi-max-frequency = <4000000>;
spi-bits-per-word = <8>;
spi-working-mode = <0>;
spi-cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>;
power-supply = <®_lcm_lcd_vdd>;
enable-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
backlight = <&backlight>;
pre-enable;
status = "okay";
In driver (panel-sitronix-st7262.c)
static int st7262_probe(struct spi_device *spi)
{
struct device *dev = &spi->dev;
struct device_node *np = dev->of_node;
struct st7262 *ctx;
struct device_node *timings = NULL;
int ret = 0;
dev_err(&spi->dev, "start st7262 probe\n");
ctx = devm_kzalloc(&spi->dev, sizeof(*ctx), GFP_KERNEL);
if (!ctx)
return -ENOMEM;
......
The driver is built with ko by CONFIG_DRM_PANEL_SITRONIX_ST7262=m
The driver is scheduled loaded by SharedBoardConfig.mk (i2c-imx.ko -->i2c-dev.ko -->spidev.ko ->spi-bitbang.ko ->spi-nxp-fspi.ko ->spi-imx.ko --> leds-lm3697.ko --> panel-sitronix-st7262.ko ...)
i
feq ($(IMX8MM_USES_GKI),true)
BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \
....
$(KERNEL_OUT)/drivers/gpu/drm/panel/panel-sitronix-st7262.ko \
...
However , when system boot, I could see spi_imx is creating spi0, spi1 bus but I could not see driver is probed ( console should print "start st7262 probe")
2.987023] spi_imx 30820000.spi: registered master spi0
[ 2.988160] spi spi0.0: spi_imx_setup: mode 0, 8 bpw, 4000000 hz
[ 2.988170] spi spi0.0: setup mode 0, 8 bits/w, 4000000 Hz max --> 0
[ 2.988415] spi_imx 30820000.spi: registered child spi0.0
[ 2.989033] spi_imx 30830000.spi: registered master spi1
[ 2.989828] spi spi1.0: spi_imx_setup: mode 0, 8 bpw, 4000000 hz
[ 2.989847] spi spi1.0: setup mode 0, 8 bits/w, 4000000 Hz max --> 0
[ 2.990357] spi_imx 30830000.spi: registered child spi1.0
The same files and settings work in our previous OS (Android 12)
Anybody knows how to debug further ?
Thank you!
Regards/Bensonj