Difference between revisions of "Linux drivers development"
From ArmadeusWiki
(→Driver compilation) |
(→i.MX register access from driver) |
||
Line 29: | Line 29: | ||
#include <arch/arm/imx-regs.h> | #include <arch/arm/imx-regs.h> | ||
− | For example: | + | For example (access to PWM control register): |
− | + | //enable the PWM | |
− | + | PWMC |= PWMC_EN; | |
== Useful Links == | == Useful Links == | ||
* http://old.kernelnewbies.org/documents/kdoc/kernel-api/linuxkernelapi.html | * http://old.kernelnewbies.org/documents/kdoc/kernel-api/linuxkernelapi.html | ||
* http://lwn.net/Articles/driver-porting/ | * http://lwn.net/Articles/driver-porting/ |
Revision as of 22:18, 20 December 2006
This page summarizes all you need to know before starting to develop Linux drivers for your Armadeus board
Contents
Recommended reading before starting
We advise you to read (not necessarly understand ;-) ):
- Linux Device Drivers (3rd edition) book: http://lwn.net/Kernel/LDD3/
Driver compilation
Our custom drivers build are integrated to linux build system. You can select, in the linux "menuconfig"/"xconfig" tool, which Armadeus drivers you want to add on your target. (only gpio, ppdev & ps2keyboard are integrated yet).
Here is the way to add custom drivers:
- in armadeus/target/linux/modules/, add a directory for you driver (ex toto/)
- put reference to this directory in the armadeus/target/linux/modules/Makefile and armadeus/target/linux/modules/Kconfig files
- in toto/ put your driver source code and create 2 files, Kconfig and Makefile. (Use armadeus/target/linux/modules/Makefile & Kconfig as examples.)
To compile the modules, either launch:
- "make" in armadeus/target/linux/modules/ directory
or
- "make linux" in armadeus/
only "make linux" will install the modules in target rootfs
i.MX register access from driver
To access i.MX registers from your driver, please use the macros defined in:
#include <arch/arm/imx-regs.h>
For example (access to PWM control register):
//enable the PWM PWMC |= PWMC_EN;