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.

SK-AM62: AM62x SKEVM MCU_SPI Interface

Part Number: SK-AM62

Tool/software:

As we are working on MCU_SPI0 with external SPI device(Slave),

A driver is loaded with kernel built in. Then the driver generates an ethernet connection with MCU_SPI0 and MCU_SPI0 is then connected to the external device.

In this context, we need to have two interrupts inside MCU_SPI0 device tree, which occurs Wanrning as follows.

Here are the warning script.

kal@kal-VirtualBox:~/ti-processor-sdk-linux/board-support/linux-extras-6.6.32+git-ti$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- dtbs
  DTC     arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-sk.dtb
  
arch/arm64/boot/dts/ti/k3-am625-sk.dts:356.10-357.49: Warning (interrupts_extended_property): /bus@f0000/bus@4000000/spi@4b00000/spidevx@1:interrupts-extended: cell 2 is not a phandle reference
arch/arm64/boot/dts/ti/k3-am625-sk.dts:356.10-357.49: Warning (interrupts_extended_property): /bus@f0000/bus@4000000/spi@4b00000/spidevx@1:interrupts-extended: cell 6 is not a phandle reference
arch/arm64/boot/dts/ti/k3-am625-sk.dts:349.19-361.11: Warning (interrupts_extended_property): /bus@f0000/bus@4000000/spi@4b00000/spidevx@1: Missing property '#interrupt-cells' in node /clock-divider-oldi or bad phandle (referred from interrupts-extended[6])

  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-nonwifi-dahlia.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-nonwifi-dev.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-nonwifi-mallow.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-nonwifi-yavia.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-wifi-dahlia.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-wifi-dev.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-wifi-mallow.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am625-verdin-wifi-yavia.dtb
  DTC     arch/arm64/boot/dts/ti/k3-am62-lp-sk.dtb

DT codes are..

"k3-am62-mcu.dtsi"

        mcu_gpio_intr: interrupt-controller@4210000 {
                compatible = "ti,sci-intr";
                reg = <0x00 0x04210000 0x00 0x200>;
                ti,intr-trigger-type = <1>;
                interrupt-controller;
                interrupt-parent = <&gic500>;
                #interrupt-cells = <1>;
                interrupt-cells = <2>; /* Added for SPI mcu_gpio0 16 */
                ti,sci = <&dmsc>;
                ti,sci-dev-id = <5>;
                ti,interrupt-ranges = <0 104 4>;
        };

"k3-am625-sk.dts"

&mcu_pmx0{
        mcuspi0_pins_default: mcuspi0-pins-default {
                pinctrl-single,pins = <
                        AM62X_MCU_IOPAD(0x0008, PIN_OUTPUT, 0) /* (A7) MCU_SPI0_CLK */
                        AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 0) /* (B8) MCU_SPI0_CS1 */
                        AM62X_MCU_IOPAD(0x000c, PIN_INPUT, 0) /* (D9) MCU_SPI0_D0 */
                        AM62X_MCU_IOPAD(0x0010, PIN_OUTPUT, 0) /* (C9) MCU_SPI0_D1 */
                >;
        };

        mcuspi0_gpio_interrupt_pins: mcuspi0-gpio-interrupt-pins {
                pinctrl-single,pins = <
                AM62X_MCU_IOPAD(0x0040, PIN_INPUT, 7) /* GPIO0_16 configured as interrupt */
                >;
        };
};

&mcu_spi0 {
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
        pinctrl-0 = <&mcuspi0_pins_default>;
        pinctrl-1 = <&mcuspi0_gpio_interrupt_pins>;
        pinctrl-names = "default", "interrupt";
        spidevx@1 {
                compatible = "vertexcom,mse1021";  /* Updated for mse102x driver */
                /* compatible = "rohm,dh2228fv"; */  /* For Generic SPI driver */
                spi-max-frequency = <7000000>;    /* Set appropriate SPI frequency */
                reg = <1>;                         /* SPI device at chip select 1 */

                /* SPI and Ethernet Interrupts */
                interrupts-extended = <&main_gpio_intr 30 IRQ_TYPE_EDGE_RISING>,  /* GPIO0 16 for SPI interrupt input from MSE102x */
                              <&gic500 GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>; /* GIC SPI interrupt output for Ethernet */
                /* interrupt-parent = <&gic500>; */  /* GIC is the primary interrupt controller */
                status = "okay";
        };
};

When using irg "GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH" for ethernet, it was working properly with MCU_SPI0.

&mcu_pmx0{
        mcuspi0_pins_default: mcuspi0-pins-default {
                pinctrl-single,pins = <
                        AM62X_MCU_IOPAD(0x0008, PIN_OUTPUT, 0) /* (A7) MCU_SPI0_CLK */
                        AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 0) /* (B8) MCU_SPI0_CS1 */
                        AM62X_MCU_IOPAD(0x000c, PIN_INPUT, 0) /* (D9) MCU_SPI0_D0 */
                        AM62X_MCU_IOPAD(0x0010, PIN_OUTPUT, 0) /* (C9) MCU_SPI0_D1 */
                >;
        };
};

&mcu_spi0 {
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
        pinctrl-0 = <&mcuspi0_pins_default>;
        pinctrl-names = "default";
        spidevx@1 {
                compatible = "vertexcom,mse1021";  /* Updated for mse102x driver */
                /* compatible = "rohm,dh2228fv"; */  /* For Generic SPI driver */
                spi-max-frequency = <7000000>;    /* Set appropriate SPI frequency */
                reg = <1>;                         /* SPI device at chip select 1 */
                interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
                status = "okay";
        };
};

What has to be down in order to avoid the Warning? Or let me know if the Warning is ignorable?

Thank you in advance,

Kal Kim