커널 4.4에서는 device tree를 수정하면 됩니다.
arch/arm/boot/dts/am335x-evmsk.dts 파일에서
아래와 같이 설정하면 됩니다.
0x180 (PIN_INPUT_PULLUP | MUX_MODE0)
숫자 180의 의미는 첨부된 spruh73p AM335x Technical Reference Manual 메뉴얼에
1456 페이지에 conf_gpmc_ad0에서 부터 offset값입니다.
해당 mux 첨부된 엘셀파일 참조하세요.
아래는 예제입니다.
#if 0//crazyboys 20180816
/* crazyboy 20161215 i2c1 */
i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = <
0x168 (PIN_INPUT_PULLUP | MUX_MODE3 | SLEWCTRL_SLOW) /* uart0_ctsn.i2c1_sda */
0x16c (PIN_INPUT_PULLUP | MUX_MODE3 | SLEWCTRL_SLOW) /* uart0_rtsn.i2c1_scl */
>;
};
#endif
uart0_pins: pinmux_uart0_pins {
pinctrl-single,pins = <
0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
>;
};
/* crazyboys 20180816 */
uart1_pins: pinmux_uart1_pins {
pinctrl-single,pins = <
0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
>;
};
uart2_pins: pinmux_uart2_pins {
pinctrl-single,pins = <
0x12c (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_txclk.uart2_rxd */
0x130 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rxclk.uart2_txd */
>;
};
uart4_pins: pinmux_uart4_pins {
pinctrl-single,pins = <
0x168 (PIN_INPUT_PULLUP | MUX_MODE1) /* uart0_ctsn.uart4_rxd */
0x16c (PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* uart0_rtsn.uart4_txd */
>;
};
핀 mux하고
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
status = "okay";
};
//crazyboys 20180816
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
// current-speed = <115200>;
status = "okay";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins>;
status = "okay";
};
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_pins>;
status = "okay";
};
커널 컴파일 후 이미지 Write후 uart 확인 방법.
커널 컴파일 후 아래와 같이 Write한다.
$ cp
$ cp
$ ./custom_datafs_make.sh실행 후 custom_datafs.tar.gz 이 만들어 진다.?
$ sudo ./create-sdcard-ubuntu16.0.6.sh /dev/
또는
$ sudo ./create-sdcard.sh /dev/
$ ls /dev/ttyS*
ttyS1, ttyS2, ttyS4 가 있어야 한다.
[root@localhost ~]# stty -F /dev/ttyS0
speed 115200 baud; line = 0;
eol = ^J;
-brkint ixoff -imaxbel
-iexten -echoctl
[root@localhost ~]# stty -F /dev/ttyS1
speed 9600 baud; line = 0;
-brkint -imaxbel
만약 없으면 커널 *.dtb 파일이 제대로 write가 되지 않은 것이다.
내용