Hi,
Unfortunately, I am not able to make it work for now, here is the status:
I have then made the following changes in stm32mp157a device tree:
/ {
chosen {
stdout-path = "serial0:115200n8";
};
aliases {
ethernet0 = ðernet0;
};
panel {
compatible = "powertip,ph800480t013-idf02";
power-supply = <&attiny>;
backlight = <&attiny>;
port {
panel_in: endpoint {
remote-endpoint = <&bridge_out>;
};
};
};
};
&i2c5 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c5_pins_b>;
pinctrl-1 = <&i2c5_sleep_pins_b>;
i2c-scl-rising-time-ns = <185>;
i2c-scl-falling-time-ns = <20>;
clock-frequency = <400000>;
status = "okay";
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
#address-cells = <1>;
#size-cells = <0>;
attiny: regulator@45 {
compatible = "raspberrypi,7inch-touchscreen-panel-regulator";
reg = <0x45>;
};
};
&dsi {
status = "okay";
bridge@0 {
compatible ="toshiba,tc358762";
reg = <0>;
vddc-supply = <&attiny>;
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
bridge_in: endpoint {
remote-endpoint = <&dsi_out>;
};
};
port@1 {
reg = <1>;
bridge_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
dsi_out: endpoint {
remote-endpoint = <&bridge_in>;
};
};
};
};
<dc {
status = "okay";
};
&gpu {
status = "okay";
};
I have also enabled the following kernel config flags:
< CONFIG_PARPORT=y
< CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=y
< CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=y
< CONFIG_MEDIA_SUPPORT=y
< CONFIG_DRM_DEBUG_MM=y
< CONFIG_DRM_STM_DSI=m
< CONFIG_DRM_PANEL_DSI_CM=m
< CONFIG_DRM_PANEL_SIMPLE=m
< CONFIG_DRM_PANEL_EDP=m
< CONFIG_DRM_PANEL_ILITEK_IL9322=m
< CONFIG_DRM_PANEL_ILITEK_ILI9341=m
< CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
< CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
< CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
> CONFIG_DRM_STM_DSI=y
> CONFIG_DRM_PANEL_SIMPLE=y
< CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
< CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
< CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
< CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
< CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m
< CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
< CONFIG_DRM_CHIPONE_ICN6211=m
< CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=m
< CONFIG_DRM_NWL_MIPI_DSI=m
< CONFIG_DRM_SIMPLE_BRIDGE=m
< CONFIG_DRM_TOSHIBA_TC358762=m
< CONFIG_DRM_TOSHIBA_TC358767=m
< CONFIG_DRM_TOSHIBA_TC358768=m
< CONFIG_DRM_ANALOGIX_ANX6345=m
< CONFIG_DRM_ANALOGIX_ANX78XX=m
< CONFIG_DRM_ANALOGIX_ANX7625=m
> CONFIG_DRM_SII902X=y
< CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
< CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
< CONFIG_PANEL=y
< CONFIG_CLKSRC_STM32_LP=y
< CONFIG_DYNAMIC_DEBUG=y
< CONFIG_FTRACE=y
< CONFIG_ENABLE_DEFAULT_TRACERS=y
< DRM_DW_MIPI_DSI=y
< DRM_MIPI_DSI=y
You will find enclosed the dmesg boot trace.
I can see both the touchscreen and the regulator on i2c bus:
# i2cdetect -y 1 ;
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- 38 -- -- -- -- -- -- --
40: -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
The regulator, at address 0x45 seems to be correctly handled by rpi_touchscreen_attiny driver.
I have probed the i2c bus between regulator and MPI DSI bridge, both communicate with each other.
Still, the mipi dsi fails at the probing step.
Do you have any idea? Thanks a lot!
Yorick