Part Number: AM62A7
I'm using AM62A7 (custom board) with McSPI0 (spi@20100000) connected to an SPI panel.
Problem: My panel's data line is wired to SPI0_D0. Logic analyzer shows CLK and CS toggling fine, but D0 stays at 0 — no data at all. When I move the same wire to SPI0_D1 instead, correct SPI data shows up immediately.
What I tried: Added ti,pindir-d0-out-d1-in; to the SPI0 node, hoping it would make D0 carry the data. After this:
- D0 still has no data
- D1 (which was working before) also stopped working
I removed the property and D1 went back to working.
Questions:
- On AM62A, is D0/D1 direction for McSPI actually fixed in hardware (D0 = input only, D1 = output only), with no way to change it from software?
- If yes, why did adding
ti,pindir-d0-out-d1-inbreak D1 too, even though it's supposed to be a no-op? - Is moving the wire to D1 (or doing a PCB rework) the only real fix here?
Thanks for any help.
spi@20100000 {
compatible = "ti,am654-mcspi\0ti,omap4-mcspi";
reg = <0x00 0x20100000 0x00 0x400>;
interrupts = <0x00 0xac 0x04>;
#address-cells = <0x01>;
#size-cells = <0x00>;
power-domains = <0x03 0x8d 0x01>;
clocks = <0x02 0x8d 0x00>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x27 0x56>;
ti,pindir-d0-out-d1-in;
panel@0 {
compatible = "inanbo,t28cp45tn89-v17";
reg = <0x00>;
power-supply = <0x28>;
backlight = <0x29>;
dc-gpios = <0x23 0x06 0x00>;
reset-gpios = <0x23 0x07 0x01>;
rotation = <0x00>;
spi-max-frequency = <0xf4240>;
spi-rx-bus-width = <0x01>;
port {
