Linux 사용자 공간(장치 트리)에서 i2c 터치패드에 연결

Linux 사용자 공간(장치 트리)에서 i2c 터치패드에 연결

내 노트북에 나열된 터치패드/트랙패드와 대화하려고 합니다.장치 트리. 내 USB 마우스처럼 터치패드가 /dev/에 전혀 표시되지 않습니다. 나는 메인라인 커널인 Debian 9를 실행하는 Asus C201 Chromebook(코드명 veyron speedy)을 사용하고 있으며 모든 계정에서 터치패드가 작동해야 하지만 /dev/에서는 볼 수 없습니다. 데비안이 그것을 볼 수 있을지 궁금합니다.

해당 컴퓨터 장치 트리의 관련 부분은 다음과 같습니다.

            trackpad {

                    trackpad-int {
                            rockchip,pins = <0x7 0x3 0x0 0x6a>;
                            linux,phandle = <0x31>;
                            phandle = <0x31>;
                    };
            };

이것은 다음의 출력입니다 cat /sys/kernel/debug/gpio.

gpiochip0: GPIOs 0-23, parent: platform/pinctrl, gpio0:
 gpio-5   (                    |Power               ) in  hi    
 gpio-6   (                    |Lid                 ) in  hi    
 gpio-8   (                    |gpio-charger        ) in  lo    
 gpio-11  (                    |vcc5_host1          ) out hi    
 gpio-12  (                    |vcc5_host2          ) out hi    
 gpio-13  (                    |?                   ) out lo    

gpiochip1: GPIOs 24-55, parent: platform/pinctrl, gpio1:

gpiochip2: GPIOs 56-87, parent: platform/pinctrl, gpio2:
 gpio-65  (                    |reset               ) in  lo    
 gpio-68  (                    |backlight_regulator ) out hi    
 gpio-69  (                    |vcc18_lcd           ) out hi    

gpiochip3: GPIOs 88-119, parent: platform/pinctrl, gpio3:

gpiochip4: GPIOs 120-151, parent: platform/pinctrl, gpio4:
 gpio-148 (                    |reset               ) in  lo    

gpiochip5: GPIOs 152-183, parent: platform/pinctrl, gpio5:
 gpio-171 (                    |vcc50_hdmi          ) out hi    

gpiochip6: GPIOs 184-215, parent: platform/pinctrl, gpio6:

gpiochip7: GPIOs 216-247, parent: platform/pinctrl, gpio7:
 gpio-218 (                    |enable              ) out hi    
 gpio-221 (                    |cd                  ) in  hi    
 gpio-230 (                    |panel_regulator     ) out hi    
 gpio-237 (                    |vcc_5v              ) out hi    

gpiochip8: GPIOs 248-263, parent: platform/pinctrl, gpio8:

이 GPIO 중 하나가 dtb에 나열된 터치패드입니까?

답변1

완전한 진술 rk3288-veyron-chromebook.dtsi

&i2c4 {
    trackpad@15 {
        compatible = "elan,ekth3000";
        reg = <0x15>;
        interrupt-parent = <&gpio7>;
        interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
        pinctrl-names = "default";
        pinctrl-0 = <&trackpad_int>;
        vcc-supply = <&vcc33_io>;
        wakeup-source;
    };
};

포함된 파일을 확인 rk3288-veyron.dtsi하세요.

&i2c4 {
    status = "okay";

    clock-frequency = <400000>;
    i2c-scl-falling-time-ns = <50>;         /* 11ns measured */
    i2c-scl-rising-time-ns = <300>;         /* 225ns measured */
};

그리고 더 나아가rk3288.dtsi

i2c4: i2c@ff160000 {
        compatible = "rockchip,rk3288-i2c";
        reg = <0x0 0xff160000 0x0 0x1000>;
        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
        #address-cells = <1>;
        #size-cells = <0>;
        clock-names = "i2c";
        clocks = <&cru PCLK_I2C4>;
        pinctrl-names = "default";
        pinctrl-0 = <&i2c4_xfer>;
        status = "disabled";
};

그래서 이것은 I2C 인터페이스와 매우 비슷해 보입니다.아니요GPIO 인터페이스이지만 rockchip의 일련의 전용 레지스터를 사용합니다.

I2C 버스를 찾아보셨나요 /sys/bus? /sys/class?

관련 정보