设备树错误数据(用于PocketBeagle)

时间:2018-03-05 20:23:15

标签: beagleboneblack device-tree

我正在尝试为PocketBeagle创建一个设备树覆盖,以便与MCP3204 ADC接口。我正在尝试使用Linux内核中已存在的驱动程序。我的设备树源如下:

/dts-v1/;
/plugin/;

/ {
    compatible = "ti,am335x-pocketbeagle";
    part-number = "mm-cape";
    version = "00A0";

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            mm_chipselect: MM_CHIP_SELECT_PIN {
                pinctrl-single,pin = <0xe8 0xf>;
            };
        };
    };

    fragment@1 {
        target = <&ocp>;
        __overlay__ {
            mm_chipselect_helper: helper {
                compatible = "bone-pinmux-helper";
                pinctrl-names = "default";
                pinctrl-0 = <&mm_chipselect>;
                status = "okay";
            };
        };
    };

    fragment@2 {
        target = <&spi0>;
        __overlay__ {
            #address-cells = <1>;
            #size-cells = <0>;

            cs-gpios = <&gpio2 24 0>, <0>, <0>, <0>;

            mcp320x: mcp320x@0 {
                compatible = "microchip,mcp3208";
                reg = <0>;
                spi-max-frequency = <1000000>;
            };
        };
    };
};

当我加载设备树覆盖时,我从dmesg得到以下输出:

[    2.157460] pinctrl-single 44e10800.pinmux: bad data for mux MM_CHIP_SELECT_PIN
[    2.164916] pinctrl-single 44e10800.pinmux: no pins entries for MM_CHIP_SELECT_PIN
[    2.172687] pinctrl-single 44e10800.pinmux: bad data for mux MM_CHIP_SELECT_PIN
[    2.180072] pinctrl-single 44e10800.pinmux: no pins entries for MM_CHIP_SELECT_PIN
[    2.187700] bone-pinmux-helper ocp:helper: Failed to get pinctrl
[    2.193762] ------------[ cut here ]------------
[    2.193783] WARNING: CPU: 0 PID: 1 at drivers/base/devres.c:888 devm_kfree+0x4c/0x50()
[    2.193791] Modules linked in:
[    2.193810] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.91-ti-r133 #1
[    2.193818] Hardware name: Generic AM33XX (Flattened Device Tree)
[    2.193862] [<c001bed0>] (unwind_backtrace) from [<c0015978>] (show_stack+0x20/0x24)
[    2.193885] [<c0015978>] (show_stack) from [<c05c1674>] (dump_stack+0x8c/0xa0)
[    2.193905] [<c05c1674>] (dump_stack) from [<c004435c>] (warn_slowpath_common+0x94/0xc4)
[    2.193919] [<c004435c>] (warn_slowpath_common) from [<c0044490>] (warn_slowpath_null+0x2c/0x34)
[    2.193932] [<c0044490>] (warn_slowpath_null) from [<c0718418>] (devm_kfree+0x4c/0x50)
[    2.193951] [<c0718418>] (devm_kfree) from [<c073bea8>] (bone_pinmux_helper_probe+0x1c4/0x260)
[    2.193966] [<c073bea8>] (bone_pinmux_helper_probe) from [<c0716368>] (platform_drv_probe+0x60/0xc0)
[    2.193990] [<c0716368>] (platform_drv_probe) from [<c0713fcc>] (driver_probe_device+0x234/0x470)
[    2.194005] [<c0713fcc>] (driver_probe_device) from [<c07142a4>] (__driver_attach+0x9c/0xa0)
[    2.194020] [<c07142a4>] (__driver_attach) from [<c0711a80>] (bus_for_each_dev+0x8c/0xd0)
[    2.194035] [<c0711a80>] (bus_for_each_dev) from [<c0713728>] (driver_attach+0x2c/0x30)
[    2.194049] [<c0713728>] (driver_attach) from [<c0713200>] (bus_add_driver+0x1b8/0x278)
[    2.194062] [<c0713200>] (bus_add_driver) from [<c0714d94>] (driver_register+0x88/0x104)
[    2.194075] [<c0714d94>] (driver_register) from [<c0716274>] (__platform_driver_register+0x50/0x58)
[    2.194094] [<c0716274>] (__platform_driver_register) from [<c0f96218>] (bone_pinmux_helper_driver_init+0x1c/0x20)
[    2.194113] [<c0f96218>] (bone_pinmux_helper_driver_init) from [<c00098e4>] (do_one_initcall+0xd8/0x228)
[    2.194133] [<c00098e4>] (do_one_initcall) from [<c0f4c000>] (kernel_init_freeable+0x1ec/0x288)
[    2.194152] [<c0f4c000>] (kernel_init_freeable) from [<c0aa4314>] (kernel_init+0x1c/0xf8)
[    2.194172] [<c0aa4314>] (kernel_init) from [<c0010e00>] (ret_from_fork+0x14/0x34)
[    2.194217] ---[ end trace 20e7a3ce9aa45d9c ]---
[    2.194310] bone-pinmux-helper: probe of ocp:helper failed with error -22
[    2.222490] spi spi1.0: failed to request gpio
[    2.227072] omap2_mcspi 48030000.spi: can't setup spi1.0, status -16
[    2.233483] spi_master spi1: spi_device register error /ocp/spi@48030000/mcp320x@0
[    2.241309] spi_master spi1: Failed to create SPI device for /ocp/spi@48030000/mcp320x@0

我似乎无法找到错误的来源。我已经确认使用多个其他示例,文件的结构应该是正确的,并且引脚偏移和多路复用器值是正确的。可能导致此错误的原因是什么?

0 个答案:

没有答案