Hello,
We are working on interfacing the st7701s in am62a3 using SDK 9.1 edgeai-build. Could you please provide the necessary steps to be implemented in the driver and dtsi files in the operating system?
Regards,
Udhayamoorthi Ramasamy
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
We are working on interfacing the st7701s in am62a3 using SDK 9.1 edgeai-build. Could you please provide the necessary steps to be implemented in the driver and dtsi files in the operating system?
Regards,
Udhayamoorthi Ramasamy
Hello,
I see the following drivers in Linux:
1. https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpu/drm/panel/panel-sitronix-st7701.c?h=ti-linux-6.1.y
2. https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpu/drm/panel/panel-sitronix-st7703.c?h=ti-linux-6.1.y
I don't know if that's the part you are using but please keep in mind that it's not a driver implemented by TI. We can only offer limited help and you would need to work with the authors for proper implementation.
Regards,
Krunal
I understand that.
Does the ST7701 driver support the AM62Ax, which has DPI capabilities? Additionally, is it possible to implement a DSI driver on the DPI interface?
Regards,
Udhayamoorthi Ramasamy
Hello,
I do not think it makes sense to implement DSI driver on DPI interface. You will need a converter chip that will convert DPI signals to DSI signals.
Regards,
Krunal
Hello,
we are interfacing st7701s parallel RGB 16 bit but st7701 structure like this
static struct mipi_dsi_driver st7701_dsi_driver = {
.probe = st7701_dsi_probe,
.remove = st7701_dsi_remove,
.driver = {
.name = "st7701",
.of_match_table = st7701_of_match,
},
};
it seems driver supports dsi but how can i make this work?
NOTE : we are triyng S7701s with spi interface
Regards,
Udhayamoorthi Ramasamy
Hello,
Does the HW even support DPI? If yes, my recommendation would be for you to check with the maintainer of the driver.
Regards,
Krunal
Yes, the author of the driver. TI did not develop the source code for S7701S and for additional support, you need to check with the author/maintainer.
Regards,
Krunal
Can you please tell me what are the things needs to turn on for display bringup in menuconfig and which node i need to change if i am using spi interface in dtsi?
Hi,
Krunal is on travel and out of office this week. Expect a response when he will be back next week. Apologies for the delay.
On AM62Ax please refer the below DTSI file (sii9022/hdmi):
git.ti.com/.../k3-am62a7-sk.dts
Best Regards,
Suren
understand that.
Do you have any reference for any display driver using spi interface in dtsi?
Hello,
We do not DTS examples of driving display through SPI interface.
Regards,
Krunal
can you please provide DTS examples of any peripheripal through SPI interface?
can you please provide DTS examples of any peripheripal through SPI interface?
Here's one example:
https://git.ti.com/gitweb?p=ti-linux-kernel/ti-linux-kernel.git;a=blob;f=arch/arm64/boot/dts/ti/k3-am625-sk-mcspi-loopback.dtso;hb=refs/heads/ti-linux-6.1.y
Regards, Andreas
main_spi0_pins_default: main_spi0-default-pins {
pinctrl-single,pins = <
AM62AX_IOPAD(0x1bc, PIN_INPUT_PULLUP, 0) /* (A17) SPI0_CLK */
AM62AX_IOPAD(0x1c0, PIN_OUTPUT_PULLUP, 0) /* (B15) SPI0_D0 */
AM62AX_IOPAD(0x1c4, PIN_INPUT_PULLUP, 0) /* (E15) SPI0_D1 */
AM62AX_IOPAD(0x1b8, PIN_OUTPUT, 0) /* (C16) SPI0_CS1 */
>;
};I have added the SPI0 node here,
You need to follow the example I provided more closely. See how all pins are set to PIN_INPUT. Also make sure the corresponding main_spi0 node definition is complete, including the #address-cells and #size-cells nodes, without which it won't work. Then try setting up and running your SPI0 interface using the 'spidev' driver and running it with the the Linux kernel source-provided SPI test utility to see if you can get the SPI piece of your project to work. This will then give you confidence to tackle the higher-level aspects of the display you are trying to get to work. See here for more info https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1263441/sk-am62-no-spi-signals-on-expansion-headers/4783737
like frame buffer, TIDSS buffer, or DRM buffer when connecting to the DPI port.
I can only support the SPI aspects here.
For the display itself please continue the discussion on the related thread you opened which is assigned to our display expert: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1321351/am62a3-dpi-panel-bring-up---am62a3-dss-support
Regards, Andreas
&main_spi0{
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_spi0_pins_default>;
panel@0 {
compatible = "sitronix,st7789v";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&display_pins_default>;
reset-gpios = <&main_gpio0 38 GPIO_ACTIVE_LOW>;
dc-gpios = <&main_gpio0 39 GPIO_ACTIVE_LOW>;
// led-gpios = <&gpio pin GPIO_ACTIVE_HIGH>;
// backlight = <&pwm>;
power-supply = <&vcc_3v3_sys>;
rotate = <0> ;
width = <320> ;
height = <240> ;
fps = <60> ;
buswidth = <8> ;
txbuflen = <32768>;
spi-max-frequency = <32000000>;
spi-cpol;
spi-cpha;Have you tried following the known-good example I pointed to? https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1263441/sk-am62-no-spi-signals-on-expansion-headers/4783737 Then see if you can see signals on the pins.
That should be your first step to establish a baseline.
Regards, Andreas
yeah, i have tried directly spi interface signals and display is working now
yeah, i have tried directly spi interface signals and display is working now
Very nice. Would you mind sharing the complete solution here (display and SPI-related DTS entries)? I will probably help somebody else in the future. Thanks!
Regards, Andreas
&main_spi0{
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_spi0_pins_default>;
panel@0 {
compatible = "sitronix,st7789v";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&display_pins_default>;
reset-gpios = <&main_gpio0 38 GPIO_ACTIVE_LOW>;
power-supply = <&vcc_3v3_sys>;
rotate = <0> ;
width = <320> ;
height = <240> ;
fps = <60> ;
buswidth = <8> ;
txbuflen = <32768>;
spi-max-frequency = <32000000>;
spi-cpol;
spi-cpha;
};
};
This workedUdhayamoorthi, thank you for providing your working solutuion, this is really great!!