芯片为zynq7010
将zynq的linux系统 linux-xlnx-xilinx-v2016.4 更新到 linux-xlnx-xlnx_rebase_v4.14 时,启动系统,出现了以下错误
xilinx-gpio 41200000.gpio: Input clock not found
xilinx-gpio: probe of 41200000.gpio failed with error -2
xilinx-gpio 41210000.gpio: Input clock not found
xilinx-gpio: probe of 41210000.gpio failed with error -2
查看发现了一个帖子,发现设备树需要添加上时钟 clocks = <&clkc 15>;
帖子链接如下:
https://forums.xilinx.com/t5/7-Series-FPGAs/axi-gpio-broken-in-Petalinux-2018-1/td-p/886206
修改后发现还是不行,同样提示错误,后发现还需添加 clock-names = "s_axi_aclk"; 具体如下:
axi_gpio_0: gpio@41200000 {
#gpio-cells = <2>;
#interrupt-cells = <2>;
clock-names = "s_axi_aclk";
clocks = <&clkc 15>;
compatible = "xlnx,xps-gpio-1.00.a";
gpio-controller ;
interrupt-controller ;
interrupt-parent = <&intc>;
interrupts = <0 29 4>;
reg = <0x41200000 0x10000>;
xlnx,all-inputs = <0x1>;
xlnx,all-inputs-2 = <0x0>;
xlnx,all-outputs = <0x0>;
xlnx,all-outputs-2 = <0x0>;
xlnx,dout-default = <0x00000000>;
xlnx,dout-default-2 = <0x00000000>;
xlnx,gpio-width = <0x2>;
xlnx,gpio2-width = <0x1>;
xlnx,interrupt-present = <0x1>;
xlnx,is-dual = <0x0>;
xlnx,tri-default = <0xFFFFFFFF>;
xlnx,tri-default-2 = <0xFFFFFFFF>;
};
更新完成后,还发现一个问题,系统打印如下:
XGpio: /amba_pl/gpio@41200000: registered, base is 1022
XGpio: /amba_pl/gpio@41210000: registered, base is 1021
AXI-GPIO识别号从原来的904、903变成了1022、1021