22カーネル内のat 24-eepromデバイスを使用して駆動


at 24-eepromデバイス駆動カーネル内の構成オプション:
make menuconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

Device Drivers  ---> 
    Misc devices  --->
        EEPROM support  ---> 
             I2C EEPROMs / RAMs / ROMs from most vendors 

カーネルミラーを再編成して更新する.
make Image ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

更新カーネルミラーシステムが起動すると、デバイスドライバがカーネルミラーに組み込まれているかどうかを確認できます.
^_^ / # ls /sys/bus/i2c/drivers/
at24/

デバイス駆動ソース:drivers/misc/eeprom/at 24.c
814 static struct i2c_driver at24_driver = {
815     .driver = {
816         .name = "at24",
817         .acpi_match_table = ACPI_PTR(at24_acpi_ids),
818     },
819     .probe = at24_probe,
820     .remove = at24_remove,
821     .id_table = at24_ids,
822 };
       , at24   i2c    ,  id_table      i2c      (compatible   ).
132 static const struct i2c_device_id at24_ids[] = {
133     /* needs 8 addresses as A0-A2 are ignored */
134     { "24c00",  AT24_DEVICE_MAGIC(128 / 8,  AT24_FLAG_TAKE8ADDR) },
135     /* old variants can't be handled with this generic entry! */
136     { "24c01",  AT24_DEVICE_MAGIC(1024 / 8, 0) },
137     { "24cs01", AT24_DEVICE_MAGIC(16,
138                 AT24_FLAG_SERIAL | AT24_FLAG_READONLY) },
139     { "24c02",  AT24_DEVICE_MAGIC(2048 / 8, 0) },
140     { "24cs02", AT24_DEVICE_MAGIC(16,
141                 AT24_FLAG_SERIAL | AT24_FLAG_READONLY) },
142     { "24mac402",   AT24_DEVICE_MAGIC(48 / 8,
    ...

        ,       i2c     compatible               .

      at24_probe         ,     i2c                 .
        ,      /sys/bus/i2c/  /       "eeprom"    ,                 eeprom   .

at 24 c 02 eepromがボード上の0番目のコントローラに接続されている場合、デバイスツリーには:
        i2c0: i2c@01c2ac00 {
        ...
            myeeprom {
                compatible = "24c02";
                reg = <0x50>;
            };
        };
          .      ,      :
^_^ / # ls /sys/bus/i2c/devices/
0-0050


                    i2c    :
^_^ / # ls /sys/bus/i2c/drivers/at24/
0-0050/  bind     uevent   unbind


       ,           eeprom :
^_^ / # echo "kkkk" > /sys/bus/i2c/devices/0-0050/eeprom 
^_^ / # cat /sys/bus/i2c/devices/0-0050/eeprom