2014-04-18 6 views
1

주로 i2c를 통해 통신하는 칩용 드라이버를 작성하고 있지만 GPIO 핀을 사용하여 신호를 보냅니다. 관련 장치 트리 노드는 다음과 같습니다OF 디바이스 트리에서 플랫폼 데이터를 i2c 드라이버로 전달하려면 어떻게합니까?

&i2c1 { 
status = "okay"; 
clock-frequency = <100000>; 
pinctrl-names = "default"; 
pinctrl-0 = <&i2c1_pins>; 

my_dev: [email protected] { 
    compatible = "my_dev,my_dev"; 
    reg = <0x0c>; 
    irq_gpio = <&gpio0 14 0>; 
}; 
}; 

내가 내 드라이버에서 irq_gpio 값을 읽을 수 있도록하려면, 그래서 gpio_to를 통해 (IRQ를 요청할 수 있습니다 (IRQ())과 일을 설정 I. 내가 구조체 i2c_board_info의 of_node 멤버에 도달해야한다는 것을 알았지 만, 드라이버의 프로브 기능은 i2c_client 및 i2c_device_id 구조체 만 가져옵니다 .i2c_client 또는 장치 ID에서 시작하여 원하는 of_node에 어떻게 도달합니까?

답변

3

발견 솔루션입니다.뿐만 아니라 i2c_board_info는 of_node가 있지만 struct 디바이스이기도합니다. 따라서 디바이스 노드는 클라이언트 -> dev.of_node를 통해 액세스 할 수 있습니다.