you will have to enable the generic LVDS panel driver (in display panels) and TI SN65DSI83 driver (display interface bridges; for tons of details refer to viewtopic.php?t=305690) in your kernel.
An example overlay is below, backlight PWM is on GPIO19 (PWM control).
Adjust the timing and GPIO's in use and your panel should fire up.
as your overlay does not include any details on touch I will ignore that portion. Example DT uses i2c_csi_dsi for I2C interface (I2C-10 on CM4).
An example overlay is below, backlight PWM is on GPIO19 (PWM control).
Adjust the timing and GPIO's in use and your panel should fire up.
Code:
/* * vc4-kms-dsi-ti-sn65dsi83-somepanel-overlay.dts *//dts-v1/;/plugin/;#include <dt-bindings/gpio/gpio.h>#include <dt-bindings/pinctrl/bcm2835.h>/ {compatible = "brcm,bcm2835";/* PWM0 function */fragment@0 {target = <&gpio>;__overlay__ {pwm_pins: pwm_pins {brcm,pins = <19>;brcm,function = <BCM2835_FSEL_ALT5>;brcm,pull = <0>;};};};fragment@1 {target = <&pwm>;frag1: __overlay__ {pinctrl-names = "default";pinctrl-0 = <&pwm_pins>;assigned-clock-rates = <100000000>;status = "okay";};};fragment@2 {target-path = "/";__overlay__ {//#gpio-cells = <2>;/* Panel backlight through PWM0 on GPIO 19 */backlight_lvds: backlight {compatible = "pwm-backlight";pwms = <&pwm 1 5000000 0>; /* Period of 5000000ns means 200Hz */brightness-levels = <0 1000>;num-interpolated-steps = <1000>;default-brightness-level = <800>;enable-gpios = <&gpio 27 0>; /* Backlight enable... */};panel: panel {compatible = "panel-lvds";backlight = <&backlight_lvds>;/* Physical dimensions of active area */width-mm = <217>;height-mm = <136>;data-mapping = "vesa-24";panel-timing {clock-frequency = <71100000>;hactive = <1280>;hfront-porch = <160>;hsync-len = <48>;hback-porch = <48>;vactive = <800>;vfront-porch = <23>;vsync-len = <6>;vback-porch = <8>;};port {panel_in_lvds: endpoint {remote-endpoint = <&bridge_out>;};};};};};fragment@3 {target = <&i2c_csi_dsi>;__overlay__ {#gpio-cells = <2>;#address-cells = <1>;#size-cells = <0>;status = "okay";bridge@2c {compatible = "ti,sn65dsi83";reg = <0x2c>;enable-gpios = <&gpio 26 0>;ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;bridge_in: endpoint {remote-endpoint = <&dsi_out_port>;data-lanes = <0 1 2>;};};port@2 {reg = <2>;bridge_out: endpoint {remote-endpoint = <&panel_in_lvds>;};};};};};};fragment@4 {target = <&dsi1>;__overlay__ {#address-cells = <1>;#size-cells = <0>;status = "okay";port {dsi_out_port: endpoint {remote-endpoint = <&bridge_in>;data-lanes = <0 1 2>;};};};};fragment@5 {target = <&i2c0if>;__overlay__ {status = "okay";};};fragment@6 {target = <&i2c0mux>;__overlay__ {status = "okay";};};};Statistics: Posted by aBUGSworstnightmare — Fri Mar 01, 2024 7:49 am