本次主要参考:
https://github.com/mangopi-sbc/buildroot-mangopi-r
https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html
(如果方便请给这几位大佬一个关注)
注意代码块之间的空行
配置设备树文件
1、打开linux-5.7.1/arch/arm/boot/dts/suniv-f1c100s.dtsi文件。
在soc->pio下最后面,也就是121行,添加如下代码(引脚选用PD0,PD12):
i2c0_pd_pins: i2c0-pd-pins {
pins = "PD0", "PD12";
function = "i2c0";
};
添加之后如下:
在soc下最后面,也就是第329行,添加如下代码:
i2c0: i2c@1c27000 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x01c27000 0x400>;
interrupts = <7>;
clocks = <&ccu CLK_BUS_I2C0>;
resets = <&ccu RST_BUS_I2C0>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
添加之后如下:
保存后退出。
2、打开linux-5.7.1/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts文件。
在文件的最后面。也就是第100行,添加如下代码
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pd_pins>;
status = "okay";
};
添加之后如下:
保存后退出。
3、最后按照之前的方法编译,并将新的内核与设备树文件,按照之前的方法在板子上运行。
4、在开发板命令终端输入:
i2cdetect -y 0
即可看到I2C0挂载的设备地址,我的开发板I2C0上有3个设备(ns2009,at24c32,ds3231),如下图:
QQ:763314235,会在第一时间处理。