Diferença entre device_register e driver_register

Estou escrevendo um driver UART. Eu me deparei com as duas funções no capítulo 14.Linux Device Model.

int device_register(struct device *dev);
int driver_register(struct device_driver *drv);

Como o UART é um driver de char, criei dinamicamente o número principal usando (alloc_chrdev_region) e adicionou o dispositivo ao kernel usandocdevadd().

Me depareiuart_register_driver() eplatform_driver_register() no omap-serial.c.

Eu poderia mapear odriver_register com oplatform_driver_register() mas ouart_register_driver é mapeado com a função relacionada ao tty. Desde que eu sou iniciante, não quero usar as funções relacionadas ao tty.

Éuart_register_driver relacionado comdevice_driver()?

Por favor explique.

questionAnswers(2)

yourAnswerToTheQuestion