Closed dsx724 closed 1 year ago
For some reason, I have to manually modprobe panel-mipi-dbi. Is this expected?
No, last time I tried it loaded automatically.
The CS pins on SPI do not activate like with fbtft. I manually try to dump some data:
DRM differs from fbtft in this respect, from wiki:
The reset-gpio polarity also differs (wiki):
You can see what the driver does by setting drm.debug
No, last time I tried it loaded automatically.
I have this DT segment for booting but the panel-mipi-dbi module is not loaded automatically. I have to manually modprobe it on boot.
spi@8d80 {
cs-gpios = <0x24 0x59 0x01>;
pinctrl-names = "default\0idle-high\0idle-low";
pinctrl-2 = <0x72 0x74>;
pinctrl-1 = <0x72 0x73>;
pinctrl-0 = <0x72>;
compatible = "amlogic,meson-gx-spicc";
reg = <0x00 0x8d80 0x00 0x80>;
interrupts = <0x00 0x51 0x04>;
#address-cells = <0x01>;
#size-cells = <0x00>;
status = "okay";
clocks = <0x03 0x15>;
clock-names = "core";
resets = <0x12 0xc1>;
num-cs = <0x01>;
phandle = <0x54>;
display@0 {
status = "okay";
spi-cpha;
spi-cpol;
height-mm = <0x0f>;
width-mm = <0x19>;
backlight = <0xa8>;
write-only;
reset-gpios = <0x24 0x61 0x00>;
dc-gpios = <0x24 0x60 0x00>;
spi-max-frequency = <0x27bc86a>;
reg = <0x00>;
compatible = "panel\0panel-mipi-dbi-spi";
panel-timing {
vsync-len = <0x00>;
vfront-porch = <0x00>;
hsync-len = <0x00>;
hsync-porch = <0x00>;
hfront-porch = <0x00>;
clock-frequency = <0x00>;
vback-porch = <0x00>;
hback-porch = <0x00>;
vactive = <0x87>;
hactive = <0xf0>;
};
};
};
DRM differs from fbtft in this respect, from wiki:
Ack.
The reset-gpio polarity also differs (wiki):
I discovered this earlier when converting some other displays. The logic is flipped compared to most other drivers using ACTIVE_LOW resets, but ack.
You can see what the driver does by setting drm.debug
Thanks for this.
I have fixed my issue but I can see not autoloading being an issue for others in the future. Thanks again.
@notro Thanks for the great work on this. I'm trying to figure out how to convert an existing working sequence to panel-mipi-dbi and ran into some issues.
I dumped an fbtft log of the init:
I created an equivalent initialization file panel.bin in /lib/firmware:
It doesn't come with the screen clear but everything else is the same.
I create the device tree overlay:
1) For some reason, I have to manually modprobe panel-mipi-dbi. Is this expected?
I get the following dmesg after
modprobe panel-mipi-dbi
:The CS pins on SPI do not activate like with fbtft. I manually try to dump some data:
However nothing is drawn on the screen and SPI CS never goes to ground. The reset line is stuck on low unlike just blinking with fbtft.
Any ideas? I'm on Linux 6.1.