DTS의 전체구조도 에대해 간단히 알아보고 어떻게 수정을 해야할지를 알아보자.
- am437x-gp-evm-dts 전체구조 및 수정방법
dtsi를 이용하여 참조하여 구성되며, 최종 dts file은 AM437x-gp-evm.dts 이며, 이는 dtc를 이용하여 dtb로 변환이 된다.
- 본인이 별도로 DTS 관련부분들을 수정하고 싶은 경우
- 상위 관련 DTSI 파일들과 DTS파일들을 직접 다 수정하는 방법
- 새로운 DTS 파일을 생성 후 기존 최종 DTS를 include를 이용하여 포함하고 수정을 진행
DTS는 DTS or DTSI를 참조를 하므로 표현중복을 허용하므로 HW표현이 중복 될 경우 마지막의 DTS 정보기반으로 DTB를 생성하므로
상위 2번이 가능하다.
예를들면, 이미 이전 DTS에서 설정이 중복되는 부분이 존재하더라도 마지막에 추가된 syntax가 최종적용되므로 최종 DTS에서 수정을하면된다.
중복허용은 Kernel Config/ Uboot Config도 허용하므로, 필요한 부분만 나중에 추가해서 설정을 하면된다.
1.1 dts의 기본문법 이해
/dts-v1/; [memory reservations] / { [property definitions] [child nodes] };
- // or /* */ 주석을 의미한다. C 문법과 동일
- #include , 프리프로세서로 동작 C 문법과 동일
- /include/ 사용시 뒤 dts를 포함시킨다고 한다.
각 address-cells or size-cell 기본문법이해
http://devicetree.org/Device_Tree_Usage
Kernel의 Documentation/devicetree를 참조하면 대부분의 이해가능.
자세한 부분은 source와 datasheet를 참조해야한다.
1.2 am4372.dtsi 의 기본분석
- 기본작업
- AM4372의 기본적인 device 선언
- 각 device들은 ocp안에 선언이 되고, address와 size만 할당.
- 각 device의 상태는 대부분 disable 유지.
- gic
http://Documentation/devicetree/bindings/open-pic.txt
- 전체구조
http://Documentation/devicetree/bindings/arm/vexpress.txt
http://lDocumentation/devicetree/bindings/arm/omap/
- vpfe
*VENC와 VPBE를 미지원 대신 SGX사용해야할 것 같음
*DM81xx HDVICP지원, AM38xx HDVPSS지원, AM432x는 미지원
https://en.wikipedia.org/wiki/PowerVR
http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_Overview
- edma
*현재 EVENT 설정만 사용 (세부설정 변경 모색)
TPTC(Third-Party Transfer Controller),
TPCC(Third-Party Channel Controller0~2) : 10.2.1 관련내용
CROSSBAR (10.3.20.2 Crossbar Mapped)
http://Documentation/devicetree/bindings/dma/ti-edma.txt
1.3 am43-clocks.dtsi 구조
Clock 구조는 간단하며, scrm_clocks (CONTROL_MODULE) 과 prcm_clocks(PRCM)
2가지로 구분이 되며, 개별 deivce clock 설정한다.
* datasheet와 함께 분석필요
1.4 am4372-gp-evm.dts 구조
- 주요작업
- 기존의 status 변경 및 pinctrl 변경
- i2c (ov2659-camera, aic3105-audio) 및 uart 설정
- lcd와 backlight, keypad 구조 선언
- sound 구조선언 (mcasp와 별도)
- power control도 같이 하기에 LDO도 같이 설정
- btwilink (bluetooth)
현재 모듈형태로 제공됨
2. 참조문서
1. 기본문법
http://devicetree.org/Device_Tree_Usage
https://www.power.org/documentation/epapr-version-1-1/
2. Device Tree 기본문서
http://lxr.free-electrons.com/source/Documentation/devicetree/
http://lxr.free-electrons.com/source/Documentation/devicetree/booting-without-of.txt
3. Device Tree Binding
http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/
http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/graph.txt
- pinctrl
2. 참조문서
1. 기본문법
http://devicetree.org/Device_Tree_Usage
https://www.power.org/documentation/epapr-version-1-1/
2. Device Tree 기본문서
http://lxr.free-electrons.com/source/Documentation/devicetree/
http://lxr.free-electrons.com/source/Documentation/devicetree/booting-without-of.txt
3. Device Tree Binding
http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/
http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/graph.txt