Esto está destinado a proporcionar documentación sobre los controladores de Linux, específicamente como una base de conocimiento todo en One. La documentación es escasa y se extiende por Internet en la actualidad. Los dispositivos I2C están en un bus de dos líneas y son dispositivos de plataforma indescribibles. Para averiguar si existe un I2CBUS y/o cualquier dispositivo que se encuentre en él, puede usted la herramienta I2CDetect que se encuentra en varios sistemas de Linux.
Ejemplos contenidos
¿Qué es un Kobject? ver kobject/
Se usa para interactuar con el espacio del usuario. Algunos controladores pueden dividirse en piezas, un controlador I2C o plataforma para interactuar con un dispositivo y un controlador MISC para interactuar con el espacio de usuarios. Los controladores misceláneos se pueden registrar en la función de la sonda de la plataforma. Misc facilita las llamadas de lectura y escritura del espacio de usuario. Los controladores misceláneos no requieren números principales y proporcionan solo 1 número menor. (controladores/char/misc && misc_register) También está (controladores/misc) que son un conjunto de controladores que no se ajustan en otras categorías. Dos temas diferentes.
Los dispositivos de plataforma no son inherentemente descubiertos, no pueden informar el software de su presencia. Los dispositivos I2C entran en esta categoría. El software debe saber en el momento de la compilación de su existencia (a través de board_info o el árbol de dispositivos (DTS) ...) Están obligados a los controladores mediante la coincidencia de nombre que puede aprender en el directorio I2C/. Debe registrarse lo antes posible para que puedan usar.
USB y PCI no contarían como dispositivos de plataforma.
Hay 2 requisitos para trabajar con dispositivos de plataforma
Observe estas cosas sobre los controladores de la plataforma
compatible que coincide con Platform_Driver.Name en el controlador Platform_driver_register es la interfaz de registro principalpor ejemplo, un ejemplo de la fuente del árbol del dispositivo (DTS) de un dispositivo compatible
lkmc_platform_device@101e9000 {
compatible = "lkmc_platform_device";
reg = <0x101e9000 0x1000>;
interrupts = <18>;
interrupt-controller;
#interrupt-cells = <2>;
clocks = <&pclk>;
clock-names = "apb_pclk";
lkmc-asdf = <0x12345678>;
};
Los dispositivos no planificadores, como PCI, son inherentemente descubribles . Esto significa que el software puede encontrar nuevos dispositivos agregados al sistema durante el tiempo de ejecución.
Observe estas cosas sobre los controladores que no son plataformas
device_add y device_del como podamos en la vida real. El sondeo no es automático, pero se puede hacer después del arranque con Echo 1>/Sys/Bus/PCI/Rescan.