Reemplazo del controlador de pantalla táctil en el núcleo de Android

Estoy adaptando un kernel de Gingerbread para mi tablero personalizado. Estoy tratando de reemplazar una pantalla táctil resistiva que utiliza un controlador ADC on-chip (procesador S5PV210 de Samsung). En mi diseño, necesito un regulador capacitivo apoyado por el conductor de eGalaxyTouch. Está conectado al USB. El controlador se puede activar fácilmente desde el menú "make xconfig". Funciona algo desde que he añadido algunas huellas en la consola serie y puedo verlo instalando durante el arranque del kernel y lo veo instalarse y desinstalarse al conectar / desconectar el cable USB. Pero no hace nada en la interfaz de usuario de Android. Es un dispositivo de tipo HID. El problema es que no se conecta a la correcta capa de software de la pantalla táctil de Android. Debo haber extrañado algo. Debe haber algo más que llamar para obligar a este HID a estar conectado a otra capa de software que gestiona la pantalla táctil.

Los controladores de pantalla táctil se encuentran en kernel / drivers / input / touchscreen. También hay código en el kernel / drivers / input.

¿Alguna pista sobre cómo vincular ese dispositivo HID a la capa de pantalla táctil de Android? Miro cómo hicieron el viejo resistivo y no se hace a través de un HID porque es un "hecho por encargo" dispositivo con ADCs integrado en la CPU y no va a través de USB.

    Logré integrar el controlador de la pantalla táctil. Aquí está una idea aproximada de los pasos sólo para dar una idea de cómo funciona para los otros que enfrentarían el mismo tipo de problema.

    Primero quite el controlador original de la pantalla táctil para evitar conflictos (make xconfig)

    Originalmente, tenía un controlador que no funciona a pesar de que fue proporcionado por el fabricante de pantalla táctil. Decidí probar el controlador de la pantalla táctil de eGalax ya en el árbol de Kernel. Este es un controlador de módulo. No es suficiente para habilitar "drivers de dispositivo de módulo" en el make xconfig. Sí, permitirá compilar los archivos .ko. Pero no le dirá al script de construcción qué hacer con el file.ko y no terminarán con el kernel en el sistema de destino. Así que tienes que tomar acción agregando cosas al script de compilación o copiar manualmente el archivo .ko en la ubicación correcta de root / modules y añadir la carga del módulo con el comando "insmod /modules/file.ko" en el init. Rc. No olvide establecer los privilegios adecuados en / modules y modules / file.ko con el comando chmod.

    Después de eso, básicamente funcionó, a excepción de algunos problemas menores no relacionados con esa pregunta (el controlador era para un chip ligeramente diferente con los bits colocados de forma diferente, fácil de arreglar).

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.