Tool/software:
Hi,
Currently, MCU_SPI0 transmits data over MCU_SPI0_D1 (MOSI). For our application, MCU_SPI0_D1 needs to be MISO and MCU_SPI_D0 be MOSI.
root@j722s-evm:/# devmem2 0x04B0012C /dev/mem opened. Memory mapped at address 0xffffbea84000. Read at address 0x04B0012C (0xffffbea8412c): 0x200103C8 root@j722s-evm:/# ./spidev_test -v -D /dev/spidev1.0 -p "HELLO WORLD" spi mode: 0x0 bits per word: 8 max speed: 500000 Hz (500 kHz) TX | 48 45 4C 4C 4F 20 57 4F 52 4C 44 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |HELLO WORLD| RX | FF FF FF FF FF FF FF FF FF FF FF __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |...........|
Reading the value of MCSPI_CFG_CH0CONF[16:18], it seems like D0 should be selected for transmission, but data is still being sent out over D1.
Here is how the MCU_SPI0 driver is configured in the device tree:
k3-am62p-mcu.dtsi:
mcu_spi0: spi@4b00000 {
compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
reg = <0x00 0x04b00000 0x00 0x400>;
interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 147 0>;
status = "disabled";
};
mcu_spi1: spi@4b10000 {
compatible = "ti,am654-mcspi","ti,omap4-mcspi";
reg = <0x00 0x04b10000 0x00 0x400>;
interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 148 0>;
status = "disabled";
};
k3-j722s-evm.dts:
...
mcu_spi0_pins_default: mcu-spi0-default-pins { /*AWR1 */
pinctrl-single,pins = <
J722S_MCU_IOPAD(0x008, PIN_INPUT, 0) /* (A9) MCU_SPI0_CLK */
J722S_MCU_IOPAD(0x000, PIN_INPUT, 0) /* (C12) MCU_SPI0_CS0 */
J722S_MCU_IOPAD(0x00C, PIN_INPUT, 0) /* (B12) MCU_SPI0_D0 */
J722S_MCU_IOPAD(0x010, PIN_INPUT, 0) /* (C11) MCU_SPI0_D1 */
>;
};
...
&mcu_spi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mcu_spi0_pins_default>;
spidev@0 {
spi-max-frequency = <24000000>;
reg = <0>;
compatible = "rohm,dh2228fv";
};
};
...
Also tried adding CONFIG_SPI_MASTER=y and removing CONFIG_SPI_SLAVE from defconfig, wondering if spidev might be in peripheral mode, but no change.
Could you advise how to implement D1=MISO and D0=MOSI?
Thank you,
Jin