고통 받고 있는 ptn5110에 대해서 검색하는데
리눅스 소스상에 dtb로만 존재해서 문법을 찾아보는 중.
봐야할 부분은 source-pdos의 <PDO_FIXED()>; 인데
ptn5110: tcpc@50 {
compatible = "nxp,ptn5110", "tcpci";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_typec>;
reg = <0x50>;
interrupt-parent = <&lsio_gpio1>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
usb_con1: connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec_dr_sw: endpoint {
remote-endpoint = <&usb3_drd_sw>;
};
};
port@1 {
reg = <1>;
typec_con_ss: endpoint {
remote-endpoint = <&usb3_data_ss>;
};
};
};
};
};
<> 는 cell 이라고 부르고
[링크 : https://kernel.bz/boardPost/118684/3]
unsigned int로 된 배열인것 같은데
|
[링크 : https://jung-max.github.io/2019/10/22/Device_Tree_문법/]
도대체 저 매크로는 어떻게 dtb에서 인식을 하고 쓰는거지? 하고 찾아보니
아래의 경로에서 dt-bindings 라는 곳에서 정의가 되어있었다.
linux-master/scripts/dtc/include-prefixes/dt-bindings/usb |
선언을 하도 여러군데서 하다보니 일반소스에서만 선언된 줄 알았는데..
#define PDO_FIXED(mv, ma, flags) \
(PDO_TYPE(PDO_TYPE_FIXED) | (flags) | \
PDO_FIXED_VOLT(mv) | PDO_FIXED_CURR(ma))
|
device tress binding 이라는 녀석이 또 추가 되었나 보다..
[링크 : https://docs.zephyrproject.org/latest/build/dts/bindings.html]
'Linux API > linux' 카테고리의 다른 글
usb hid, hidraw (0) | 2024.03.11 |
---|---|
linux 멀티터치 프로토콜 (0) | 2024.03.08 |
btrfs CoW (0) | 2024.02.15 |
statvfs() 의 f_bavail과 f_bfree 차이 (0) | 2024.02.15 |
corrupted size vs. prev_size 에러.. part2 (0) | 2023.12.15 |