2023/02/10 09:25
以ma35d1-iot-512m.dts配置为例:
文件ma35d1.dtsi中有定义EBI,默认是disable的,如果需要打开,把status状态修改为“okay”
ebi0: ebi@40100000 {
compatible = "nuvoton,ma35d1-ebi";
reg = <0x0 0x40100000 0x0 0x10>;
bank = <0>;
clock-enable = "ebi_gate";
clock-names = "ebi_gate";
clocks = <&clk EBI_GATE>;
status = "disabled";
busmode = <1>;//Address/Data Bus Separate Mode. 0:Disabled, 1:Enabled
csactiveLevel = <0>;//0:Low, 1: High
datawidth = <1>;//0:8bit, 1: 16bit
MCLKDIV = <2>;//0 ~ 7,EBI_CTL0[10:8]
tALE = <1>;//0 ~ 7,EBI_CTL0[18:16]
tACC = <1>;//0 ~ 31, EBI_TCTLx[7:3]
tAHD = <1>;//0 ~ 7, EBI_TCTLx[10:9]
IDLE = <3>;//0 ~ 15, EBI_TCTLx[27:24] and EBI_TCTLx[15:12]
};
然后在文件ma35d1-iot-512m.dts中添加ebi 管脚配置(可以参考ma35d1-som-256m.dts):
&ebi0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ebi0_16bit>;
};
ebi0 {
pinctrl_ebi0_16bit: ebi0_16bitgrp{
nuvoton,pins =
<SYS_GPG_MFPH_PG11MFP_EBI_AD0 &pcfg_default>,
<SYS_GPG_MFPH_PG12MFP_EBI_AD1 &pcfg_default>,
<SYS_GPG_MFPH_PG13MFP_EBI_AD2 &pcfg_default>,
<SYS_GPG_MFPH_PG14MFP_EBI_AD3 &pcfg_default>,
<SYS_GPG_MFPH_PG15MFP_EBI_AD4 &pcfg_default>,
......
具体的管脚需要确认电路图有没有和其他模块复用,然后根据实际情况来配置管脚。
然后make linux-menuconfig,
打开ebi配置选项:Device Driver->Misc devices
找到Nuvoton MA35D1 EBI support并勾选这个
修改保存后make linux-rebuild
然后make