Difference between revisions of "BeagleBoard/GSoC/2010 Projects/Pulse Width Modulation"
(→Build and Run instructions) |
(→Build and Run instructions) |
||
Line 23: | Line 23: | ||
cd omap3-pwm/ | cd omap3-pwm/ | ||
− | * The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled | + | * The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels. |
− | in the default beagleboard defconfigs. You'll get an oops using pwm.ko with | ||
− | this enabled. This is a kernel power saving feature. You'll need to disable this | ||
− | config option to use this driver. Below is a sample patch for linux-omap-2.6.32's | ||
− | defconfig. Adjust for the kernel you are using. Gumstix users already have this | ||
− | turned off in default kernels. | ||
+ | <code> | ||
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig | diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig | ||
index cebe1f5..2dad30c 100644 | index cebe1f5..2dad30c 100644 | ||
Line 42: | Line 38: | ||
# CONFIG_OMAP_MUX is not set | # CONFIG_OMAP_MUX is not set | ||
CONFIG_OMAP_MCBSP=y | CONFIG_OMAP_MCBSP=y | ||
− | CONFIG_OMAP_MBOX_FWK=m | + | CONFIG_OMAP_MBOX_FWK=m |
− | + | </code> | |
* A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well. | * A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well. | ||
Revision as of 10:03, 15 August 2010
Project: Pulse Width Modulation
Student: Varun Jewalikar
Mentors: Søren Steen Christensen, Cristina Murillo
Repository: http://github.com/neo01124/omap3-pwm
Blog: http://beagleboard-pwm.blogspot.com/
Latest blog entries: Extension:RSS -- Error: "http://beagleboard-pwm.blogspot.com/feeds/posts/default%7Ccharset=UTF-8%7Cmax=3" is not in the whitelist of allowed feeds. There are no allowed feed URLs in the whitelist.
Abstract
The main aim of this project will be to provide a high level interface for the Pulse Width Modulation output pins of the OMAP3 found on the BeagleBoard. Another aim will be to push this driver upstream(the Linux-OMAP tree). Two applications will be developed to demonstrate the use of this driver:
- Motor control using PWM signals generated by the BeagleBoard using the PWM driver.
- Writing a glue layer for ALSA to communicate with the PWM driver and output sound from the PWM output pins.
Build and Run instructions
- Clone my git tree for the driver.This can be done using the following commands:
git clone git://github.com/neo01124/omap3-pwm.git cd omap3-pwm/
- The kernel config option CONFIG_OMAP_RESET_CLOCKS is enabled in the default beagleboard defconfigs. You'll get an oops using pwm.ko with this enabled. This is a kernel power saving feature. You'll need to disable this config option to use this driver. Below is a sample patch for linux-omap-2.6.32's defconfig. Adjust for the kernel you are using. Gumstix users already have this turned off in default kernels.
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig
index cebe1f5..2dad30c 100644
--- a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig
@@ -241,7 +241,7 @@ CONFIG_ARCH_OMAP3=y
#
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
-CONFIG_OMAP_RESET_CLOCKS=y
+# CONFIG_OMAP_RESET_CLOCKS is not set
# CONFIG_OMAP_MUX is not set
CONFIG_OMAP_MCBSP=y
CONFIG_OMAP_MBOX_FWK=m
- A cross compiling environment will be needed for compiling the driver. Instructions below work with OpenEmbedded but can adapted for codesourcery as well.