2014-03-28 2 views
1

omap4 용 spi 드라이버를 처음부터 작성해야합니다. http://lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c 드라이버 코드를 참조하고 있습니다. 그러나이 드라이버 코드에서 기본 장치 작동을 처리하는 방법을 이해할 수 없습니다. 숯불 드라이버가spi 드라이버의 기본 장치 작업

struct file_operations scull_fops = { 
.owner = THIS_MODULE, 
.llseek = scull_llseek, 
.read = scull_read, 
.write = scull_write, 
.ioctl = scull_ioctl, 
.open = scull_open, 
.release = scull_release, 
}; 

등 읽기, 쓰기, 개방 등의 기본 기능에 대한 포인터를 포함하는 구조를 가지고 예를 들어 ...

나는 HTTP에서이 기능을 찾을 수 없습니다 : // lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c

누군가 날의 SPI-omap2-mcspi.c 코드에서 제공되는 & 읽고 쓸 방법 장치 개방 식별 도와주세요 .

+0

당신이 상호 참조 도구를 사용하려고 했습니까? –

+1

SPI 드라이버에는 마스터 드라이버와 슬레이브 (또는 대상) 프로토콜 드라이버의 두 가지 유형이 있습니다. 'drivers/spi'는 마스터 드라이버, 즉 SPI 마스터 컨트롤러를위한 디렉토리입니다. 마스터 또는 슬레이브 장치 용 드라이버를 작성하고 있습니까? – sawdust

+0

@ 톱밥 마스터 드라이버 –

답변

1

게시물에 링크 한 파일의 맨 아래를 보면 기본 플랫폼 드라이버 작업에 대한 처리가 표시됩니다. 거기 probe 작업에

static const struct dev_pm_ops omap2_mcspi_pm_ops = { 
     .resume = omap2_mcspi_resume, 
     .runtime_resume = omap_mcspi_runtime_resume, 
}; 

static struct platform_driver omap2_mcspi_driver = { 
     .driver = { 
       .name =   "omap2_mcspi", 
       .owner =  THIS_MODULE, 
       .pm =   &omap2_mcspi_pm_ops, 
       .of_match_table = omap_mcspi_of_match, 
     }, 
     .probe =  omap2_mcspi_probe, 
     .remove =  omap2_mcspi_remove, 
}; 

이 드라이버의 SPI는 특정 작업의 설정을 볼 수 있습니다

 /* the spi->mode bits understood by this driver: */ 
    master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; 
    master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); 
    master->setup = omap2_mcspi_setup; 
    master->auto_runtime_pm = true; 
    master->transfer_one_message = omap2_mcspi_transfer_one_message; 
    master->cleanup = omap2_mcspi_cleanup; 
    master->dev.of_node = node; 
+0

답장을 보내 주셔서 감사합니다.하지만 오픈 읽고 읽고 쓰는 기능은 어디에 있습니까? –

+1

hnow i understand;). 나는이 힌트가 /include/linux/spi/spi.h 헤더에 있다고 생각한다. 컨트롤러 드라이버에는 실제 파일 작업을위한 프로토콜 드라이버가 필요합니다. 그런 다음 fle 작업은 contrller 드라이버에서 언급 한 작업에 매핑됩니다. – krase

+0

해당 프로토콜 드라이버는 어디에 있습니까? 파일 작업이 언급 된 작업에 어떻게 매핑되는지 알고 있습니까? –

관련 문제