LRADC 配置
1. 硬件确认
开始修改前必须记录:控制器编号、引脚复用、电压域、供电、复位/使能脚、中断以及外接器件型号。高速接口还要确认走线拓扑、参考时钟和 PHY 复用。
2. 查找当前平台配置
cd <ANDROID_TOP>/longan
find bsp device kernel -type f \( -name '*.dts' -o -name '*.dtsi' -o -name 'Kconfig' \) | grep -Ei '<MODULE>|t527|sun55iw3'
grep -Rni '<compatible-or-config-keyword>' bsp device kernel
不要假设发布指南中的目录与当前分支完全一致,特别是 Linux 5.15 BSP 独立仓库和旧内核目录存在差异。
3. Kernel menuconfig
./build.sh menuconfig
重点检查:
- Allwinner BSP > Device Drivers > Input Drivers > LRADC/Keyboard
INPUTINPUT_EVDEV
保存配置:
./build.sh saveconfig
# 再检查目标 defconfig 是否发生变化
git diff -- device bsp
4. Device Tree 示例
下面是整理后的参考结构,不应覆盖 SoC dtsi 中已有的 reg、interrupts、clocks 和 resets,除非芯片勘误或官方补丁明确要求。
&lradc {
compatible = "allwinner,keyboard_1350mv";
key_cnt = <4>;
key0 = <210 115>;
key1 = <410 114>;
key2 = <590 139>;
key3 = <750 28>;
status = "okay";
};
5. 编译与产物检查
./build.sh kernel 2>&1 | tee /tmp/module-kernel-build.log
./build.sh pack
确认配置和节点进入最终产物:
grep -E '<CONFIG_KEY>' out/*/*/kernel/build/.config 2>/dev/null
find out -type f \( -name '*.dtb' -o -name '*.ko' \) | sort
dtc -I dtb -O dts -o /tmp/final.dts <FINAL_DTB>
grep -n -A30 -B5 '<NODE_OR_COMPATIBLE>' /tmp/final.dts
6. 变更边界
- SoC 资源和公共默认值放在
bsp/configs/linux-5.15/*.dtsi。 - 板级引脚、供电、复位、外设子节点和
status放在板级board.dts。 - 不在构建生成目录或软链接镜像中直接修改。
- 多产品共用改动应评估是否会影响其他板型。