看板 LinuxDev 關於我們 聯絡資訊
據我所知一般都是用 i2c_board_info去指定platform data, 除非你另外指定了 .detect 來指定i2c addr. 此外通常i2c_table[]都是 {"dev-name", 0} 而 0 並不代表i2c address的意思, 可以查看此stuct的內容便可知道. 所以你文中的 {"alc5623", 0x23}, 0x23 不是i2c address. 可以請教0x23這資訊是要做什麼的嗎?thanks! ※ 引述《SweepingMonk ((((((((((()))))))))))》之銘言: : 請教各位大大 : kernel sourece 中 : 在 arch/arm/mach-omap2/board-xxxx.c 的 I2C_BOARD_INFO : 還有 sound/soc/codec/somecard.c 中的 id_table : 好像都有提到 i2c 的 chip address : 但是小弟一直搞不懂它們有什麼關係 : 例如: : /* sound/soc/codec/alc5632.c */ : static const struct i2c_device_id alc5623_i2c_table[] = { : {"alc5621", 0x21}, : {"alc5622", 0x22}, : {"alc5623", 0x23}, : {} : }; : /* arch/arm/mach-tegra/board-harmony.c */ : static struct i2c_board_info __initdata harmony_i2c_bus1_board_info[] = { : { : I2C_BOARD_INFO("alc5623", 0x1a), : .platform_data = &adam_alc5623_pdata, : }, : }; : 我以為 chip id 既然是固定的,但是這兩個位置 : 的值好像都不會一樣 : 請問這兩個地方的值分別是什麼意義呢? : 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.209.216
WPC001:0x23就是i2c slave address... 09/02 19:37
WPC001:某些ic, 可以由硬體去選擇位置 (目的是為了避免位置衝突) 09/02 19:38
WPC001:一般會用I2C_BOARD_INFO這個marco來做 09/02 19:41
WPC001:不然建議用明式來指定 .addr = 0x23, .type ="alc5623" 09/02 19:41
WPC001:如果只寫 "alc5623",0x23, 就要看當初struct是怎麼宣告的 09/02 19:43
WPC001:會有混淆的可能, 不是好的程式寫作風格 09/02 19:43