比如要用到pwm1,那麼首先要保證這個pwm1並沒有被別的驅動程式占用。
比如在驅動的裝置樹裡面:
backlight
可以看到裡面把pwm1已經占用掉了,那麼除了可以把相應的驅動程式設定為不編譯以外,也可以直接把這個裝置樹裡面的標識遮蔽掉,那麼在載入驅動時在裝置樹裡面沒有找到對應的compatible,也不執行對應的具體內容。
pwm的驅動程式:
涉及標頭檔案:
#include
struct pwm_device * pwm1 = null; //初始化乙個pwm裝置的結構體變數
pwm1 = pwm_request(1, "pwm1");//申請pwm裝置函式,前面是pwm幾,後面是給他的簡稱
if(is_err(pwm1))//申請有無成功
printk("pwm1 err %ld\n", ptr_err(pwm1));
else
printk("pwm1 success\n");
pwm_config(pwm1, 1200000, 5000000);//下面講
pwm_enable(pwm1);//將pwm使能,開啟
pwm_config函式有三個引數,第乙個是當前設定的pwm裝置,第二個和第三個分別是占空比與週期。
占空比與週期的單位均是ns,
其中5000000ns即表示5ms,說明乙個波形的週期是5ms
其中1200000ns即表示1.2ms,說明乙個波形中電平值為高時持續時間為1.2ms
詳解linux pwm驅動編寫
pwm方波可以用來控制很多的裝置,比如它可以被用來控制電機。簡單來說,就是單位時間內的方波越多,那麼電機的轉速就會越快 反之就越慢。通過這個特性,soc就可以輕鬆地利用pwm對外設進行自動控制。所以,今天的主題就是pwm驅動。1 驅動目錄 drivers pwm 2 檢視對應目錄下的kconfig ...
nand flash驅動的編寫
1 關鍵操作 1 分配nand chip結構體 2 配置結構體的相關成員 3 硬體相關的配置 2 最重要的函式 nand flash初始化函式 int s3c nand init void nand ecc modes這是個列舉型別啊 如果不定義值,那麼預設從0開始順序定義,即nand ecc no...
norflash驅動編寫
首先我們來看 參考drivers mtd maps physmap.c include include include include include include include include include include include include static struct map ...