8/12/2015

Device Tree 구조 및 구성 Sitara (AM437x)

1. Device Tree Syntax 

DTS의 전체구조도 에대해 간단히 알아보고 어떻게 수정을 해야할지를 알아보자.

  • am437x-gp-evm-dts 전체구조 및 수정방법

dtsi를 이용하여 참조하여 구성되며, 최종 dts file은 AM437x-gp-evm.dts 이며, 이는 dtc를 이용하여 dtb로 변환이 된다.


  • 본인이 별도로 DTS 관련부분들을 수정하고 싶은 경우
  1. 상위 관련 DTSI 파일들과 DTS파일들을 직접 다 수정하는 방법
  2. 새로운 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] 
};


  1. // or  /* */ 주석을 의미한다. C 문법과 동일
  2. #include  , 프리프로세서로 동작 C 문법과 동일 
  3. /include/ 사용시 뒤 dts를 포함시킨다고 한다. 

각 address-cells or size-cell 기본문법이해
  http://devicetree.org/Device_Tree_Usage


Kernel의 Documentation/devicetree를 참조하면 대부분의 이해가능.
자세한 부분은 source와 datasheet를 참조해야한다.


1.2 am4372.dtsi 의 기본분석 

  • 기본작업
  1. AM4372의 기본적인 device 선언
  2. 각 device들은 ocp안에 선언이 되고, address와 size만 할당.
  3. 각 device의 상태는 대부분 disable 유지.

  • gic
       *INTERRUPT 설정

       http://Documentation/devicetree/bindings/open-pic.txt

  • 전체구조
       *ARM과 OMAP의 기본구조

       http://Documentation/devicetree/bindings/arm/vexpress.txt
       http://lDocumentation/devicetree/bindings/arm/omap/

  • vpfe
       *EDMA을 사용하지 않고 자체 전용 DMA사용
       *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
       *EDMA설정을 위해 datasheet에서 아래 사항을 필독
       *현재 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 구조

  • 주요작업 
  1. 기존의 status 변경 및 pinctrl 변경
  2. i2c (ov2659-camera, aic3105-audio) 및 uart 설정 
  3. lcd와 backlight, keypad 구조 선언
  4. sound 구조선언 (mcasp와 별도)
  5. power control도 같이 하기에 LDO도 같이 설정

  • btwilink (bluetooth)