dev.bus = adap- >dev.type = res = device_register( /* create pre-declared device nodes */ of_i2c_register_devices(adap); i2c_acpi_install_space_handler(adap); i2c_acpi_register_devices(adap); .....} dev_set_name(client- >adapter- >dev; client- >dev.bus = client- >dev. type = client- >dev.of_node = of_node_get(info- >of_node); client- >dev.fwnode = info- >fwnode; device_ena" />
0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C控制器節(jié)點(diǎn)創(chuàng)建

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-22 15:42 ? 次閱讀

節(jié)點(diǎn)創(chuàng)建

i2c_add_adapter、i2c_add_numbered_adapter 是注冊(cè) i2c_adapter,這兩個(gè) API 最終是調(diào)用 i2c_register_adapter。

static int i2c_register_adapter(struct i2c_adapter *adap)
{
 ......

 dev_set_name(&adap- >dev, "i2c-%d", adap- >nr);
 adap- >dev.bus = &i2c_bus_type;
 adap- >dev.type = &i2c_adapter_type;
 res = device_register(&adap- >dev);

 /* create pre-declared device nodes */
 of_i2c_register_devices(adap);
 i2c_acpi_install_space_handler(adap);
 i2c_acpi_register_devices(adap);

  .....
}

dev_set_name(&adap->dev, "i2c-%d", adap->nr) 會(huì)在 Linux 中自動(dòng)創(chuàng)建 /sys/devices/platform/11f00000.i2c6/i2c-6 節(jié)點(diǎn)。

of_i2c_register_devices 會(huì)調(diào)用 i2c_new_client_device

struct i2c_client *i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
{
  ......

 client- >dev.parent = &client- >adapter- >dev;
 client- >dev.bus = &i2c_bus_type;
 client- >dev.type = &i2c_client_type;
 client- >dev.of_node = of_node_get(info- >of_node);
 client- >dev.fwnode = info- >fwnode;

 device_enable_async_suspend(&client- >dev);
 i2c_dev_set_name(adap, client, info);

  ......

 status = device_register(&client- >dev);

  ......
}

i2c_dev_set_name 會(huì)在 Linux 系統(tǒng)中自動(dòng)創(chuàng)建 /sys/devices/platform/11f00000.i2c6/i2c-6/6-0058 ,這里是掛在某個(gè) i2c bus 上的,從機(jī)地址為 0x58 的設(shè)備節(jié)點(diǎn)。

到這里,大家應(yīng)該能看懂下圖,這些節(jié)點(diǎn)在 I2C 控制器驅(qū)動(dòng)加載時(shí),自動(dòng)創(chuàng)建的。大家在 I2C 控制器的子節(jié)點(diǎn)中聲明的 I2C 從機(jī)設(shè)備,也會(huì)在這一步創(chuàng)建節(jié)點(diǎn)。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16133

    瀏覽量

    177143
  • 節(jié)點(diǎn)
    +關(guān)注

    關(guān)注

    0

    文章

    217

    瀏覽量

    24367
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1477

    瀏覽量

    123104
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    實(shí)現(xiàn)I2C總線控制器的VHDL源代碼

    I2C總線控制器 altera提供 The I2C Controller was designed for the MC68307 uC, provides a simplified
    發(fā)表于 05-20 10:25 ?251次下載

    LM3S系列微控制器I2C應(yīng)用文檔

    LM3S系列微控制器I2C應(yīng)用文檔基于LM5749的I2C從機(jī)功能,模擬24C02傳輸協(xié)議操作。
    發(fā)表于 04-03 14:29 ?52次下載

    模擬I2C總線多主節(jié)點(diǎn)通信原理及實(shí)現(xiàn)方法

    摘要 介紹模擬I2C總線的多主節(jié)點(diǎn)通信原理,并提出一種新的實(shí)現(xiàn)方法。這種采用延時(shí)接收比較來實(shí)現(xiàn)仲裁的方法,可使不具有I2C接口的普通微控制器(MCU)能夠?qū)崿F(xiàn)模擬
    發(fā)表于 06-18 17:57 ?5523次閱讀
    模擬<b class='flag-5'>I2C</b>總線多主<b class='flag-5'>節(jié)點(diǎn)</b>通信原理及實(shí)現(xiàn)方法

    基于Verilog的I2C控制器的設(shè)計(jì)與綜合

    為滿足嵌入式系統(tǒng)中專用芯片功能不能達(dá)到系統(tǒng)要求的現(xiàn)狀,設(shè)計(jì)出一種功能可擴(kuò)展的I2C slave控制器,這種控制器與傳統(tǒng)的專用I2C芯片不同。專用的I
    發(fā)表于 10-25 16:58 ?60次下載
    基于Verilog的<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>的設(shè)計(jì)與綜合

    I2C控制器使用指南

    確保I2C控制器已經(jīng)和計(jì)算機(jī)連接,如果沒有連接或驅(qū)動(dòng)沒有正常安裝則在選擇設(shè)備欄將出現(xiàn)如下提示。
    發(fā)表于 03-08 14:48 ?50次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>使用指南

    I2C總線控制器的工作原理及EEPROM的Linux驅(qū)動(dòng)程序的設(shè)計(jì)

    I2C (Inter-Integrated Circuit1總線是一種由Philips公司開發(fā)的2線式串行總線,用于連接微控制器及其外圍設(shè)備。它是同步通信的一種特殊形式,具有接口線少、控制
    發(fā)表于 10-26 15:37 ?7次下載
    <b class='flag-5'>I2C</b>總線<b class='flag-5'>控制器</b>的工作原理及EEPROM的Linux驅(qū)動(dòng)程序的設(shè)計(jì)

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 開發(fā)板上有 4 個(gè)片上 I2C 控制器。本文主要描述如何在該開發(fā)板上配置 I2C。
    的頭像 發(fā)表于 11-29 08:47 ?1420次閱讀
    Firefly-RK3128主板<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>

    fireflyFace-RK3399主板I2C控制器介紹

    Face-RK3399 開發(fā)板上有 9 個(gè)片上 I2C 控制器,
    的頭像 發(fā)表于 12-04 09:17 ?2916次閱讀
    fireflyFace-RK3399主板<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>介紹

    淺談PCA9564 I2C 總線控制器評(píng)估板

    PCA9564 I2C 總線控制器連接在 P89LV51RD2I2C 總線之間。 飛利浦 PCA9531 I2C 8 位 LED 調(diào)
    的頭像 發(fā)表于 06-17 17:26 ?3242次閱讀
    淺談PCA9564 <b class='flag-5'>I2C</b> 總線<b class='flag-5'>控制器</b>評(píng)估板

    i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程

    I2C總線控制器為微控制器或微處理提供控制I2C總線的接口,它
    發(fā)表于 11-24 14:16 ?7195次閱讀

    嵌入式內(nèi)核及驅(qū)動(dòng)開發(fā)-09IIC子系統(tǒng)框架使用(I2C協(xié)議和時(shí)序,I2C驅(qū)動(dòng)框架,I2C從設(shè)備驅(qū)動(dòng)開發(fā),MPU6050硬件連接

    從設(shè)備adapter i2c 控制器對(duì)象數(shù)據(jù)包對(duì)象讀寫數(shù)據(jù)設(shè)備樹中添加MPU6050信息內(nèi)核選配添加設(shè)備樹節(jié)點(diǎn)編寫驅(qū)動(dòng)程序 mpu6050_i2c_drv.cI2c協(xié)議和時(shí)序
    發(fā)表于 12-06 14:06 ?17次下載
    嵌入式內(nèi)核及驅(qū)動(dòng)開發(fā)-09IIC子系統(tǒng)框架使用(<b class='flag-5'>I2C</b>協(xié)議和時(shí)序,<b class='flag-5'>I2C</b>驅(qū)動(dòng)框架,<b class='flag-5'>I2C</b>從設(shè)備驅(qū)動(dòng)開發(fā),MPU6050硬件連接

    硬件I2C與模擬I2C

    配置;而軟件I2C是沒有寄存這個(gè)概念的。 軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協(xié)議的時(shí)序
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    Linux I2C驅(qū)動(dòng)入門知識(shí)科普

    I2C 總線驅(qū)動(dòng), I2C總線驅(qū)動(dòng)就是SOC的 I2C控制器驅(qū)動(dòng),也叫做 I2C適配器驅(qū)動(dòng)。
    的頭像 發(fā)表于 12-29 13:59 ?1633次閱讀

    I2C控制器驅(qū)動(dòng)介紹

    控制器驅(qū)動(dòng) I2C 總線驅(qū)動(dòng)重點(diǎn)是 I2C 適配器驅(qū)動(dòng),這里要用到兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):i2c_adapter 和 i2c_algorithm
    的頭像 發(fā)表于 07-22 15:38 ?1402次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>驅(qū)動(dòng)介紹

    I2C子系統(tǒng)SW Architecture

    適配器(控制器)驅(qū)動(dòng),這里用到兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):i2c_adapter 和 i2c_algorithm。其中,Linux 內(nèi)核將 SOC 的 I2C 適配器(
    的頭像 發(fā)表于 07-22 16:01 ?899次閱讀
    <b class='flag-5'>I2C</b>子系統(tǒng)SW Architecture