[블로그 통합으로 이전해 온 자료] - 2008. 4. 30. 12:24
* platform device
platform_bus_type 이라는 가상의 플랫폼 버스 상에 새로운 디바이스를 등록하는 방법
struct platform_device xxx_device =
{
.name =
.id =
.dev = xxx_device, -> struct device
.num_resources =
.resource = -> struct resource
};
platform_device_register()
platform_device_register_simple()
platform_device_unregister()
xxx_init() / xxx_cleanup() 에서 등록
* platform driver
struct platform_driver xxx_driver =
{
.probe =
.remove =
.shutdown =
.suspend =
.resume =
.driver =
}
platform_driver_register()
platform_driver_unregister()
xxx_init() / xxx_cleanup() 에서 등록/해제
* 버스를 갖는 드라이버를 등록/해제
struct device_driver xxx_driver
{
.name =
.bus =
.probe =
.remove =
.shutdown =
.suspend =
.resume =
}
driver_registrer()
driver_unregistrer()
xxx_init() / xxx_cleanup() 에서 등록
* platform resource
struct resource
{
const char *name;
unsigned long start, end;
unsigned long flags;
struct resource *parent, *sibling, *child;
};
platform_device, platform_driver, device_driver 등의 구조체..
어떻게 써야하는지 아직도 모르겠다..
'실습 > 리눅스 커널' 카테고리의 다른 글
디바이스 드라이버의 동작 (0) | 2021.02.08 |
---|---|
Major, Minor # (0) | 2021.02.08 |
DMA 처리 (0) | 2021.02.08 |
Memory Mapping (0) | 2021.02.08 |
인터럽트 (Interrupt) 처리 (0) | 2021.02.08 |