SPI DTS

在RK3399上打开spidev节点,只需要修改一个文件=>kernel/arch/arm64/boot/dts/rockchip/rk3399-xxxx-xxxx.dtsi

 &spi1 {
-       status = "disabled";
-       pinctrl-names = "default", "sleep";
-       pinctrl-1 = <&spi1_gpio>;
+       status = "okay";
+       //pinctrl-names = "default", "sleep";
+       //pinctrl-1 = <&spi1_gpio>;
 
        spidev0: spidev@0 {
                compatible = "rockchip,spidev";
                reg = <0>;
-               spi-max-frequency = <10000000>;
+               spi-max-frequency = <48000000>;
                status = "okay";
        };
 };
@@ -423,9 +423,6 @@
        status = "okay";
 };
 
-&uart4 {
-       status = "okay";
-};
当时主要是不知道compatible的意义,就去修改它了。
参考https://blog.csdn.net/pwl999/article/details/79631434
1.1.1、compatible
“compatible”属性通常用来device和driver的适配,推荐的格式为”manufacturer,model”。

1. Spi_rockchip.c为硬件驱动,它在rk3399.dtsi中有体现

        spi1: spi@ff1d0000 {
                compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
                reg = <0x0 0xff1d0000 0x0 0x1000>;
                clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
                clock-names = "spiclk", "apb_pclk";
                interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
        };

2. Spidev.c不是硬件驱动,而是为用户态提供SPI操作接口软驱动,它负责响应对/dev/spidev节点的操作。

 

1. Spi_rockchip.c为硬件驱动

2. Spidev.c不是硬件驱动,而是为用户态提供操作接口软驱动,它负责响应对/dev/spidev节点的操作。

原文地址:https://www.cnblogs.com/darkise/p/11230703.html