Hi all,
I know there have been several SPI posts in this forum. I’d like to use the hardware MCU_SPI0 unit to offload the CPU instead of using the SPI-GPIO. In my understanding all BeagleY-AI examples show use of GPIO-SPI which is sort of bit-banging SPI by the CPU, right?.
In the BeagleY-AI schematic listed at Design and Specifications — BeagleBoard Documentation we see the the MCU_SPI0 pins are connected to the correct default RPI4 SPI pins of the expansion port.
Therefore I hope it must be possible to utilize the MCU_SPI0 hardware unit for SPI. I have a kernel driver working with RPI4, but for BeagleY-AI I don’t know how to configure the pinmux so that these MCU_SPI0_D0/D1/CLK/CS0 get activated. At least with a logic analyzer there is always total silence on the expansion port SPI pins.
My current non-working attempt for a DTS overlay looks like this:
/dts-v1/;
/plugin/;
/ {
compatible = "beagle,am67a-beagley-ai", "ti,j722s";
fragment@1 {
target = <&mcu_spi0>; // MCU_SPI0 HW unit
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&spi_gpio_default_pins>; // this is probably wrong, isn't it?
sck-gpios = <&mcu_gpio0 0x00000002 0x00000000>; // do I need these?
miso-gpios = <&mcu_gpio0 0x00000004 0x00000000>; // do I need these?
mosi-gpios = <&mcu_gpio0 0x00000003 0x00000000>; // do I need these?
num-chipselects = <0x00000002>;
cs-gpios = <&mcu_gpio0 0x00000000 0x00000000 &mcu_gpio0 0x00000009 0x00000000>; // what to specify here?
paa5100je: paa51100je@0 {
compatible = "pimoroni,paa5100je";
reg = <0x0>;
spi-max-frequency = <1000000>;
spi-bits-per-word = <8>;
swap-xy;
status = "okay";
};
};
};
};