spi的設備與master的匹配的地方

匹配已經存在的board_list鏈,並進行匹配,spi_match_master_to_boardinfo,這裏主要進行兩步操作:第一是匹配bus_num,第二步是
    進行實際的slave與master的匹配工作,
    struct spi_device *spi_new_device(struct spi_master *master, struct spi_board_info *chip)【分析在slave後面】
注:這裏的觸發spi_match_master_to_boardinfo流程的源頭可能有兩個:
1. 註冊master:spi_register_master
2. 註冊spi board:spi_register_board_info
匹配已經存在的board_list鏈,並進行匹配,spi_match_master_to_boardinfo,這裏主要進行兩步操作:第一是匹配bus_num,第二步是
    進行實際的slave與master的匹配工作,
    struct spi_device *spi_new_device(struct spi_master *master, struct spi_board_info *chip)【分析在slave後面】
注:這裏的觸發spi_match_master_to_boardinfo流程的源頭可能有兩個:
1. 註冊master:spi_register_master
2. 註冊spi board:spi_register_board_info
 

 

 

 

系統爲了SPI slave及master的匹配,聲明瞭兩個靜態鏈表
static LIST_HEAD(board_list);                    宿主爲board_info->{list + spi_board_info}
static LIST_HEAD(spi_master_list);                宿主爲spi_master【已包含list_head】
一個用於存儲spi_board_info【slave端會詳細描述】,一個用於存儲master鏈。

slave端的device聲明:
static struct spi_board_info openhone_spi_devices_wifi[] = {
    {
     .modalias = "spi_slot0",    // "spidev" --> spidev_spi
     .chip_select = SPRD_3RDPARTY_SPI_WIFI_CS,
     //.max_speed_hz = 24 * 1000 * 1000,    wch
      .max_speed_hz = 8 * 1000 * 1000,   
     .mode = SPI_CPOL | SPI_CPHA,
     },
};
slave端的註冊流程:
1.標準做法 
spi_register_board_info

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章