SPI на Toradex Verdin iMX8M Plus

Я новичок в дереве устройств и пытаюсь получить spidev0.1, spidev 1.0, spidev 1.1, spidev 2.0 и spidev2.1. В настоящее время у меня есть только spidev0.0 в /dev.

Я попытался изменить дерево устройств следующим образом, но это не сработало:

imx8mp-verdin-yavia.dtsi

      /* Verdin SPI_1 */
&ecspi1 {
    status = "okay";
    spidev@0 {
        compatible = "toradex,evalspi";
        reg = <0>;
        spi-max-frequency = <10000000>;
        status = "okay";
    };
    spidev@1 {
        compatible = "toradex,evalspi";
        reg = <1>;
        spi-max-frequency = <10000000>;
        status = "okay";
    };
    spidev@2 {
        compatible = "toradex,evalspi";
        reg = <2>;
        spi-max-frequency = <10000000>;
        status = "okay";
    };
      };

imx8mp-verdin.dtsi

      &iomuxc {
    pinctrl_bt_uart: btuartgrp {
        fsl,pins = <
            MX8MP_IOMUXC_ECSPI2_SCLK__UART4_DCE_RX      0x1c4
            MX8MP_IOMUXC_ECSPI2_MOSI__UART4_DCE_TX      0x1c4
            MX8MP_IOMUXC_ECSPI2_MISO__UART4_DCE_CTS     0x1c4
            MX8MP_IOMUXC_ECSPI2_SS0__UART4_DCE_RTS      0x1c4
        >;
    };

    pinctrl_ctrl_sleep_moci: ctrlsleepmocigrp {
        fsl,pins = <
            MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29       0x1c4   /*  SODIMM 256 */
        >;
    };

    pinctrl_ecspi1: ecspi1grp {
        fsl,pins = <
            MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK       0x4 /* SODIMM 196 */
            MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI       0x4 /* SODIMM 200 */
            MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO       0x1c4   /* SODIMM 198 */
            MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09     0x1c4   /* SODIMM 202 */
        >;
    };

imx8mp.dtsi

                  aips3: bus@30800000 {
            compatible = "simple-bus";
            reg = <0x30800000 0x400000>;
            #address-cells = <1>;
            #size-cells = <1>;
            ranges;

            ecspi1: spi@30820000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi";
                reg = <0x30820000 0x10000>;
                interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clk IMX8MP_CLK_ECSPI1_ROOT>,
                     <&clk IMX8MP_CLK_ECSPI1_ROOT>;
                clock-names = "ipg", "per";
                assigned-clock-rates = <80000000>;
                assigned-clocks = <&clk IMX8MP_CLK_ECSPI1>;
                assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
                dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
                dma-names = "rx", "tx";
                status = "okay";
            };

            ecspi2: spi@30830000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi";
                reg = <0x30830000 0x10000>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clk IMX8MP_CLK_ECSPI2_ROOT>,
                     <&clk IMX8MP_CLK_ECSPI2_ROOT>;
                clock-names = "ipg", "per";
                assigned-clock-rates = <80000000>;
                assigned-clocks = <&clk IMX8MP_CLK_ECSPI2>;
                assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
                dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
                dma-names = "rx", "tx";
                status = "okay";
            };

            ecspi3: spi@30840000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "fsl,imx8mp-ecspi", "fsl,imx6ul-ecspi";
                reg = <0x30840000 0x10000>;
                interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clk IMX8MP_CLK_ECSPI3_ROOT>,
                     <&clk IMX8MP_CLK_ECSPI3_ROOT>;
                clock-names = "ipg", "per";
                assigned-clock-rates = <80000000>;
                assigned-clocks = <&clk IMX8MP_CLK_ECSPI3>;
                assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
                dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
                dma-names = "rx", "tx";
                status = "okay";
            };

У меня также есть это наложение, которое я не изменил.

        // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
    /*
    * Copyright 2022 Toradex
    */

    // Verdin imx8mp spidev

    /dts-v1/;
    /plugin/;

    / {
        compatible = "toradex,verdin-imx8mp";
    };

    /* Verdin SPI_1 */
    &ecspi1 {
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";

        spidev@0 {
        /* Use compatible "rohm,dh2228fv" to bind spidev driver */
        compatible = "rohm,dh2228fv";
        reg = <0>;
        spi-max-frequency = <10000000>;
    };
    
    };

0 ответов

Другие вопросы по тегам