Machine Specific Layer (MSL)
i.MX51 EVK Linux Reference Manual
2-6
Freescale Semiconductor
2.4.3
IOMUX Features
The IOMUX implementation programs the IOMUX module to configure the pins that are supported by the
hardware.
2.4.4
IOMUX Source Code Structure
lists the source files for the IOMUX module. The files are in the directory:
<ltib_dir>/rpm/BUILD/linux/arch/arm/plat-mxc
2.4.5
IOMUX Programming Interface
The iomux api is in arch/arm/plat-mxc/include/mach/iomux-v3.h. Read the comments at the head of this
file to understand the iomux scheme.
2.5
General Purpose Input/Output(GPIO)
The GPIO module provides general-purpose pins that can be configured as either inputs or outputs. When
configured as an output, the pin state (high or low) can be controlled by writing to an internal register.
When configured as an input, the pin input state can be read from an internal register.
2.5.1
GPIO Software Operation
The general purpose input/output (GPIO) module provides an API to configure the i.MX processor
external pins and a central place to control the GPIO interrupts.
The GPIO utility functions should be called to configure a pin instead of directly accessing the GPIO
registers. The GPIO interrupt implementation contains functions, such as the interrupt service routine
(ISR) registration/un-registration and ISR dispatching once an interrupt occurs. All driver-specific GPIO
setup functions should be made during device initialization in the MSL layer to provide better portability
and maintainability. This GPIO interrupt is initialized automatically during the system startup.
If a pin is configured as GPIO by the IOMUX, the state of the pin should also be set since it is not initialized
by a dedicated hardware module.
2.5.1.1
API for GPIO
The GPIO implementation supports the following features:
•
An API for registering an interrupt service routine to a GPIO interrupt. This is made possible as
the number of interrupts defined by
NR_IRQS
is expanded to accommodate all the possible GPIO
Table 2-3. IOMUX Files
File
Description
iomux-v3.c
IOMUX function implementation
include/mach/iomux-mx5
1.h
Pin definitions in the iomux pins
Summary of Contents for i.MX51 EVK
Page 1: ...Part Number 924 76374 Rev 10 11 01 11 2010 i MX51 EVK Linux Reference Manual...
Page 14: ...i MX51 EVK Linux Reference Manual xiv Freescale Semiconductor...
Page 18: ...i MX51 EVK Linux Reference Manual xviii Freescale Semiconductor...
Page 24: ...i MX51 EVK Linux Reference Manual xxiv Freescale Semiconductor...
Page 38: ...Machine Specific Layer MSL i MX51 EVK Linux Reference Manual 2 8 Freescale Semiconductor...
Page 52: ...MC13892 Digitizer Driver i MX51 EVK Linux Reference Manual 5 4 Freescale Semiconductor...
Page 64: ...TV Encoder TVE Driver i MX51 EVK Linux Reference Manual 10 4 Freescale Semiconductor...
Page 82: ...Video for Linux Two V4L2 Driver i MX51 EVK Linux Reference Manual 12 8 Freescale Semiconductor...
Page 86: ...i MX5 Dual Display i MX51 EVK Linux Reference Manual 13 4 Freescale Semiconductor...
Page 100: ...X Windows Acceleration i MX51 EVK Linux Reference Manual 16 6 Freescale Semiconductor...
Page 118: ...Low Level Keypad Driver i MX51 EVK Linux Reference Manual 20 6 Freescale Semiconductor...
Page 134: ...Security Drivers i MX51 EVK Linux Reference Manual 22 10 Freescale Semiconductor...
Page 148: ...Inter IC I2C Driver i MX51 EVK Linux Reference Manual 24 4 Freescale Semiconductor...
Page 178: ...ARC USB Driver i MX51 EVK Linux Reference Manual 29 10 Freescale Semiconductor...
Page 194: ...OProfile i MX51 EVK Linux Reference Manual 33 6 Freescale Semiconductor...