su - root
cd /opt
tar -xzvf Ascend310B-source.tar.gz
tar -xzvf 源码包
cd Ascend310B-source/dtb/dts/hi1910b/hi1910BL/product
vim hi1910B-pinctrl-M100-B51.dtsi
根据表格表1管脚19、21、23与24的端口复用寄存器基地址为0x0082320000,管脚19、21、23与24的复用寄存器偏移地址分别为0x068、0x06c、0x060和0x064。
找到pinmux@82320000节点,修改SPI0节点的复用寄存器的值即可。
当前寄存器值0x0为SPI功能,将其更改为0x3,0x3为gpio功能。
更改后如下图所示,图中红色方框内为修改内容。
用户可根据自身需要配置端口复用寄存器的值,寄存器的值与复用功能的对应关系请参见表1。
示例:在0x00C4000000节点下新增配置,将管脚22复用为gpio0_02,红框内为新增内容。
hi1910B-pinctrl-M150-B50.dtsi在“Ascend310B-source/dtb/dts/hi1910b/hi1910BL/product”目录下。
:wq!
cd /opt
由于SPI0的管脚被改成GPIO功能,SPI0的驱动无法使用,需要将其功能进行屏蔽。
执行以下命令,打开Ascend310B-source/dtb/dts/hi1910b/hi1910BL/base路径下的“hi1910B-spi.dtsi”文件。
vim Ascend310B-source/dtb/dts/hi1910b/hi1910BL/base/hi1910B-spi.dtsi
在SPI0设备节点中添加语句“status = "disabled";”以禁用SPI0管脚的主功能。修改完成后如下图所示,图中红色方框内为新增内容。
本节以SPI0为例,修改dts文件,若复用其他管脚功能,请根据实际情况修改dts文件,禁用不使用的功能或添加新功能。
:wq!
cd /opt/Ascend310B-source
bash build.sh dtb
出现如下回显,表示编译内核dtb文件成功。
generate /opt/Ascend310B-source/output/dt.img success! sign /opt/Ascend310B-source/output/dt.img success!
编译后的dt.img文件会自动存放于output目录下。