MDIO匯流排相關 4

2021-07-29 18:45:38 字數 1231 閱讀 9320

//mdio

在drivers/net/ethernet/hieth-gmac/下面有乙個檔案higmac.c

裡面實現了乙個platform框架,並且建立了乙個雜項裝置.

ret =

platform_device_register

(&higmac_platform_device);if

(ret)

ret =

platform_driver_register

(&higmac_dev_driver);if

(ret)

ret =

misc_register

(&gmac_dev);if

(ret)

else

miscdev_registered =

1;

//platform device端

static

struct platform_device higmac_platform_device =

,.num_resources =

array_size

(higmac_resources)

,.resource = higmac_resources,

};

//platform driver端

static

struct platform_driver higmac_dev_driver =,}

;

//雜項裝置

static

struct miscdevice gmac_dev =

;

看driver 端的probe函式,驅動一經插入,就開始執行

/*1. init glb adapter*/

/*2. 填充id netdev 和 higmac_board_info*/

/*3. init hw controller*/

/*4. phy reset*/

/*5. fwd_setup*/

/*6. init hw desc queue*/

/*7. register mdio bus*/

/*8. connect phy*/

/*9. request irq*/

/*10. register netdevice*/

MDIO匯流排相關 1

這裡主要是driver端 在drivers net phy裡面針對某一品牌的網路交換裝置有乙個檔案 例如 smsc 有乙個smsc.c 該品牌有多個裝置.每個裝置對應乙個結構體,因此組成了乙個結構體陣列 陣列元素型別 struct phy driver 陣列元素舉例 針對陣列中的每個元素都會註冊一次...

MDIO匯流排相關 3

這裡主要是匹配 匯流排匹配 struct bus type mdio bus type 從上面的結構體可以看出,linux中有多種匯流排型別.估計是從來匹配的.例如platform的 struct bus type platform bus type 可以看出和猜想一致 接下來看一下我們關心的匹配的...

(八)4 匯流排熱插拔

一 熱插拔的實現 我不知道在這裡用熱插拔這樣的名字是否合適,在之前的 需要我自己手動去載入驅動和裝置的模組,但在現實的情況下,一般是當裝置一被插入,系統自己會註冊裝置,並呼叫合適的驅動。所以,接下來我要實現的是,在載入了usb匯流排和usb滑鼠驅動的前提下,當有usb滑鼠插入,系統自己進行裝置的操作...