板级配置
板级设备树文件(DTSI文件)存储所有其他板级设备中相同的信息。(例如,common.dtsi、pinctrl.dtsi和 evb.dts等文件。)
common.dtsi文件在以下路径:
freelight-u-sdk/linux/arch/riscv/boot/dts/starfive/jh7110-common.dtsi
文件中,spi0有以下设置。
&spi0 { pinctrl-names = "default"; pinctrl-0 = <&ssp0_pins>; status = "disabled"; spi_dev0: spi@0 { compatible = "rohm,dh2228fv"; pl022,com-mode = <1>; spi-max-frequency = <10000000>; reg = <0>; status = "okay"; }; };
以下为上述代码中配置位的描述:
- spi-max-frequency:编辑此位以配置SPI的通信时钟频率。
- status:编辑此位以定义是否启用此模块。
EVB板级配置
pinctrl.dtsi文件包含pin控制配置。文件在以下路径:
freelight-u-sdk/linux/arch/riscv/boot/dts/starfive/jh7110-evb-pinctrl.dtsi
以下代码块提供了spi0使用的pin的示例,包括tx(收发器)、rx(接收器)、clk(时钟)和cs(片选)信号。
ssp0_pins: ssp0-pins ssp0-pins_tx { sf,pins = <PAD_GPIO38>; sf,pinmux = <PAD_GPI038_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_SPI0_SSPTXD>; sf,pin-gpio-doen = <OEN_LOW>; }; ssp0-pins_rx { sf,pins = <PAD_GPI039>; sf,pinmux = <PAD_GPIO39_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-doen = <OEN_HIGH>; sf,pin-gpio-din = <GPI_SPI0_SSPRXD>; }; ssp0-pins_clk sf,pins = <PAD_GPI036>; sf,pinmux = <PAD_GPIO36_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_SPI0_SSPCLKOUT> sf,pin-gpio-doen = <OEN_LOW>; }; ssp0-pins_cs { sf,pins = <PAD_GPIO37>; sf,pinmux = <PAD_GPIO37_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_SPI0_SSPFSSOUT> sf,pin-gpio-doen = <OEN_LOW>; }; };
昉·星光 2 板级配置
pinctrl.dtsi文件包含pin控制配置。文件在以下路径:
freelight-u-sdk/linux/arch/riscv/boot/dts/starfive/jh7110-visionfive-v2.dts
以下代码块提供了spi0使用的pin的示例,包括tx(收发器)、rx(接收器)、clk(时钟)和cs(片选)信号。
ssp0_pins: ssp0-pins { ssp0-pins_tx { sf,pins = <PAD_GPIO52>; sf,pinmux = <PAD_GPIO52_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_SPI0_SSPTXD>; sf,pin-gpio-doen = <OEN_LOW>; }; ssp0-pins_rx { sf,pins = <PAD_GPIO53>; sf,pinmux = <PAD_GPIO53_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-doen = <OEN_HIGH>; sf,pin-gpio-din = <GPI_SPI0_SSPRXD>; }; ssp0-pins_clk { sf,pins = <PAD_GPIO48>; sf,pinmux = <PAD_GPIO48_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_SPI0_SSPCLKOUT>; sf,pin-gpio-doen = <OEN_LOW>; }; ssp0-pins_cs { sf,pins = <PAD_GPIO49>; sf,pinmux = <PAD_GPIO49_FUNC_SEL 0>; sf,pin-ioconfig = <IO(GPIO_IE(1))>; sf,pin-gpio-dout = <GPO_SPI0_SSPFSSOUT>; sf,pin-gpio-doen = <OEN_LOW>; }; };