pwm方波可以用來控制很多的裝置,比如它可以被用來控制電機。簡單來說,就是單位時間內的方波越多,那麼電機的轉速就會越快;反之就越慢。通過這個特性,soc就可以輕鬆地利用pwm對外設進行自動控制。所以,今天的主題就是pwm驅動。
1、驅動目錄
drivers/pwm
2、檢視對應目錄下的kconfig
config pwm_samsung
tristate "samsung pwm support"
depends on plat_samsung || arch_exynos
help
dsttpqtxf generic pwm framework driver for samsung.
to compile this driver as a module, choose m here: the module
will be called pwm-samsung.
3、確認pwm_samsung只依賴於自己之外,繼續看makefile
obj-$(config_pwm) += core.o
obj-$(config_pwm_samsung) += pwm-samsung.o
4、根據makefile查閱pwm-samsung.c檔案,結構比較清楚
static struct platform_driver pwm_samsung_driver = ,
.probe = pwm_samsung_probe,
.remove = pwm_samsung_remove,
};module_platform_driver(pwm_samsung_driver);
5、soc裝置大多數是platform裝置,繼續尋找probe函式中的有用資訊
ret = pwmchip_add(&chip->chip);
if (ret < 0)
6、找到註冊函式後,接續看看函式介面點在什麼地方
static const struct pwm_ops pwm_samsung_ops = ;
7、pwm裝置沒有中斷函式,一般是立馬生效,除此之外,**中還是有裝置樹的內容,可以看看
static const struct of_device_id sams程式設計客棧ung_pwww.cppcns.comwm_matches[程式設計客棧] = ,
, ,, ,
{},};module_device_table(of, samsung_pwm_matches);
static int pwm_samsung_parse_dt(struct samsung_pwm_chip *chip)
chip->variant.output_mask |= bit(val);
} return 0;
}本文標題: 詳解linux pwm驅動編寫
本文位址:
Linux PWM的驅動編寫
比如要用到pwm1,那麼首先要保證這個pwm1並沒有被別的驅動程式占用。比如在驅動的裝置樹裡面 backlight可以看到裡面把pwm1已經占用掉了,那麼除了可以把相應的驅動程式設定為不編譯以外,也可以直接把這個裝置樹裡面的標識遮蔽掉,那麼在載入驅動時在裝置樹裡面沒有找到對應的compatible,...
詳解linux usb host驅動編寫入門
usb協議是乙個複雜的協議,目前涉及到的版本就有usb1.0,usb2.0,usb3.0。大家如果開啟kernel usb host目錄,就會發現下面包含了ohci,uhci,ehci,xhci,whci等多種形式的控制器驅動。那麼,對於我們這些不是很了解usb的開發人員,如何了解usb的 結構呢?...
norflash驅動編寫
首先我們來看 參考drivers mtd maps physmap.c include include include include include include include include include include include include static struct map ...