linux I2C裝置驅動例項 EEPROM

2021-06-22 15:50:54 字數 1125 閱讀 6422

開發板:優龍公司的fs2410

核心版本:linux2.6.28.6

開發環境:ubuntu12.04

交叉編譯器:arm-none-linux-gnueabi-gcc 4.3.2

目標:在fs2410上驅動eeprom,實現應用層對eeprom的讀寫操作

一、linux2.6.28.6 系統上 i2c 匯流排驅動

進入到你的核心檔案根目錄

配置核心,新增i2c匯流排驅動

# make menuconfig

device driver -->

<*>i2c support -->

i2c hardware bus support --->

<*>s3c2410 i2c drive

二、at24xx eeprom 的 i2c 裝置驅動

配置核心,新增eeprom驅動

# make menuconfig

device driver -->

<*>i2c support -->

miscellaneous i2c chip support  --->

<*> eeproms from most vendors  

三、修改板檔案資訊

1、在fs2410對應的板檔案中新增i2c_board_info,板檔案為arch/arm/mach-s3c2410/mach-smdk2410.c 

# vim arch/arm/mach-s3c2410/mach-smdk2410.c 

新增如下結構定義

static struct i2c_board_info s3c2410_i2c_devs __initdata = ,

};i2c裝置位址由7位構成,高4位固定,低三位由裝置的三個位址引腳來決定,經檢視晶元手冊得知其高4位為1010,根據開發板原理圖可見該晶元的三個位址引腳全接地,即000,因此eeprom裝置的位址為1010000,即0x50。

在函式smdk2410_init()中呼叫 i2c 裝置的註冊函式 i2c_register_board_info,即

static void __init smdk2410_init(void)

四、編譯核心

# make zimage

將映象燒寫到開發板並啟動。

Linux i2c 驅動例項

include linux i2c.h struct i2c client struct i2c adapter 驅動編寫 i2c控制器的驅動一般在platform device註冊列表中註冊。driver i2c busses i2c.c 從機驅動 系統初始化時新增以i2c board info為...

Linux I2C裝置驅動學習

一 i2c 簡介 1 i2c簡介 a 優點 i2c匯流排僅用兩根訊號線 scl sda 就實現了裝置之間的資料互動,極大簡化了對硬體資源和pcb板佈線空間的占用 b 用途 eeprom 實時鐘 小型lcd等裝置與cpu的介面中 2 i2c驅動體系 i2c框架 通用 適應性強 i2c核心 i2c匯流排...

Linux I2C裝置驅動編寫(一)

在linux驅動中i2c系統中主要包含以下幾個成員 i2c adapter 即i2c介面卡 i2c driver 某個i2c裝置的裝置驅動,可以以driver理解。i2c client 某個i2c裝置的裝置宣告,可以以device理解。是cpu整合或外接的i2c介面卡,用來控制各種i2c從裝置,其驅...