Isso destina -se a fornecer documentação sobre os drivers Linux, especificamente como uma base de conhecimento tudo em uma. A documentação é escassa e espalhada pela Internet no momento. Os dispositivos I2C estão em um barramento de duas linhas e são dispositivos de plataforma não descobertos. Para descobrir se existe um i2cbus e/ou quaisquer dispositivos são encontrados nele, você pode a ferramenta i2cdetect encontrada em vários sistemas Linux.
Exemplos contidos
O que é um Kobject? Veja Kobject/
Usado para interagir com o espaço do usuário. Alguns drivers podem ser divididos em peças, um driver I2C ou da plataforma para interagir com um dispositivo e um driver Misc para interagir com o espaço dos usuários. Os drivers MID podem ser registrados na função de sonda da plataforma. O MISC facilita o espaço do usuário, leia e escreva chamadas. Os drivers MIV não requerem números principais e fornecem apenas 1 número menor. (Drivers/Char/Misc && Misc_register) Há também (Drivers/Misc) que são um conjunto de drivers que não se encaixam em outras categorias. Dois tópicos diferentes.
Os dispositivos de plataforma não são inerentemente descobertos que não podem informar o software de sua presença. Os dispositivos I2C se enquadram nessa categoria. O software deve saber no horário de compilação de sua existência (via board_info ou Tree Device (DTS). Deve ser registrado o mais rápido possível para que eles possam ser usados.
USB e PCI não contariam como dispositivos de plataforma.
Existem 2 requisitos para trabalhar com dispositivos de plataforma
Observe essas coisas sobre drivers de plataforma
compatible que corresponde a plataform_driver.name no driver plataform_driver_register é a interface principal do registropor exemplo, um exemplo da fonte de árvore do dispositivo (DTS) de um dispositivo compatível
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>;
};
Dispositivos não plataformas, como o PCI, são inerentemente descobertos . Isso significa que o software pode encontrar novos dispositivos adicionados ao sistema durante o tempo de execução.
Observe essas coisas sobre motoristas que não são de plataforma
device_add e device_del como pudermos na vida real. A sondagem não é automática, mas pode ser feita após a inicialização com o eco 1>/sys/barramento/pci/rescan.