在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節點的操作。