haled{
#address-cell = <1>; //表示起始位址占用一個位元組的長度。
#size-cells = <1>; //表示位址占用一個位元組長
compatible = "alpa-led"; //表示屬性的相容屬性為"alpa-led"
status = "okay"; // 表示設定的狀态為“okay”
reg = < 0X020C406C 0X04 /* CCM_CCGR1_BASE */
0X020E0068 0X04 /* SW_MUX_GPIO1_IO03_BASE */
0X020E02F4 0X04 /* SW_PAD_GPIO1_IO03_BASE */
0X0209C000 0X04 /* GPIO1_DR_BASE */
0X0209C004 0X04 >; /* GPIO1_GDIR_BASE */
}; //表示驅動裡面所要使用的寄存器實體位址 ,對應寄存器的首位址。
核心驅動代碼:
//編寫驅動入口函數
static int __init led_init(void)
{
u32 val = 0;
//擷取裝置樹中的屬性資料
dtsled.nd = of_find_node_by_path("/haled");
//擷取compatible對應的屬性内容
proper = of_find_property(dtsled.nd,"compatible",NULL);
//擷取reg中的屬性内容
ret = of_property_read_u32_array(dtsled.nd,"reg",regdata,10);
//核心将擷取對應寄存器的位址
}