Difference between revisions of "Linux drivers development"

From ArmadeusWiki
Jump to: navigation, search
(i.MX register access from driver)
m (Driver compilation)
Line 7: Line 7:
 
== Driver compilation ==
 
== Driver compilation ==
  
Our custom drivers build are integrated to linux build system.
+
Our custom drivers build are integrated to the Linux build system (kbuild).
 
You can select, in the linux "menuconfig"/"xconfig" tool, which Armadeus
 
You can select, in the linux "menuconfig"/"xconfig" tool, which Armadeus
 
drivers you want to add on your target. (only gpio, ppdev & ps2keyboard are
 
drivers you want to add on your target. (only gpio, ppdev & ps2keyboard are
Line 15: Line 15:
 
* in armadeus/target/linux/modules/, add a directory for you driver (ex toto/)
 
* 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
 
* 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.)
+
* in toto/ put your driver source code and create 2 files, Kconfig and Makefile. (Use armadeus/target/linux/modules/gpio/Makefile & Kconfig as examples.)
  
 
To compile the modules, either launch:
 
To compile the modules, either launch:
Line 22: Line 22:
 
* "make linux" in armadeus/
 
* "make linux" in armadeus/
  
only "make linux" will install the modules in target rootfs
+
only "make linux" will install the modules in target rootfs image
  
 
== i.MX register access from driver ==
 
== i.MX register access from driver ==

Revision as of 23:25, 20 December 2006

This page summarizes all you need to know before starting to develop Linux drivers for your Armadeus board

Recommended reading before starting

We advise you to read (not necessarly understand ;-) ):

Driver compilation

Our custom drivers build are integrated to the Linux build system (kbuild). 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/gpio/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 image

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;

Useful Links