设备树配置
SPI的设备树源代码在以下路径:
freelight-u-sdk/linux/arch/riscv/boot/dts/starfive/jh7110.dtsi
下面的代码为设置SPI0的示例。
spi0: spi@10060000 { compatible = "arm,pl022", "arm,primecell"; reg = <0x0 0x10060000 0x0 0xl0000>; clocks = <&clkgen JH7110_SPI0_CLK_APB>; clock-names = "apb_pclk"; resets = <&rstgen RSTN_U0_SSP_SPI_APB>; reset-names = "rst_apb"; interrupts = <38>; /* shortage of dma channel that not be used */ /* dmas = <&dma 14 1>, <&dma 15 1>;*/ /* dma-names = "rx","tx";*/ arm,primecell-periphid = <0x00041022>; num-cs = <1>; #address-cells = <1>; #size-cells = <0>; status = "disabled";
以下提供了对上述代码块中的参数说明。
- compatible:兼容性信息,用于连接驱动程序和目标设备。
- reg:寄存器基本地址“0x10060000”和范围“0x10000”。
- clocks:SPI模块使用到的时钟。
- clock-names:上述时钟的名称。
- resets:SPI模块使用到的复位信号。
- reset-names:上述复位信号的名称。
- interrupts:硬件中断ID。
- primecell-periphid:SPI设备的外设ID。
- num-cs:片选信号的总数。
- status:SPI模块的工作状态。要启用模块,请将此位设置为“okay”;要禁用该模块,请将此位设置为“disabled”。