Tool/software:
Hi,
I wanted to use the UART5 in user expansion board and changed the dtb file and created a custom-image file with extlinux.conf in buildroot.
After boot, I can see the custom dtb with uart5 has been enabled and status is okay from /proc files.
Following below are the modifications done in dtb:
I have enabled uart5, uart6 and two gpio for my application requirement.
Can someone help me if I was in right path with this?
When I try the loop back test I couldn't see anything.
This was the modifications done on my dtb:
k3-am625-sk.dts:
pinctrl@f4000 {
bootph-all;
compatible = "ti,am654-padconf\0pinctrl-single";
reg = <0x00 0xf4000 0x00 0x2ac>;
#pinctrl-cells = <0x01>;
pinctrl-single,register-width = <0x20>;
pinctrl-single,function-mask = <0xffffffff>;
interrupts = <0x00 0x62 0x04>;
interrupt-controller;
#interrupt-cells = <0x01>;
phandle = <0x16>;
main-uart0-default-pins {
bootph-all;
pinctrl-single,pins = <0x1c8 0x50000 0x1cc 0x10000>;
phandle = <0x15>;
};
main-uart1-default-pins {
bootph-pre-ram;
pinctrl-single,pins = <0x194 0x50002 0x198 0x10002 0x1ac 0x50002 0x1b0 0x10002>;
phandle = <0x17>;
};
main-uart5-default-pins {
bootph-all;
pinctrl-single,pins = <0x1d8 0x50001 0x1dc 0x10001>;
phandle = <0xdf>;
};
main-uart6-default-pins {
bootph-all;
pinctrl-single,pins = <0x09c 0x50003 0x0a0 0x10003>;
phandle = <0xe0>;
};
};
__symbols__ {
main_uart0_pins_default = "/bus@f0000/pinctrl@f4000/main-uart0-default-pins";
main_uart1_pins_default = "/bus@f0000/pinctrl@f4000/main-uart1-default-pins";
main_uart5_pins_default = "/bus@f0000/pinctrl@f4000/main-uart5-default-pins";
main_uart6_pins_default = "/bus@f0000/pinctrl@f4000/main-uart6-default-pins";
main_uart0 = "/bus@f0000/serial@2800000";
main_uart1 = "/bus@f0000/serial@2810000";
main_uart2 = "/bus@f0000/serial@2820000";
main_uart3 = "/bus@f0000/serial@2830000";
main_uart4 = "/bus@f0000/serial@2840000";
main_uart5 = "/bus@f0000/serial@2850000";
main_uart6 = "/bus@f0000/serial@2860000";
};
aliases {
serial0 = "/bus@f0000/bus@b00000/target-module@2b300050/serial@0";
serial1 = "/bus@f0000/bus@4000000/serial@4a00000";
serial2 = "/bus@f0000/serial@2800000";
serial5 = "/bus@f0000/serial@2850000";
serial6 = "/bus@f0000/serial@2860000";
};
serial@2850000 {
compatible = "ti,am64-uart\0ti,am654-uart";
reg = <0x00 0x2850000 0x00 0x100>;
interrupts = <0x00 0xb7 0x04>;
power-domains = <0x02 0x9c 0x01>;
clocks = <0x03 0x9c 0x00>;
clock-names = "fclk";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0xdf>;
phandle = <0x87>;
};
serial@2860000 {
compatible = "ti,am64-uart\0ti,am654-uart";
reg = <0x00 0x2860000 0x00 0x100>;
interrupts = <0x00 0xb8 0x04>;
power-domains = <0x02 0x9e 0x01>;
clocks = <0x03 0x9e 0x00>;
clock-names = "fclk";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0xe0>;
phandle = <0x88>;
};
gpio@602000 {
compatible = "ti,am64-gpio\0ti,keystone-gpio";
reg = <0x00 0x602000 0x00 0x100>;
gpio-controller;
pinctrl-names = "default";
pinctrl-0 = <0xe1>;
status = "okay";
};
gpio@603000 {
compatible = "ti,am64-gpio\0ti,keystone-gpio";
reg = <0x00 0x603000 0x00 0x100>;
gpio-controller;
pinctrl-names = "default";
pinctrl-0 = <0xe2>;
status = "okay";
};
# dmesg | grep ttyS
[ 0.000000] Kernel command line: root=/dev/mmcblk1p2 rw rootwait console=ttyS2,115200n8 quite loglevel=3
[ 0.336132] printk: legacy console [ttyS2] disabled
[ 0.336561] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 238, base_baud = 3000000) is a 8250
[ 0.336653] printk: legacy console [ttyS2] enabled
[ 0.339254] 2850000.serial: ttyS0 at MMIO 0x2850000 (irq = 240, base_baud = 3000000) is a 8250
[ 0.341249] 2860000.serial: ttyS1 at MMIO 0x2860000 (irq = 241, base_baud = 3000000) is a 8250
# grep -i uart /sys/kernel/debug/pinctrl/*/pinmux-pins
/sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins:pin 39 (PIN39): 2860000.serial (GPIO UNCLAIMED) function main-uart6-default-pins group main-uart6-default-pins
/sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins:pin 40 (PIN40): 2860000.serial (GPIO UNCLAIMED) function main-uart6-default-pins group main-uart6-default-pins
/sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins:pin 114 (PIN114): 2800000.serial (GPIO UNCLAIMED) function main-uart0-default-pins group main-uart0-default-pins
/sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins:pin 115 (PIN115): 2800000.serial (GPIO UNCLAIMED) function main-uart0-default-pins group main-uart0-default-pins
/sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins:pin 118 (PIN118): 2850000.serial (GPIO UNCLAIMED) function main-uart5-default-pins group main-uart5-default-pins
/sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins:pin 119 (PIN119): 2850000.serial (GPIO UNCLAIMED) function main-uart5-default-pins group main-uart5-default-pins
# ls -1 /proc/device-tree/bus@f0000/ | grep serial
serial@2800000
serial@2810000
serial@2820000
serial@2830000
serial@2840000
serial@2850000
serial@2860000