コールスレーブモードインターフェイスLinuxカーネルのI2Cドライバ

1.インタフェースの注目unreg_slave

  1.1このインタフェースは、それがどこにあるのと呼ばれていますか?

    ドライバ/ I2C / I2C-コアslave.c中で  

    int型i2c_slave_unregister(構造体i2c_client *クライアント)
    {
      int型のRET;


     もし(!クライアント- >アダプタ- >アルゴ> unreg_slave){ dev_err( クライアント- > DEV、" %sの:アダプター\ nでサポートされていない" 、__func__); 戻る - EOPNOTSUPPを。 } i2c_lock_bus(クライアント - > アダプタ、I2C_LOCK_ROOT_ADAPTER)。 RET =クライアント- >アダプタ- >アルゴ> unreg_slave(クライアント)。 i2c_unlock_bus(クライアント - > アダプタ、I2C_LOCK_ROOT_ADAPTER)。 もし(RET == 0 クライアント - > slave_cb = NULL; dev_err(&クライアント- > DEV、" %sの:アダプター返されるエラーは%d \ nを" 、__func__、RET)。 リターン RET;
  }

  1.2 i2c_slave_unregisterので、それが呼び出されている場合?

    これは、中のドライバ/ I2C / I2Cスレーブ・eeprom.cに呼ばれています

    

静的 INT i2c_slave_eeprom_remove(構造体 i2c_client * クライアント)
{ 
        構造体 EEPROM_DATA * EEPROM = i2c_get_clientdata(クライアント)。

        i2c_slave_unregister(クライアント)。
        sysfs_remove_bin_file( クライアント- > dev.kobj、&eeprom-> ビン); 

        リターン 0 ; 
}

 

    

おすすめ

転載: www.cnblogs.com/dakewei/p/11731488.html