読者です 読者をやめる 読者になる 読者になる

Zynq7030にUART0を追加した時のLinuxデバイスツリー

Zynq7030にUART0を追加してLinuxのデバイスツリーを設定しデバイスとして認識させることが出来ました。

メモとして、デバイスツリーの設定を残しておきます。
元になるデイバイスツリー(dts)ファイルは、現在動いているdtbファイルをdtcでdtsに変換して使いました。

aliases {
	ethernet0 = "/amba@0/ps7-ethernet@e000b000";
	serial0 = "/amba@0/serial@e0001000";  <- 元からある UART1 /dev/ttyPS0
	serial1 = "/amba@0/serial@e0000000";  <- ここ追加 UART0 /dev/ttyPS1
	spi0 = "/amba@0/ps7-qspi@e000d000";
};
/* 新規に追加した UART0 */
serial@e0000000 {
	clock-names = "uart_clk", "pclk";
	clocks = <0x2 0x17 0x2 0x28>;
	compatible = "xlnx,xuartps", "cdns,uart-r1p8";
	current-speed = <0x1c200>;
	device_type = "serial";
	interrupt-parent = <0x3>;
	interrupts = <0x0 0x1b 0x4>;
	port-number = <0x1>;
	reg = <0xe0000000 0x1000>;
	xlnx,has-modem = <0x0>;
};
/* 元からある UART1 */
serial@e0001000 {
	clock-names = "uart_clk", "pclk";
	clocks = <0x2 0x18 0x2 0x29>;
	compatible = "xlnx,xuartps", "cdns,uart-r1p8";
	current-speed = <0x1c200>;
	device_type = "serial";
	interrupt-parent = <0x3>;
	interrupts = <0x0 0x32 0x4>;
	port-number = <0x0>;
	reg = <0xe0001000 0x1000>;
	xlnx,has-modem = <0x0>;
};

UART0(serial@e0000000)の設定はUART1の設定(serial@e0001000)をcopyして一部変更して使いました。
変更した項目は
clocks
interrupts
です。