파일에imx6qdl.dtsi다음 정의는GPIO 노드(약간 단축됨):
gpio1: gpio@0209c000 {
[...]
};
gpio2: gpio@020a0000 {
[...]
};
[...]
gpio7: gpio@020b4000 {
[...]
};
그리고 이 파일에는별칭 노드다음과 같은 속성이 있습니다(다시 단축됨).
aliases {
[...]
gpio0 = &gpio1;
gpio1 = &gpio2;
gpio2 = &gpio3;
gpio3 = &gpio4;
gpio4 = &gpio5;
gpio5 = &gpio6;
gpio6 = &gpio7;
[...]
};
이렇게 하는 이유는 무엇입니까? 라벨을 덮어쓰게 되나요?
답변1
별칭은 Linux 커널에서 사용되지만 DTS(장치 트리 소스) 구성에서는 사용할 수 없습니다.
동시에 DTS 파일의 태그를 사용하여 노드를 확장하거나 수정할 수 있습니다.
예를 들어 다음과 같은 사용자 정의 DTS 파일을 가질 수 있습니다.
#include "imx6qdl.dtsi"
&gpio2 {
[your modifications here]
}
이 내용이 적용된다는 점을 다시 한 번 참고하세요.gpio2
상표, 별칭 대신(참조여기).
또한 장치 트리 소스에 사용되는 레이블은 phandle
컨텍스트에 따라 레이블이 지정된 노드의 전체 경로 또는 노드의 (정수) 값으로 확장될 수 있습니다.여기.
답변2
@happyMOOyear, 답을 찾으셨는지 모르겠지만 제가 이해하는 방법을 알려드리겠습니다. 저는 동일한 i.MX 칩을 사용하고 있습니다.
두 번째 부분에서는 레이블이 있는 정의된 노드를 가져와 gpio1@0209c000
해당 노드에 대한 새 ALIAS를 만듭니다. 별칭은 동일한 핀을 참조하는 또 다른 방법입니다. 이 경우 별칭은 보다 쉽게 참조할 수 있도록 0부터 시작하는 구성표를 사용하여 생성됩니다. 따라서 참조는 gpio1@0209c000
와 동일 gpio0
하며 더 짧습니다.