板级配置

板级设备树文件(DTSI文件)存储所有其他板级设备中相同的信息。(例如,common.dtsipinctrl.dtsievb.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>;
        };
};