From Paul Walmsley <paul@pwsan.com>:
AM33xx hwmod data and miscellaneous clock and hwmod fixes. AM33xx should now boot on mainline after this is applied, according to Vaibhav. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJQUWFsAAoJEBvUPslcq6VzI70P/2ECL6bunE1s53JInm7u3HFB SM5RkOXsF8Sl+2zW0V2R8ZO9OQZC1co8e+6SmlPftv1pVXYP4wtNiFHy1MMQ5Nr7 O2ajKzAcGM1TAiJQ4A1yyfRZucOQQx7pPifACWkjagWy06JaYSUWGaea3z/g/n/U 2CGySqfyzwisiMnyZvIyxHD+cSDtERoweEEbFBKeLRlfecuBs91tIyHNbMqy7cc2 Bf+2G8m0AnrzMqhtzNAKCGJSzFEFDlr0umpLFxC+QLVFHKMJWJ7o2RwuAqf/Z9lw AS8q2sqzypOPz7eW7z9WLqCW1YlJWhBJmLCJ1alvkebRvWRM0idlVVS3wKjHaP6q NXF91mn21Xd9xzjXTtgigiDav0MpMuH6+FVWENanx1Rhn23GUIyRdKGMFQOeze2l lS/vitiTDsCbXQ/EJNlDNHI2skv6AgbBbSpCsg+YivjF16DfZWhlZrFKSvQbWKfW Mv5PnOnrpcIFNzcH8tGv9XUa61wM/HvRFbcICePAKOKy+vn2VkR/Q1XMmwHANhVf +AMDtRNCfuspmed1pIdy4vOAcWFdXhL2jZFOBeX6rENJ2+rwJuziEuwsc1xQ8BZ5 KV9RZcg9NwvhEBiLK+K4nViRwTeeSC1OZGIEpIsJ6YOTOfWClYSnTW7In5gY1jNL HetIvmP55Mm21G4L02D/ =UyqO -----END PGP SIGNATURE----- Merge tag 'omap-devel-am33xx-for-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc From Tony Lindgren: From Paul Walmsley <paul@pwsan.com>: AM33xx hwmod data and miscellaneous clock and hwmod fixes. AM33xx should now boot on mainline after this is applied, according to Vaibhav. (The shortlog makes no sense here since it contains mostly the dependent cleanups that are part of the preceding branches). Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
f4936639bc
@ -17,3 +17,12 @@ Description:
|
||||
device, like 'tty1'.
|
||||
The file supports poll() to detect virtual
|
||||
console switches.
|
||||
|
||||
What: /sys/class/tty/ttyS0/uartclk
|
||||
Date: Sep 2012
|
||||
Contact: Tomas Hlavacek <tmshlvck@gmail.com>
|
||||
Description:
|
||||
Shows the current uartclk value associated with the
|
||||
UART port in serial_core, that is bound to TTY like ttyS0.
|
||||
uartclk = 16 * baud_base
|
||||
|
||||
|
@ -0,0 +1,14 @@
|
||||
* NXP LPC32xx SoC High Speed UART
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "nxp,lpc3220-hsuart"
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain interrupt
|
||||
|
||||
Example:
|
||||
|
||||
uart1: serial@40014000 {
|
||||
compatible = "nxp,lpc3220-hsuart";
|
||||
reg = <0x40014000 0x1000>;
|
||||
interrupts = <26 0>;
|
||||
};
|
@ -25,6 +25,8 @@ Optional properties:
|
||||
accesses to the UART (e.g. TI davinci).
|
||||
- used-by-rtas : set to indicate that the port is in use by the OpenFirmware
|
||||
RTAS and should not be registered.
|
||||
- no-loopback-test: set to indicate that the port does not implements loopback
|
||||
test mode
|
||||
|
||||
Example:
|
||||
|
||||
|
@ -2,8 +2,6 @@
|
||||
- this file.
|
||||
README.cycladesZ
|
||||
- info on Cyclades-Z firmware loading.
|
||||
computone.txt
|
||||
- info on Computone Intelliport II/Plus Multiport Serial Driver.
|
||||
digiepca.txt
|
||||
- info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
|
||||
hayes-esp.txt
|
||||
|
@ -1,520 +0,0 @@
|
||||
NOTE: This is an unmaintained driver. It is not guaranteed to work due to
|
||||
changes made in the tty layer in 2.6. If you wish to take over maintenance of
|
||||
this driver, contact Michael Warfield <mhw@wittsend.com>.
|
||||
|
||||
Changelog:
|
||||
----------
|
||||
11-01-2001: Original Document
|
||||
|
||||
10-29-2004: Minor misspelling & format fix, update status of driver.
|
||||
James Nelson <james4765@gmail.com>
|
||||
|
||||
Computone Intelliport II/Plus Multiport Serial Driver
|
||||
-----------------------------------------------------
|
||||
|
||||
Release Notes For Linux Kernel 2.2 and higher.
|
||||
These notes are for the drivers which have already been integrated into the
|
||||
kernel and have been tested on Linux kernels 2.0, 2.2, 2.3, and 2.4.
|
||||
|
||||
Version: 1.2.14
|
||||
Date: 11/01/2001
|
||||
Historical Author: Andrew Manison <amanison@america.net>
|
||||
Primary Author: Doug McNash
|
||||
|
||||
This file assumes that you are using the Computone drivers which are
|
||||
integrated into the kernel sources. For updating the drivers or installing
|
||||
drivers into kernels which do not already have Computone drivers, please
|
||||
refer to the instructions in the README.computone file in the driver patch.
|
||||
|
||||
|
||||
1. INTRODUCTION
|
||||
|
||||
This driver supports the entire family of Intelliport II/Plus controllers
|
||||
with the exception of the MicroChannel controllers. It does not support
|
||||
products previous to the Intelliport II.
|
||||
|
||||
This driver was developed on the v2.0.x Linux tree and has been tested up
|
||||
to v2.4.14; it will probably not work with earlier v1.X kernels,.
|
||||
|
||||
|
||||
2. QUICK INSTALLATION
|
||||
|
||||
Hardware - If you have an ISA card, find a free interrupt and io port.
|
||||
List those in use with `cat /proc/interrupts` and
|
||||
`cat /proc/ioports`. Set the card dip switches to a free
|
||||
address. You may need to configure your BIOS to reserve an
|
||||
irq for an ISA card. PCI and EISA parameters are set
|
||||
automagically. Insert card into computer with the power off
|
||||
before or after drivers installation.
|
||||
|
||||
Note the hardware address from the Computone ISA cards installed into
|
||||
the system. These are required for editing ip2.c or editing
|
||||
/etc/modprobe.d/*.conf, or for specification on the modprobe
|
||||
command line.
|
||||
|
||||
Note that the /etc/modules.conf should be used for older (pre-2.6)
|
||||
kernels.
|
||||
|
||||
Software -
|
||||
|
||||
Module installation:
|
||||
|
||||
a) Determine free irq/address to use if any (configure BIOS if need be)
|
||||
b) Run "make config" or "make menuconfig" or "make xconfig"
|
||||
Select (m) module for CONFIG_COMPUTONE under character
|
||||
devices. CONFIG_PCI and CONFIG_MODULES also may need to be set.
|
||||
c) Set address on ISA cards then:
|
||||
edit /usr/src/linux/drivers/char/ip2.c if needed
|
||||
or
|
||||
edit config file in /etc/modprobe.d/ if needed (module).
|
||||
or both to match this setting.
|
||||
d) Run "make modules"
|
||||
e) Run "make modules_install"
|
||||
f) Run "/sbin/depmod -a"
|
||||
g) install driver using `modprobe ip2 <options>` (options listed below)
|
||||
h) run ip2mkdev (either the script below or the binary version)
|
||||
|
||||
|
||||
Kernel installation:
|
||||
|
||||
a) Determine free irq/address to use if any (configure BIOS if need be)
|
||||
b) Run "make config" or "make menuconfig" or "make xconfig"
|
||||
Select (y) kernel for CONFIG_COMPUTONE under character
|
||||
devices. CONFIG_PCI may need to be set if you have PCI bus.
|
||||
c) Set address on ISA cards then:
|
||||
edit /usr/src/linux/drivers/char/ip2.c
|
||||
(Optional - may be specified on kernel command line now)
|
||||
d) Run "make zImage" or whatever target you prefer.
|
||||
e) mv /usr/src/linux/arch/x86/boot/zImage to /boot.
|
||||
f) Add new config for this kernel into /etc/lilo.conf, run "lilo"
|
||||
or copy to a floppy disk and boot from that floppy disk.
|
||||
g) Reboot using this kernel
|
||||
h) run ip2mkdev (either the script below or the binary version)
|
||||
|
||||
Kernel command line options:
|
||||
|
||||
When compiling the driver into the kernel, io and irq may be
|
||||
compiled into the driver by editing ip2.c and setting the values for
|
||||
io and irq in the appropriate array. An alternative is to specify
|
||||
a command line parameter to the kernel at boot up.
|
||||
|
||||
ip2=io0,irq0,io1,irq1,io2,irq2,io3,irq3
|
||||
|
||||
Note that this order is very different from the specifications for the
|
||||
modload parameters which have separate IRQ and IO specifiers.
|
||||
|
||||
The io port also selects PCI (1) and EISA (2) boards.
|
||||
|
||||
io=0 No board
|
||||
io=1 PCI board
|
||||
io=2 EISA board
|
||||
else ISA board io address
|
||||
|
||||
You only need to specify the boards which are present.
|
||||
|
||||
Examples:
|
||||
|
||||
2 PCI boards:
|
||||
|
||||
ip2=1,0,1,0
|
||||
|
||||
1 ISA board at 0x310 irq 5:
|
||||
|
||||
ip2=0x310,5
|
||||
|
||||
This can be added to and "append" option in lilo.conf similar to this:
|
||||
|
||||
append="ip2=1,0,1,0"
|
||||
|
||||
|
||||
3. INSTALLATION
|
||||
|
||||
Previously, the driver sources were packaged with a set of patch files
|
||||
to update the character drivers' makefile and configuration file, and other
|
||||
kernel source files. A build script (ip2build) was included which applies
|
||||
the patches if needed, and build any utilities needed.
|
||||
What you receive may be a single patch file in conventional kernel
|
||||
patch format build script. That form can also be applied by
|
||||
running patch -p1 < ThePatchFile. Otherwise run ip2build.
|
||||
|
||||
The driver can be installed as a module (recommended) or built into the
|
||||
kernel. This is selected as for other drivers through the `make config`
|
||||
command from the root of the Linux source tree. If the driver is built
|
||||
into the kernel you will need to edit the file ip2.c to match the boards
|
||||
you are installing. See that file for instructions. If the driver is
|
||||
installed as a module the configuration can also be specified on the
|
||||
modprobe command line as follows:
|
||||
|
||||
modprobe ip2 irq=irq1,irq2,irq3,irq4 io=addr1,addr2,addr3,addr4
|
||||
|
||||
where irqnum is one of the valid Intelliport II interrupts (3,4,5,7,10,11,
|
||||
12,15) and addr1-4 are the base addresses for up to four controllers. If
|
||||
the irqs are not specified the driver uses the default in ip2.c (which
|
||||
selects polled mode). If no base addresses are specified the defaults in
|
||||
ip2.c are used. If you are autoloading the driver module with kerneld or
|
||||
kmod the base addresses and interrupt number must also be set in ip2.c
|
||||
and recompile or just insert and options line in /etc/modprobe.d/*.conf or both.
|
||||
The options line is equivalent to the command line and takes precedence over
|
||||
what is in ip2.c.
|
||||
|
||||
config sample to put /etc/modprobe.d/*.conf:
|
||||
options ip2 io=1,0x328 irq=1,10
|
||||
alias char-major-71 ip2
|
||||
alias char-major-72 ip2
|
||||
alias char-major-73 ip2
|
||||
|
||||
The equivalent in ip2.c:
|
||||
|
||||
static int io[IP2_MAX_BOARDS]= { 1, 0x328, 0, 0 };
|
||||
static int irq[IP2_MAX_BOARDS] = { 1, 10, -1, -1 };
|
||||
|
||||
The equivalent for the kernel command line (in lilo.conf):
|
||||
|
||||
append="ip2=1,1,0x328,10"
|
||||
|
||||
|
||||
Note: Both io and irq should be updated to reflect YOUR system. An "io"
|
||||
address of 1 or 2 indicates a PCI or EISA card in the board table.
|
||||
The PCI or EISA irq will be assigned automatically.
|
||||
|
||||
Specifying an invalid or in-use irq will default the driver into
|
||||
running in polled mode for that card. If all irq entries are 0 then
|
||||
all cards will operate in polled mode.
|
||||
|
||||
If you select the driver as part of the kernel run :
|
||||
|
||||
make zlilo (or whatever you do to create a bootable kernel)
|
||||
|
||||
If you selected a module run :
|
||||
|
||||
make modules && make modules_install
|
||||
|
||||
The utility ip2mkdev (see 5 and 7 below) creates all the device nodes
|
||||
required by the driver. For a device to be created it must be configured
|
||||
in the driver and the board must be installed. Only devices corresponding
|
||||
to real IntelliPort II ports are created. With multiple boards and expansion
|
||||
boxes this will leave gaps in the sequence of device names. ip2mkdev uses
|
||||
Linux tty naming conventions: ttyF0 - ttyF255 for normal devices, and
|
||||
cuf0 - cuf255 for callout devices.
|
||||
|
||||
|
||||
4. USING THE DRIVERS
|
||||
|
||||
As noted above, the driver implements the ports in accordance with Linux
|
||||
conventions, and the devices should be interchangeable with the standard
|
||||
serial devices. (This is a key point for problem reporting: please make
|
||||
sure that what you are trying do works on the ttySx/cuax ports first; then
|
||||
tell us what went wrong with the ip2 ports!)
|
||||
|
||||
Higher speeds can be obtained using the setserial utility which remaps
|
||||
38,400 bps (extb) to 57,600 bps, 115,200 bps, or a custom speed.
|
||||
Intelliport II installations using the PowerPort expansion module can
|
||||
use the custom speed setting to select the highest speeds: 153,600 bps,
|
||||
230,400 bps, 307,200 bps, 460,800bps and 921,600 bps. The base for
|
||||
custom baud rate configuration is fixed at 921,600 for cards/expansion
|
||||
modules with ST654's and 115200 for those with Cirrus CD1400's. This
|
||||
corresponds to the maximum bit rates those chips are capable.
|
||||
For example if the baud base is 921600 and the baud divisor is 18 then
|
||||
the custom rate is 921600/18 = 51200 bps. See the setserial man page for
|
||||
complete details. Of course if stty accepts the higher rates now you can
|
||||
use that as well as the standard ioctls().
|
||||
|
||||
|
||||
5. ip2mkdev and assorted utilities...
|
||||
|
||||
Several utilities, including the source for a binary ip2mkdev utility are
|
||||
available under .../drivers/char/ip2. These can be build by changing to
|
||||
that directory and typing "make" after the kernel has be built. If you do
|
||||
not wish to compile the binary utilities, the shell script below can be
|
||||
cut out and run as "ip2mkdev" to create the necessary device files. To
|
||||
use the ip2mkdev script, you must have procfs enabled and the proc file
|
||||
system mounted on /proc.
|
||||
|
||||
|
||||
6. NOTES
|
||||
|
||||
This is a release version of the driver, but it is impossible to test it
|
||||
in all configurations of Linux. If there is any anomalous behaviour that
|
||||
does not match the standard serial port's behaviour please let us know.
|
||||
|
||||
|
||||
7. ip2mkdev shell script
|
||||
|
||||
Previously, this script was simply attached here. It is now attached as a
|
||||
shar archive to make it easier to extract the script from the documentation.
|
||||
To create the ip2mkdev shell script change to a convenient directory (/tmp
|
||||
works just fine) and run the following command:
|
||||
|
||||
unshar Documentation/serial/computone.txt
|
||||
(This file)
|
||||
|
||||
You should now have a file ip2mkdev in your current working directory with
|
||||
permissions set to execute. Running that script with then create the
|
||||
necessary devices for the Computone boards, interfaces, and ports which
|
||||
are present on you system at the time it is run.
|
||||
|
||||
|
||||
#!/bin/sh
|
||||
# This is a shell archive (produced by GNU sharutils 4.2.1).
|
||||
# To extract the files from this archive, save it to some FILE, remove
|
||||
# everything before the `!/bin/sh' line above, then type `sh FILE'.
|
||||
#
|
||||
# Made on 2001-10-29 10:32 EST by <mhw@alcove.wittsend.com>.
|
||||
# Source directory was `/home2/src/tmp'.
|
||||
#
|
||||
# Existing files will *not* be overwritten unless `-c' is specified.
|
||||
#
|
||||
# This shar contains:
|
||||
# length mode name
|
||||
# ------ ---------- ------------------------------------------
|
||||
# 4251 -rwxr-xr-x ip2mkdev
|
||||
#
|
||||
save_IFS="${IFS}"
|
||||
IFS="${IFS}:"
|
||||
gettext_dir=FAILED
|
||||
locale_dir=FAILED
|
||||
first_param="$1"
|
||||
for dir in $PATH
|
||||
do
|
||||
if test "$gettext_dir" = FAILED && test -f $dir/gettext \
|
||||
&& ($dir/gettext --version >/dev/null 2>&1)
|
||||
then
|
||||
set `$dir/gettext --version 2>&1`
|
||||
if test "$3" = GNU
|
||||
then
|
||||
gettext_dir=$dir
|
||||
fi
|
||||
fi
|
||||
if test "$locale_dir" = FAILED && test -f $dir/shar \
|
||||
&& ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
|
||||
then
|
||||
locale_dir=`$dir/shar --print-text-domain-dir`
|
||||
fi
|
||||
done
|
||||
IFS="$save_IFS"
|
||||
if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
|
||||
then
|
||||
echo=echo
|
||||
else
|
||||
TEXTDOMAINDIR=$locale_dir
|
||||
export TEXTDOMAINDIR
|
||||
TEXTDOMAIN=sharutils
|
||||
export TEXTDOMAIN
|
||||
echo="$gettext_dir/gettext -s"
|
||||
fi
|
||||
if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then
|
||||
shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"'
|
||||
elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then
|
||||
shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"'
|
||||
elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then
|
||||
shar_touch='touch -am $3$4$5$6$2 "$8"'
|
||||
else
|
||||
shar_touch=:
|
||||
echo
|
||||
$echo 'WARNING: not restoring timestamps. Consider getting and'
|
||||
$echo "installing GNU \`touch', distributed in GNU File Utilities..."
|
||||
echo
|
||||
fi
|
||||
rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch
|
||||
#
|
||||
if mkdir _sh17581; then
|
||||
$echo 'x -' 'creating lock directory'
|
||||
else
|
||||
$echo 'failed to create lock directory'
|
||||
exit 1
|
||||
fi
|
||||
# ============= ip2mkdev ==============
|
||||
if test -f 'ip2mkdev' && test "$first_param" != -c; then
|
||||
$echo 'x -' SKIPPING 'ip2mkdev' '(file already exists)'
|
||||
else
|
||||
$echo 'x -' extracting 'ip2mkdev' '(text)'
|
||||
sed 's/^X//' << 'SHAR_EOF' > 'ip2mkdev' &&
|
||||
#!/bin/sh -
|
||||
#
|
||||
# ip2mkdev
|
||||
#
|
||||
# Make or remove devices as needed for Computone Intelliport drivers
|
||||
#
|
||||
# First rule! If the dev file exists and you need it, don't mess
|
||||
# with it. That prevents us from screwing up open ttys, ownership
|
||||
# and permissions on a running system!
|
||||
#
|
||||
# This script will NOT remove devices that no longer exist if their
|
||||
# board or interface box has been removed. If you want to get rid
|
||||
# of them, you can manually do an "rm -f /dev/ttyF* /dev/cuaf*"
|
||||
# before running this script. Running this script will then recreate
|
||||
# all the valid devices.
|
||||
#
|
||||
# Michael H. Warfield
|
||||
# /\/\|=mhw=|\/\/
|
||||
# mhw@wittsend.com
|
||||
#
|
||||
# Updated 10/29/2000 for version 1.2.13 naming convention
|
||||
# under devfs. /\/\|=mhw=|\/\/
|
||||
#
|
||||
# Updated 03/09/2000 for devfs support in ip2 drivers. /\/\|=mhw=|\/\/
|
||||
#
|
||||
X
|
||||
if test -d /dev/ip2 ; then
|
||||
# This is devfs mode... We don't do anything except create symlinks
|
||||
# from the real devices to the old names!
|
||||
X cd /dev
|
||||
X echo "Creating symbolic links to devfs devices"
|
||||
X for i in `ls ip2` ; do
|
||||
X if test ! -L ip2$i ; then
|
||||
X # Remove it incase it wasn't a symlink (old device)
|
||||
X rm -f ip2$i
|
||||
X ln -s ip2/$i ip2$i
|
||||
X fi
|
||||
X done
|
||||
X for i in `( cd tts ; ls F* )` ; do
|
||||
X if test ! -L tty$i ; then
|
||||
X # Remove it incase it wasn't a symlink (old device)
|
||||
X rm -f tty$i
|
||||
X ln -s tts/$i tty$i
|
||||
X fi
|
||||
X done
|
||||
X for i in `( cd cua ; ls F* )` ; do
|
||||
X DEVNUMBER=`expr $i : 'F\(.*\)'`
|
||||
X if test ! -L cuf$DEVNUMBER ; then
|
||||
X # Remove it incase it wasn't a symlink (old device)
|
||||
X rm -f cuf$DEVNUMBER
|
||||
X ln -s cua/$i cuf$DEVNUMBER
|
||||
X fi
|
||||
X done
|
||||
X exit 0
|
||||
fi
|
||||
X
|
||||
if test ! -f /proc/tty/drivers
|
||||
then
|
||||
X echo "\
|
||||
Unable to check driver status.
|
||||
Make sure proc file system is mounted."
|
||||
X
|
||||
X exit 255
|
||||
fi
|
||||
X
|
||||
if test ! -f /proc/tty/driver/ip2
|
||||
then
|
||||
X echo "\
|
||||
Unable to locate ip2 proc file.
|
||||
Attempting to load driver"
|
||||
X
|
||||
X if /sbin/insmod ip2
|
||||
X then
|
||||
X if test ! -f /proc/tty/driver/ip2
|
||||
X then
|
||||
X echo "\
|
||||
Unable to locate ip2 proc file after loading driver.
|
||||
Driver initialization failure or driver version error.
|
||||
"
|
||||
X exit 255
|
||||
X fi
|
||||
X else
|
||||
X echo "Unable to load ip2 driver."
|
||||
X exit 255
|
||||
X fi
|
||||
fi
|
||||
X
|
||||
# Ok... So we got the driver loaded and we can locate the procfs files.
|
||||
# Next we need our major numbers.
|
||||
X
|
||||
TTYMAJOR=`sed -e '/^ip2/!d' -e '/\/dev\/tt/!d' -e 's/.*tt[^ ]*[ ]*\([0-9]*\)[ ]*.*/\1/' < /proc/tty/drivers`
|
||||
CUAMAJOR=`sed -e '/^ip2/!d' -e '/\/dev\/cu/!d' -e 's/.*cu[^ ]*[ ]*\([0-9]*\)[ ]*.*/\1/' < /proc/tty/drivers`
|
||||
BRDMAJOR=`sed -e '/^Driver: /!d' -e 's/.*IMajor=\([0-9]*\)[ ]*.*/\1/' < /proc/tty/driver/ip2`
|
||||
X
|
||||
echo "\
|
||||
TTYMAJOR = $TTYMAJOR
|
||||
CUAMAJOR = $CUAMAJOR
|
||||
BRDMAJOR = $BRDMAJOR
|
||||
"
|
||||
X
|
||||
# Ok... Now we should know our major numbers, if appropriate...
|
||||
# Now we need our boards and start the device loops.
|
||||
X
|
||||
grep '^Board [0-9]:' /proc/tty/driver/ip2 | while read token number type alltherest
|
||||
do
|
||||
X # The test for blank "type" will catch the stats lead-in lines
|
||||
X # if they exist in the file
|
||||
X if test "$type" = "vacant" -o "$type" = "Vacant" -o "$type" = ""
|
||||
X then
|
||||
X continue
|
||||
X fi
|
||||
X
|
||||
X BOARDNO=`expr "$number" : '\([0-9]\):'`
|
||||
X PORTS=`expr "$alltherest" : '.*ports=\([0-9]*\)' | tr ',' ' '`
|
||||
X MINORS=`expr "$alltherest" : '.*minors=\([0-9,]*\)' | tr ',' ' '`
|
||||
X
|
||||
X if test "$BOARDNO" = "" -o "$PORTS" = ""
|
||||
X then
|
||||
# This may be a bug. We should at least get this much information
|
||||
X echo "Unable to process board line"
|
||||
X continue
|
||||
X fi
|
||||
X
|
||||
X if test "$MINORS" = ""
|
||||
X then
|
||||
# Silently skip this one. This board seems to have no boxes
|
||||
X continue
|
||||
X fi
|
||||
X
|
||||
X echo "board $BOARDNO: $type ports = $PORTS; port numbers = $MINORS"
|
||||
X
|
||||
X if test "$BRDMAJOR" != ""
|
||||
X then
|
||||
X BRDMINOR=`expr $BOARDNO \* 4`
|
||||
X STSMINOR=`expr $BRDMINOR + 1`
|
||||
X if test ! -c /dev/ip2ipl$BOARDNO ; then
|
||||
X mknod /dev/ip2ipl$BOARDNO c $BRDMAJOR $BRDMINOR
|
||||
X fi
|
||||
X if test ! -c /dev/ip2stat$BOARDNO ; then
|
||||
X mknod /dev/ip2stat$BOARDNO c $BRDMAJOR $STSMINOR
|
||||
X fi
|
||||
X fi
|
||||
X
|
||||
X if test "$TTYMAJOR" != ""
|
||||
X then
|
||||
X PORTNO=$BOARDBASE
|
||||
X
|
||||
X for PORTNO in $MINORS
|
||||
X do
|
||||
X if test ! -c /dev/ttyF$PORTNO ; then
|
||||
X # We got the hardware but no device - make it
|
||||
X mknod /dev/ttyF$PORTNO c $TTYMAJOR $PORTNO
|
||||
X fi
|
||||
X done
|
||||
X fi
|
||||
X
|
||||
X if test "$CUAMAJOR" != ""
|
||||
X then
|
||||
X PORTNO=$BOARDBASE
|
||||
X
|
||||
X for PORTNO in $MINORS
|
||||
X do
|
||||
X if test ! -c /dev/cuf$PORTNO ; then
|
||||
X # We got the hardware but no device - make it
|
||||
X mknod /dev/cuf$PORTNO c $CUAMAJOR $PORTNO
|
||||
X fi
|
||||
X done
|
||||
X fi
|
||||
done
|
||||
X
|
||||
Xexit 0
|
||||
SHAR_EOF
|
||||
(set 20 01 10 29 10 32 01 'ip2mkdev'; eval "$shar_touch") &&
|
||||
chmod 0755 'ip2mkdev' ||
|
||||
$echo 'restore of' 'ip2mkdev' 'failed'
|
||||
if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
|
||||
&& ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
|
||||
md5sum -c << SHAR_EOF >/dev/null 2>&1 \
|
||||
|| $echo 'ip2mkdev:' 'MD5 check failed'
|
||||
cb5717134509f38bad9fde6b1f79b4a4 ip2mkdev
|
||||
SHAR_EOF
|
||||
else
|
||||
shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'ip2mkdev'`"
|
||||
test 4251 -eq "$shar_count" ||
|
||||
$echo 'ip2mkdev:' 'original size' '4251,' 'current size' "$shar_count!"
|
||||
fi
|
||||
fi
|
||||
rm -fr _sh17581
|
||||
exit 0
|
@ -223,6 +223,7 @@ srmcons_init(void)
|
||||
driver->subtype = SYSTEM_TYPE_SYSCONS;
|
||||
driver->init_termios = tty_std_termios;
|
||||
tty_set_operations(driver, &srmcons_ops);
|
||||
tty_port_link_device(&srmcons_singleton.port, driver, 0);
|
||||
err = tty_register_driver(driver);
|
||||
if (err) {
|
||||
put_tty_driver(driver);
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include <plat/board-ams-delta.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/ams-delta-fiq.h>
|
||||
|
||||
#include "iomap.h"
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <linux/export.h>
|
||||
#include <linux/omapfb.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <media/soc_camera.h>
|
||||
|
||||
@ -37,7 +38,6 @@
|
||||
#include <plat/board-ams-delta.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/ams-delta-fiq.h>
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include <plat/flash.h>
|
||||
#include <plat/fpga.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
#include <mach/usb.h>
|
||||
|
||||
@ -52,9 +51,6 @@ static struct omap_usb_config generic1610_usb_config __initdata = {
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct omap_board_config_kernel generic_config[] __initdata = {
|
||||
};
|
||||
|
||||
static void __init omap_generic_init(void)
|
||||
{
|
||||
#ifdef CONFIG_ARCH_OMAP15XX
|
||||
@ -76,8 +72,6 @@ static void __init omap_generic_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
omap_board_config = generic_config;
|
||||
omap_board_config_size = ARRAY_SIZE(generic_config);
|
||||
omap_serial_init();
|
||||
omap_register_i2c_bus(1, 100, NULL, 0);
|
||||
}
|
||||
|
@ -41,8 +41,7 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <plat/omap7xx.h>
|
||||
#include <plat/board.h>
|
||||
#include <mach/omap7xx.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/mmc.h>
|
||||
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/lcd_mipid.h>
|
||||
#include <plat/mmc.h>
|
||||
|
@ -39,6 +39,8 @@
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/i2c/tps65010.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
#include <linux/platform_data/omap1_bl.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/apm-emulation.h>
|
||||
#include <linux/omapfb.h>
|
||||
#include <linux/platform_data/omap1_bl.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -37,7 +38,6 @@
|
||||
#include <plat/mux.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/keypad.h>
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <linux/omapfb.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
#include <linux/platform_data/omap1_bl.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -37,7 +38,6 @@
|
||||
#include <plat/mux.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/keypad.h>
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <linux/omapfb.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
#include <linux/platform_data/omap1_bl.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -39,7 +40,6 @@
|
||||
#include <plat/mux.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/keypad.h>
|
||||
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include <plat/fpga.h>
|
||||
#include <plat/flash.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include <plat/dma.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/board-sx1.h>
|
||||
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include <plat/flash.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/usb.h>
|
||||
@ -155,9 +154,6 @@ static struct omap_usb_config voiceblue_usb_config __initdata = {
|
||||
.pins[2] = 6,
|
||||
};
|
||||
|
||||
static struct omap_board_config_kernel voiceblue_config[] = {
|
||||
};
|
||||
|
||||
#define MACHINE_PANICED 1
|
||||
#define MACHINE_REBOOTING 2
|
||||
#define MACHINE_REBOOT 4
|
||||
@ -275,8 +271,6 @@ static void __init voiceblue_init(void)
|
||||
voiceblue_smc91x_resources[1].start = gpio_to_irq(8);
|
||||
voiceblue_smc91x_resources[1].end = gpio_to_irq(8);
|
||||
platform_add_devices(voiceblue_devices, ARRAY_SIZE(voiceblue_devices));
|
||||
omap_board_config = voiceblue_config;
|
||||
omap_board_config_size = ARRAY_SIZE(voiceblue_config);
|
||||
omap_serial_init();
|
||||
omap1_usb_init(&voiceblue_usb_config);
|
||||
omap_register_i2c_bus(1, 100, NULL, 0);
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include <plat/clock.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clkdev_omap.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/sram.h> /* for omap_sram_reprogram_clock() */
|
||||
|
||||
#include <mach/hardware.h>
|
||||
@ -788,7 +787,6 @@ u32 cpu_mask;
|
||||
int __init omap1_clk_init(void)
|
||||
{
|
||||
struct omap_clk *c;
|
||||
const struct omap_clock_config *info;
|
||||
int crystal_type = 0; /* Default 12 MHz */
|
||||
u32 reg;
|
||||
|
||||
@ -837,12 +835,6 @@ int __init omap1_clk_init(void)
|
||||
ck_dpll1_p = clk_get(NULL, "ck_dpll1");
|
||||
ck_ref_p = clk_get(NULL, "ck_ref");
|
||||
|
||||
info = omap_get_config(OMAP_TAG_CLOCK, struct omap_clock_config);
|
||||
if (info != NULL) {
|
||||
if (!cpu_is_omap15xx())
|
||||
crystal_type = info->system_clock_type;
|
||||
}
|
||||
|
||||
if (cpu_is_omap7xx())
|
||||
ck_ref.rate = 13000000;
|
||||
if (cpu_is_omap16xx() && crystal_type == 2)
|
||||
|
@ -20,12 +20,11 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <plat/omap7xx.h>
|
||||
|
||||
#include <mach/omap7xx.h>
|
||||
#include <mach/camera.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
|
@ -27,7 +27,8 @@
|
||||
|
||||
#include <plat/dma.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/irqs.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#define OMAP1_DMA_BASE (0xfffed800)
|
||||
#define OMAP1_LOGICAL_DMA_CH_COUNT 17
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#define OMAP1_MPUIO_VBASE OMAP1_MPUIO_BASE
|
||||
#define OMAP1510_GPIO_BASE 0xFFFCE000
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#define OMAP1610_GPIO1_BASE 0xfffbe400
|
||||
#define OMAP1610_GPIO2_BASE 0xfffbec00
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#define OMAP7XX_GPIO1_BASE 0xfffbc000
|
||||
#define OMAP7XX_GPIO2_BASE 0xfffbc800
|
||||
|
@ -14,8 +14,6 @@
|
||||
#ifndef __AMS_DELTA_FIQ_H
|
||||
#define __AMS_DELTA_FIQ_H
|
||||
|
||||
#include <plat/irqs.h>
|
||||
|
||||
/*
|
||||
* Interrupt number used for passing control from FIQ to IRQ.
|
||||
* IRQ12, described as reserved, has been selected.
|
||||
|
@ -1,5 +1,3 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/gpio.h
|
||||
*/
|
||||
|
||||
#include <plat/gpio.h>
|
||||
|
@ -1,11 +1,46 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/hardware.h
|
||||
*
|
||||
* Hardware definitions for TI OMAP processors and boards
|
||||
*
|
||||
* NOTE: Please put device driver specific defines into a separate header
|
||||
* file for each driver.
|
||||
*
|
||||
* Copyright (C) 2001 RidgeRun, Inc.
|
||||
* Author: RidgeRun, Inc. Greg Lonnon <glonnon@ridgerun.com>
|
||||
*
|
||||
* Reorganized for Linux-2.6 by Tony Lindgren <tony@atomide.com>
|
||||
* and Dirk Behme <dirk.behme@de.bosch.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __MACH_HARDWARE_H
|
||||
#define __MACH_HARDWARE_H
|
||||
#ifndef __ASM_ARCH_OMAP_HARDWARE_H
|
||||
#define __ASM_ARCH_OMAP_HARDWARE_H
|
||||
|
||||
#include <asm/sizes.h>
|
||||
#ifndef __ASSEMBLER__
|
||||
#include <asm/types.h>
|
||||
#include <plat/cpu.h>
|
||||
|
||||
/*
|
||||
* NOTE: Please use ioremap + __raw_read/write where possible instead of these
|
||||
*/
|
||||
@ -35,7 +70,249 @@ static inline u32 omap_cs3_phys(void)
|
||||
? 0 : OMAP_CS3_PHYS;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* ifndef __ASSEMBLER__ */
|
||||
|
||||
#include <plat/serial.h>
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------------
|
||||
* Common definitions for all OMAP processors
|
||||
* NOTE: Put all processor or board specific parts to the special header
|
||||
* files.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* Timers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP_MPU_TIMER1_BASE (0xfffec500)
|
||||
#define OMAP_MPU_TIMER2_BASE (0xfffec600)
|
||||
#define OMAP_MPU_TIMER3_BASE (0xfffec700)
|
||||
#define MPU_TIMER_FREE (1 << 6)
|
||||
#define MPU_TIMER_CLOCK_ENABLE (1 << 5)
|
||||
#define MPU_TIMER_AR (1 << 1)
|
||||
#define MPU_TIMER_ST (1 << 0)
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* Clocks
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define CLKGEN_REG_BASE (0xfffece00)
|
||||
#define ARM_CKCTL (CLKGEN_REG_BASE + 0x0)
|
||||
#define ARM_IDLECT1 (CLKGEN_REG_BASE + 0x4)
|
||||
#define ARM_IDLECT2 (CLKGEN_REG_BASE + 0x8)
|
||||
#define ARM_EWUPCT (CLKGEN_REG_BASE + 0xC)
|
||||
#define ARM_RSTCT1 (CLKGEN_REG_BASE + 0x10)
|
||||
#define ARM_RSTCT2 (CLKGEN_REG_BASE + 0x14)
|
||||
#define ARM_SYSST (CLKGEN_REG_BASE + 0x18)
|
||||
#define ARM_IDLECT3 (CLKGEN_REG_BASE + 0x24)
|
||||
|
||||
#define CK_RATEF 1
|
||||
#define CK_IDLEF 2
|
||||
#define CK_ENABLEF 4
|
||||
#define CK_SELECTF 8
|
||||
#define SETARM_IDLE_SHIFT
|
||||
|
||||
/* DPLL control registers */
|
||||
#define DPLL_CTL (0xfffecf00)
|
||||
|
||||
/* DSP clock control. Must use __raw_readw() and __raw_writew() with these */
|
||||
#define DSP_CONFIG_REG_BASE IOMEM(0xe1008000)
|
||||
#define DSP_CKCTL (DSP_CONFIG_REG_BASE + 0x0)
|
||||
#define DSP_IDLECT1 (DSP_CONFIG_REG_BASE + 0x4)
|
||||
#define DSP_IDLECT2 (DSP_CONFIG_REG_BASE + 0x8)
|
||||
#define DSP_RSTCT2 (DSP_CONFIG_REG_BASE + 0x14)
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------------
|
||||
* UPLD
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#define ULPD_REG_BASE (0xfffe0800)
|
||||
#define ULPD_IT_STATUS (ULPD_REG_BASE + 0x14)
|
||||
#define ULPD_SETUP_ANALOG_CELL_3 (ULPD_REG_BASE + 0x24)
|
||||
#define ULPD_CLOCK_CTRL (ULPD_REG_BASE + 0x30)
|
||||
# define DIS_USB_PVCI_CLK (1 << 5) /* no USB/FAC synch */
|
||||
# define USB_MCLK_EN (1 << 4) /* enable W4_USB_CLKO */
|
||||
#define ULPD_SOFT_REQ (ULPD_REG_BASE + 0x34)
|
||||
# define SOFT_UDC_REQ (1 << 4)
|
||||
# define SOFT_USB_CLK_REQ (1 << 3)
|
||||
# define SOFT_DPLL_REQ (1 << 0)
|
||||
#define ULPD_DPLL_CTRL (ULPD_REG_BASE + 0x3c)
|
||||
#define ULPD_STATUS_REQ (ULPD_REG_BASE + 0x40)
|
||||
#define ULPD_APLL_CTRL (ULPD_REG_BASE + 0x4c)
|
||||
#define ULPD_POWER_CTRL (ULPD_REG_BASE + 0x50)
|
||||
#define ULPD_SOFT_DISABLE_REQ_REG (ULPD_REG_BASE + 0x68)
|
||||
# define DIS_MMC2_DPLL_REQ (1 << 11)
|
||||
# define DIS_MMC1_DPLL_REQ (1 << 10)
|
||||
# define DIS_UART3_DPLL_REQ (1 << 9)
|
||||
# define DIS_UART2_DPLL_REQ (1 << 8)
|
||||
# define DIS_UART1_DPLL_REQ (1 << 7)
|
||||
# define DIS_USB_HOST_DPLL_REQ (1 << 6)
|
||||
#define ULPD_SDW_CLK_DIV_CTRL_SEL (ULPD_REG_BASE + 0x74)
|
||||
#define ULPD_CAM_CLK_CTRL (ULPD_REG_BASE + 0x7c)
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------------
|
||||
* Watchdog timer
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* Watchdog timer within the OMAP3.2 gigacell */
|
||||
#define OMAP_MPU_WATCHDOG_BASE (0xfffec800)
|
||||
#define OMAP_WDT_TIMER (OMAP_MPU_WATCHDOG_BASE + 0x0)
|
||||
#define OMAP_WDT_LOAD_TIM (OMAP_MPU_WATCHDOG_BASE + 0x4)
|
||||
#define OMAP_WDT_READ_TIM (OMAP_MPU_WATCHDOG_BASE + 0x4)
|
||||
#define OMAP_WDT_TIMER_MODE (OMAP_MPU_WATCHDOG_BASE + 0x8)
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------------
|
||||
* Interrupts
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef CONFIG_ARCH_OMAP1
|
||||
|
||||
/*
|
||||
* XXX: These probably want to be moved to arch/arm/mach-omap/omap1/irq.c
|
||||
* or something similar.. -- PFM.
|
||||
*/
|
||||
|
||||
#define OMAP_IH1_BASE 0xfffecb00
|
||||
#define OMAP_IH2_BASE 0xfffe0000
|
||||
|
||||
#define OMAP_IH1_ITR (OMAP_IH1_BASE + 0x00)
|
||||
#define OMAP_IH1_MIR (OMAP_IH1_BASE + 0x04)
|
||||
#define OMAP_IH1_SIR_IRQ (OMAP_IH1_BASE + 0x10)
|
||||
#define OMAP_IH1_SIR_FIQ (OMAP_IH1_BASE + 0x14)
|
||||
#define OMAP_IH1_CONTROL (OMAP_IH1_BASE + 0x18)
|
||||
#define OMAP_IH1_ILR0 (OMAP_IH1_BASE + 0x1c)
|
||||
#define OMAP_IH1_ISR (OMAP_IH1_BASE + 0x9c)
|
||||
|
||||
#define OMAP_IH2_ITR (OMAP_IH2_BASE + 0x00)
|
||||
#define OMAP_IH2_MIR (OMAP_IH2_BASE + 0x04)
|
||||
#define OMAP_IH2_SIR_IRQ (OMAP_IH2_BASE + 0x10)
|
||||
#define OMAP_IH2_SIR_FIQ (OMAP_IH2_BASE + 0x14)
|
||||
#define OMAP_IH2_CONTROL (OMAP_IH2_BASE + 0x18)
|
||||
#define OMAP_IH2_ILR0 (OMAP_IH2_BASE + 0x1c)
|
||||
#define OMAP_IH2_ISR (OMAP_IH2_BASE + 0x9c)
|
||||
|
||||
#define IRQ_ITR_REG_OFFSET 0x00
|
||||
#define IRQ_MIR_REG_OFFSET 0x04
|
||||
#define IRQ_SIR_IRQ_REG_OFFSET 0x10
|
||||
#define IRQ_SIR_FIQ_REG_OFFSET 0x14
|
||||
#define IRQ_CONTROL_REG_OFFSET 0x18
|
||||
#define IRQ_ISR_REG_OFFSET 0x9c
|
||||
#define IRQ_ILR0_REG_OFFSET 0x1c
|
||||
#define IRQ_GMR_REG_OFFSET 0xa0
|
||||
|
||||
#endif
|
||||
|
||||
#include <plat/hardware.h>
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* System control registers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define MOD_CONF_CTRL_0 0xfffe1080
|
||||
#define MOD_CONF_CTRL_1 0xfffe1110
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* Pin multiplexing registers
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define FUNC_MUX_CTRL_0 0xfffe1000
|
||||
#define FUNC_MUX_CTRL_1 0xfffe1004
|
||||
#define FUNC_MUX_CTRL_2 0xfffe1008
|
||||
#define COMP_MODE_CTRL_0 0xfffe100c
|
||||
#define FUNC_MUX_CTRL_3 0xfffe1010
|
||||
#define FUNC_MUX_CTRL_4 0xfffe1014
|
||||
#define FUNC_MUX_CTRL_5 0xfffe1018
|
||||
#define FUNC_MUX_CTRL_6 0xfffe101C
|
||||
#define FUNC_MUX_CTRL_7 0xfffe1020
|
||||
#define FUNC_MUX_CTRL_8 0xfffe1024
|
||||
#define FUNC_MUX_CTRL_9 0xfffe1028
|
||||
#define FUNC_MUX_CTRL_A 0xfffe102C
|
||||
#define FUNC_MUX_CTRL_B 0xfffe1030
|
||||
#define FUNC_MUX_CTRL_C 0xfffe1034
|
||||
#define FUNC_MUX_CTRL_D 0xfffe1038
|
||||
#define PULL_DWN_CTRL_0 0xfffe1040
|
||||
#define PULL_DWN_CTRL_1 0xfffe1044
|
||||
#define PULL_DWN_CTRL_2 0xfffe1048
|
||||
#define PULL_DWN_CTRL_3 0xfffe104c
|
||||
#define PULL_DWN_CTRL_4 0xfffe10ac
|
||||
|
||||
/* OMAP-1610 specific multiplexing registers */
|
||||
#define FUNC_MUX_CTRL_E 0xfffe1090
|
||||
#define FUNC_MUX_CTRL_F 0xfffe1094
|
||||
#define FUNC_MUX_CTRL_10 0xfffe1098
|
||||
#define FUNC_MUX_CTRL_11 0xfffe109c
|
||||
#define FUNC_MUX_CTRL_12 0xfffe10a0
|
||||
#define PU_PD_SEL_0 0xfffe10b4
|
||||
#define PU_PD_SEL_1 0xfffe10b8
|
||||
#define PU_PD_SEL_2 0xfffe10bc
|
||||
#define PU_PD_SEL_3 0xfffe10c0
|
||||
#define PU_PD_SEL_4 0xfffe10c4
|
||||
|
||||
/* Timer32K for 1610 and 1710*/
|
||||
#define OMAP_TIMER32K_BASE 0xFFFBC400
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------------
|
||||
* TIPB bus interface
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#define TIPB_PUBLIC_CNTL_BASE 0xfffed300
|
||||
#define MPU_PUBLIC_TIPB_CNTL (TIPB_PUBLIC_CNTL_BASE + 0x8)
|
||||
#define TIPB_PRIVATE_CNTL_BASE 0xfffeca00
|
||||
#define MPU_PRIVATE_TIPB_CNTL (TIPB_PRIVATE_CNTL_BASE + 0x8)
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* MPUI interface
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define MPUI_BASE (0xfffec900)
|
||||
#define MPUI_CTRL (MPUI_BASE + 0x0)
|
||||
#define MPUI_DEBUG_ADDR (MPUI_BASE + 0x4)
|
||||
#define MPUI_DEBUG_DATA (MPUI_BASE + 0x8)
|
||||
#define MPUI_DEBUG_FLAG (MPUI_BASE + 0xc)
|
||||
#define MPUI_STATUS_REG (MPUI_BASE + 0x10)
|
||||
#define MPUI_DSP_STATUS (MPUI_BASE + 0x14)
|
||||
#define MPUI_DSP_BOOT_CONFIG (MPUI_BASE + 0x18)
|
||||
#define MPUI_DSP_API_CONFIG (MPUI_BASE + 0x1c)
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* LED Pulse Generator
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP_LPG1_BASE 0xfffbd000
|
||||
#define OMAP_LPG2_BASE 0xfffbd800
|
||||
#define OMAP_LPG1_LCR (OMAP_LPG1_BASE + 0x00)
|
||||
#define OMAP_LPG1_PMR (OMAP_LPG1_BASE + 0x04)
|
||||
#define OMAP_LPG2_LCR (OMAP_LPG2_BASE + 0x00)
|
||||
#define OMAP_LPG2_PMR (OMAP_LPG2_BASE + 0x04)
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* Pulse-Width Light
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
#define OMAP_PWL_BASE 0xfffb5800
|
||||
#define OMAP_PWL_ENABLE (OMAP_PWL_BASE + 0x00)
|
||||
#define OMAP_PWL_CLK_ENABLE (OMAP_PWL_BASE + 0x04)
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------------------------
|
||||
* Processor specific defines
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "omap7xx.h"
|
||||
#include "omap1510.h"
|
||||
#include "omap16xx.h"
|
||||
|
||||
#endif /* __ASM_ARCH_OMAP_HARDWARE_H */
|
||||
|
@ -1,5 +1,268 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/irqs.h
|
||||
* arch/arm/plat-omap/include/mach/irqs.h
|
||||
*
|
||||
* Copyright (C) Greg Lonnon 2001
|
||||
* Updated for OMAP-1610 by Tony Lindgren <tony@atomide.com>
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments
|
||||
* Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* NOTE: The interrupt vectors for the OMAP-1509, OMAP-1510, and OMAP-1610
|
||||
* are different.
|
||||
*/
|
||||
|
||||
#include <plat/irqs.h>
|
||||
#ifndef __ASM_ARCH_OMAP15XX_IRQS_H
|
||||
#define __ASM_ARCH_OMAP15XX_IRQS_H
|
||||
|
||||
/*
|
||||
* IRQ numbers for interrupt handler 1
|
||||
*
|
||||
* NOTE: See also the OMAP-1510 and 1610 specific IRQ numbers below
|
||||
*
|
||||
*/
|
||||
#define INT_CAMERA 1
|
||||
#define INT_FIQ 3
|
||||
#define INT_RTDX 6
|
||||
#define INT_DSP_MMU_ABORT 7
|
||||
#define INT_HOST 8
|
||||
#define INT_ABORT 9
|
||||
#define INT_BRIDGE_PRIV 13
|
||||
#define INT_GPIO_BANK1 14
|
||||
#define INT_UART3 15
|
||||
#define INT_TIMER3 16
|
||||
#define INT_DMA_CH0_6 19
|
||||
#define INT_DMA_CH1_7 20
|
||||
#define INT_DMA_CH2_8 21
|
||||
#define INT_DMA_CH3 22
|
||||
#define INT_DMA_CH4 23
|
||||
#define INT_DMA_CH5 24
|
||||
#define INT_TIMER1 26
|
||||
#define INT_WD_TIMER 27
|
||||
#define INT_BRIDGE_PUB 28
|
||||
#define INT_TIMER2 30
|
||||
#define INT_LCD_CTRL 31
|
||||
|
||||
/*
|
||||
* OMAP-1510 specific IRQ numbers for interrupt handler 1
|
||||
*/
|
||||
#define INT_1510_IH2_IRQ 0
|
||||
#define INT_1510_RES2 2
|
||||
#define INT_1510_SPI_TX 4
|
||||
#define INT_1510_SPI_RX 5
|
||||
#define INT_1510_DSP_MAILBOX1 10
|
||||
#define INT_1510_DSP_MAILBOX2 11
|
||||
#define INT_1510_RES12 12
|
||||
#define INT_1510_LB_MMU 17
|
||||
#define INT_1510_RES18 18
|
||||
#define INT_1510_LOCAL_BUS 29
|
||||
|
||||
/*
|
||||
* OMAP-1610 specific IRQ numbers for interrupt handler 1
|
||||
*/
|
||||
#define INT_1610_IH2_IRQ INT_1510_IH2_IRQ
|
||||
#define INT_1610_IH2_FIQ 2
|
||||
#define INT_1610_McBSP2_TX 4
|
||||
#define INT_1610_McBSP2_RX 5
|
||||
#define INT_1610_DSP_MAILBOX1 10
|
||||
#define INT_1610_DSP_MAILBOX2 11
|
||||
#define INT_1610_LCD_LINE 12
|
||||
#define INT_1610_GPTIMER1 17
|
||||
#define INT_1610_GPTIMER2 18
|
||||
#define INT_1610_SSR_FIFO_0 29
|
||||
|
||||
/*
|
||||
* OMAP-7xx specific IRQ numbers for interrupt handler 1
|
||||
*/
|
||||
#define INT_7XX_IH2_FIQ 0
|
||||
#define INT_7XX_IH2_IRQ 1
|
||||
#define INT_7XX_USB_NON_ISO 2
|
||||
#define INT_7XX_USB_ISO 3
|
||||
#define INT_7XX_ICR 4
|
||||
#define INT_7XX_EAC 5
|
||||
#define INT_7XX_GPIO_BANK1 6
|
||||
#define INT_7XX_GPIO_BANK2 7
|
||||
#define INT_7XX_GPIO_BANK3 8
|
||||
#define INT_7XX_McBSP2TX 10
|
||||
#define INT_7XX_McBSP2RX 11
|
||||
#define INT_7XX_McBSP2RX_OVF 12
|
||||
#define INT_7XX_LCD_LINE 14
|
||||
#define INT_7XX_GSM_PROTECT 15
|
||||
#define INT_7XX_TIMER3 16
|
||||
#define INT_7XX_GPIO_BANK5 17
|
||||
#define INT_7XX_GPIO_BANK6 18
|
||||
#define INT_7XX_SPGIO_WR 29
|
||||
|
||||
/*
|
||||
* IRQ numbers for interrupt handler 2
|
||||
*
|
||||
* NOTE: See also the OMAP-1510 and 1610 specific IRQ numbers below
|
||||
*/
|
||||
#define IH2_BASE 32
|
||||
|
||||
#define INT_KEYBOARD (1 + IH2_BASE)
|
||||
#define INT_uWireTX (2 + IH2_BASE)
|
||||
#define INT_uWireRX (3 + IH2_BASE)
|
||||
#define INT_I2C (4 + IH2_BASE)
|
||||
#define INT_MPUIO (5 + IH2_BASE)
|
||||
#define INT_USB_HHC_1 (6 + IH2_BASE)
|
||||
#define INT_McBSP3TX (10 + IH2_BASE)
|
||||
#define INT_McBSP3RX (11 + IH2_BASE)
|
||||
#define INT_McBSP1TX (12 + IH2_BASE)
|
||||
#define INT_McBSP1RX (13 + IH2_BASE)
|
||||
#define INT_UART1 (14 + IH2_BASE)
|
||||
#define INT_UART2 (15 + IH2_BASE)
|
||||
#define INT_BT_MCSI1TX (16 + IH2_BASE)
|
||||
#define INT_BT_MCSI1RX (17 + IH2_BASE)
|
||||
#define INT_SOSSI_MATCH (19 + IH2_BASE)
|
||||
#define INT_USB_W2FC (20 + IH2_BASE)
|
||||
#define INT_1WIRE (21 + IH2_BASE)
|
||||
#define INT_OS_TIMER (22 + IH2_BASE)
|
||||
#define INT_MMC (23 + IH2_BASE)
|
||||
#define INT_GAUGE_32K (24 + IH2_BASE)
|
||||
#define INT_RTC_TIMER (25 + IH2_BASE)
|
||||
#define INT_RTC_ALARM (26 + IH2_BASE)
|
||||
#define INT_MEM_STICK (27 + IH2_BASE)
|
||||
|
||||
/*
|
||||
* OMAP-1510 specific IRQ numbers for interrupt handler 2
|
||||
*/
|
||||
#define INT_1510_DSP_MMU (28 + IH2_BASE)
|
||||
#define INT_1510_COM_SPI_RO (31 + IH2_BASE)
|
||||
|
||||
/*
|
||||
* OMAP-1610 specific IRQ numbers for interrupt handler 2
|
||||
*/
|
||||
#define INT_1610_FAC (0 + IH2_BASE)
|
||||
#define INT_1610_USB_HHC_2 (7 + IH2_BASE)
|
||||
#define INT_1610_USB_OTG (8 + IH2_BASE)
|
||||
#define INT_1610_SoSSI (9 + IH2_BASE)
|
||||
#define INT_1610_SoSSI_MATCH (19 + IH2_BASE)
|
||||
#define INT_1610_DSP_MMU (28 + IH2_BASE)
|
||||
#define INT_1610_McBSP2RX_OF (31 + IH2_BASE)
|
||||
#define INT_1610_STI (32 + IH2_BASE)
|
||||
#define INT_1610_STI_WAKEUP (33 + IH2_BASE)
|
||||
#define INT_1610_GPTIMER3 (34 + IH2_BASE)
|
||||
#define INT_1610_GPTIMER4 (35 + IH2_BASE)
|
||||
#define INT_1610_GPTIMER5 (36 + IH2_BASE)
|
||||
#define INT_1610_GPTIMER6 (37 + IH2_BASE)
|
||||
#define INT_1610_GPTIMER7 (38 + IH2_BASE)
|
||||
#define INT_1610_GPTIMER8 (39 + IH2_BASE)
|
||||
#define INT_1610_GPIO_BANK2 (40 + IH2_BASE)
|
||||
#define INT_1610_GPIO_BANK3 (41 + IH2_BASE)
|
||||
#define INT_1610_MMC2 (42 + IH2_BASE)
|
||||
#define INT_1610_CF (43 + IH2_BASE)
|
||||
#define INT_1610_WAKE_UP_REQ (46 + IH2_BASE)
|
||||
#define INT_1610_GPIO_BANK4 (48 + IH2_BASE)
|
||||
#define INT_1610_SPI (49 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH6 (53 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH7 (54 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH8 (55 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH9 (56 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH10 (57 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH11 (58 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH12 (59 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH13 (60 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH14 (61 + IH2_BASE)
|
||||
#define INT_1610_DMA_CH15 (62 + IH2_BASE)
|
||||
#define INT_1610_NAND (63 + IH2_BASE)
|
||||
#define INT_1610_SHA1MD5 (91 + IH2_BASE)
|
||||
|
||||
/*
|
||||
* OMAP-7xx specific IRQ numbers for interrupt handler 2
|
||||
*/
|
||||
#define INT_7XX_HW_ERRORS (0 + IH2_BASE)
|
||||
#define INT_7XX_NFIQ_PWR_FAIL (1 + IH2_BASE)
|
||||
#define INT_7XX_CFCD (2 + IH2_BASE)
|
||||
#define INT_7XX_CFIREQ (3 + IH2_BASE)
|
||||
#define INT_7XX_I2C (4 + IH2_BASE)
|
||||
#define INT_7XX_PCC (5 + IH2_BASE)
|
||||
#define INT_7XX_MPU_EXT_NIRQ (6 + IH2_BASE)
|
||||
#define INT_7XX_SPI_100K_1 (7 + IH2_BASE)
|
||||
#define INT_7XX_SYREN_SPI (8 + IH2_BASE)
|
||||
#define INT_7XX_VLYNQ (9 + IH2_BASE)
|
||||
#define INT_7XX_GPIO_BANK4 (10 + IH2_BASE)
|
||||
#define INT_7XX_McBSP1TX (11 + IH2_BASE)
|
||||
#define INT_7XX_McBSP1RX (12 + IH2_BASE)
|
||||
#define INT_7XX_McBSP1RX_OF (13 + IH2_BASE)
|
||||
#define INT_7XX_UART_MODEM_IRDA_2 (14 + IH2_BASE)
|
||||
#define INT_7XX_UART_MODEM_1 (15 + IH2_BASE)
|
||||
#define INT_7XX_MCSI (16 + IH2_BASE)
|
||||
#define INT_7XX_uWireTX (17 + IH2_BASE)
|
||||
#define INT_7XX_uWireRX (18 + IH2_BASE)
|
||||
#define INT_7XX_SMC_CD (19 + IH2_BASE)
|
||||
#define INT_7XX_SMC_IREQ (20 + IH2_BASE)
|
||||
#define INT_7XX_HDQ_1WIRE (21 + IH2_BASE)
|
||||
#define INT_7XX_TIMER32K (22 + IH2_BASE)
|
||||
#define INT_7XX_MMC_SDIO (23 + IH2_BASE)
|
||||
#define INT_7XX_UPLD (24 + IH2_BASE)
|
||||
#define INT_7XX_USB_HHC_1 (27 + IH2_BASE)
|
||||
#define INT_7XX_USB_HHC_2 (28 + IH2_BASE)
|
||||
#define INT_7XX_USB_GENI (29 + IH2_BASE)
|
||||
#define INT_7XX_USB_OTG (30 + IH2_BASE)
|
||||
#define INT_7XX_CAMERA_IF (31 + IH2_BASE)
|
||||
#define INT_7XX_RNG (32 + IH2_BASE)
|
||||
#define INT_7XX_DUAL_MODE_TIMER (33 + IH2_BASE)
|
||||
#define INT_7XX_DBB_RF_EN (34 + IH2_BASE)
|
||||
#define INT_7XX_MPUIO_KEYPAD (35 + IH2_BASE)
|
||||
#define INT_7XX_SHA1_MD5 (36 + IH2_BASE)
|
||||
#define INT_7XX_SPI_100K_2 (37 + IH2_BASE)
|
||||
#define INT_7XX_RNG_IDLE (38 + IH2_BASE)
|
||||
#define INT_7XX_MPUIO (39 + IH2_BASE)
|
||||
#define INT_7XX_LLPC_LCD_CTRL_CAN_BE_OFF (40 + IH2_BASE)
|
||||
#define INT_7XX_LLPC_OE_FALLING (41 + IH2_BASE)
|
||||
#define INT_7XX_LLPC_OE_RISING (42 + IH2_BASE)
|
||||
#define INT_7XX_LLPC_VSYNC (43 + IH2_BASE)
|
||||
#define INT_7XX_WAKE_UP_REQ (46 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH6 (53 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH7 (54 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH8 (55 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH9 (56 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH10 (57 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH11 (58 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH12 (59 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH13 (60 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH14 (61 + IH2_BASE)
|
||||
#define INT_7XX_DMA_CH15 (62 + IH2_BASE)
|
||||
#define INT_7XX_NAND (63 + IH2_BASE)
|
||||
|
||||
/* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and
|
||||
* 16 MPUIO lines */
|
||||
#define OMAP_MAX_GPIO_LINES 192
|
||||
#define IH_GPIO_BASE (128 + IH2_BASE)
|
||||
#define IH_MPUIO_BASE (OMAP_MAX_GPIO_LINES + IH_GPIO_BASE)
|
||||
#define OMAP_IRQ_END (IH_MPUIO_BASE + 16)
|
||||
|
||||
/* External FPGA handles interrupts on Innovator boards */
|
||||
#define OMAP_FPGA_IRQ_BASE (OMAP_IRQ_END)
|
||||
#ifdef CONFIG_MACH_OMAP_INNOVATOR
|
||||
#define OMAP_FPGA_NR_IRQS 24
|
||||
#else
|
||||
#define OMAP_FPGA_NR_IRQS 0
|
||||
#endif
|
||||
#define OMAP_FPGA_IRQ_END (OMAP_FPGA_IRQ_BASE + OMAP_FPGA_NR_IRQS)
|
||||
|
||||
#define NR_IRQS OMAP_FPGA_IRQ_END
|
||||
|
||||
#define OMAP_IRQ_BIT(irq) (1 << ((irq) % 32))
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#ifdef CONFIG_FIQ
|
||||
#define FIQ_START 1024
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* arch/arm/plat-omap/include/mach/omap1510.h
|
||||
*
|
||||
/*
|
||||
* Hardware definitions for TI OMAP1510 processor.
|
||||
*
|
||||
* Cleanup for Linux-2.6 by Dirk Behme <dirk.behme@de.bosch.com>
|
@ -1,5 +1,4 @@
|
||||
/* arch/arm/plat-omap/include/mach/omap16xx.h
|
||||
*
|
||||
/*
|
||||
* Hardware definitions for TI OMAP1610/5912/1710 processors.
|
||||
*
|
||||
* Cleanup for Linux-2.6 by Dirk Behme <dirk.behme@de.bosch.com>
|
@ -1,5 +1,4 @@
|
||||
/* arch/arm/plat-omap/include/mach/omap7xx.h
|
||||
*
|
||||
/*
|
||||
* Hardware definitions for TI OMAP7XX processor.
|
||||
*
|
||||
* Cleanup for Linux-2.6 by Dirk Behme <dirk.behme@de.bosch.com>
|
@ -14,6 +14,7 @@
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/leds.h>
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <asm/leds.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/fpga.h>
|
||||
|
||||
|
@ -194,6 +194,7 @@ obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2430_data.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_ipblock_data.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_interconnect_data.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_3xxx_data.o
|
||||
obj-$(CONFIG_SOC_AM33XX) += omap_hwmod_33xx_data.o
|
||||
obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o
|
||||
|
||||
# EMU peripherals
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/usb.h>
|
||||
@ -212,9 +211,6 @@ static struct regulator_init_data sdp2430_vmmc1 = {
|
||||
};
|
||||
|
||||
static struct twl4030_gpio_platform_data sdp2430_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
};
|
||||
|
||||
static struct twl4030_platform_data sdp2430_twldata = {
|
||||
@ -235,7 +231,7 @@ static int __init omap2430_i2c_init(void)
|
||||
sdp2430_i2c1_boardinfo[0].irq = gpio_to_irq(78);
|
||||
omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo,
|
||||
ARRAY_SIZE(sdp2430_i2c1_boardinfo));
|
||||
omap_pmic_init(2, 100, "twl4030", INT_24XX_SYS_NIRQ,
|
||||
omap_pmic_init(2, 100, "twl4030", 7 + OMAP_INTC_START,
|
||||
&sdp2430_twldata);
|
||||
return 0;
|
||||
}
|
||||
|
@ -25,13 +25,11 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/usb.h>
|
||||
#include "common.h"
|
||||
#include <plat/dma.h>
|
||||
@ -191,9 +189,6 @@ static struct omap_dss_board_info sdp3430_dss_data = {
|
||||
.default_device = &sdp3430_lcd_device,
|
||||
};
|
||||
|
||||
static struct omap_board_config_kernel sdp3430_config[] __initdata = {
|
||||
};
|
||||
|
||||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
@ -233,9 +228,6 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data sdp3430_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.pulldowns = BIT(2) | BIT(6) | BIT(8) | BIT(13)
|
||||
| BIT(16) | BIT(17),
|
||||
.setup = sdp3430_twl_gpio_setup,
|
||||
@ -576,8 +568,6 @@ static void __init omap_3430sdp_init(void)
|
||||
int gpio_pendown;
|
||||
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
omap_board_config = sdp3430_config;
|
||||
omap_board_config_size = ARRAY_SIZE(sdp3430_config);
|
||||
omap_hsmmc_init(mmc);
|
||||
omap3430_i2c_init();
|
||||
omap_display_init(&sdp3430_dss_data);
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
@ -67,9 +66,6 @@ static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
|
||||
.reset_gpio_port[2] = -EINVAL
|
||||
};
|
||||
|
||||
static struct omap_board_config_kernel sdp_config[] __initdata = {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
||||
@ -197,8 +193,6 @@ static struct flash_partitions sdp_flash_partitions[] = {
|
||||
static void __init omap_sdp_init(void)
|
||||
{
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBP);
|
||||
omap_board_config = sdp_config;
|
||||
omap_board_config_size = ARRAY_SIZE(sdp_config);
|
||||
zoom_peripherals_init();
|
||||
omap_sdrc_init(h8mbx00u0mer0em_sdrc_params,
|
||||
h8mbx00u0mer0em_sdrc_params);
|
||||
|
@ -28,13 +28,11 @@
|
||||
#include <linux/leds_pwm.h>
|
||||
#include <linux/platform_data/omap4-keypad.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/usb.h>
|
||||
#include <plat/mmc.h>
|
||||
@ -45,6 +43,7 @@
|
||||
#include <linux/wl12xx.h>
|
||||
#include <linux/platform_data/omap-abe-twl6040.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
#include "control.h"
|
||||
@ -544,7 +543,6 @@ static struct twl6040_platform_data twl6040_data = {
|
||||
.codec = &twl6040_codec,
|
||||
.vibra = &twl6040_vibra,
|
||||
.audpwron_gpio = 127,
|
||||
.irq_base = TWL6040_CODEC_IRQ_BASE,
|
||||
};
|
||||
|
||||
static struct twl4030_platform_data sdp4430_twldata = {
|
||||
@ -581,7 +579,7 @@ static int __init omap4_i2c_init(void)
|
||||
TWL_COMMON_REGULATOR_V1V8 |
|
||||
TWL_COMMON_REGULATOR_V2V1);
|
||||
omap4_pmic_init("twl6030", &sdp4430_twldata,
|
||||
&twl6040_data, OMAP44XX_IRQ_SYS_2N);
|
||||
&twl6040_data, 119 + OMAP44XX_IRQ_GIC_START);
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo,
|
||||
ARRAY_SIZE(sdp4430_i2c_3_boardinfo));
|
||||
|
@ -21,12 +21,10 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/usb.h>
|
||||
|
||||
@ -37,11 +35,6 @@
|
||||
#define GPIO_USB_POWER 35
|
||||
#define GPIO_USB_NRESET 38
|
||||
|
||||
|
||||
/* Board initialization */
|
||||
static struct omap_board_config_kernel am3517_crane_config[] __initdata = {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
||||
@ -67,9 +60,6 @@ static void __init am3517_crane_init(void)
|
||||
omap_serial_init();
|
||||
omap_sdrc_init(NULL, NULL);
|
||||
|
||||
omap_board_config = am3517_crane_config;
|
||||
omap_board_config_size = ARRAY_SIZE(am3517_crane_config);
|
||||
|
||||
/* Configure GPIO for EHCI port */
|
||||
if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) {
|
||||
pr_err("Can not configure mux for GPIO_USB_NRESET %d\n",
|
||||
|
@ -25,14 +25,13 @@
|
||||
#include <linux/can/platform/ti_hecc.h>
|
||||
#include <linux/davinci_emac.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/am35xx.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/usb.h>
|
||||
#include <video/omapdss.h>
|
||||
@ -296,8 +295,7 @@ static struct resource am3517_hecc_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_HECC0_IRQ,
|
||||
.end = INT_35XX_HECC0_IRQ,
|
||||
.start = 24 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
@ -324,9 +322,6 @@ static void am3517_evm_hecc_init(struct ti_hecc_platform_data *pdata)
|
||||
platform_device_register(&am3517_hecc_device);
|
||||
}
|
||||
|
||||
static struct omap_board_config_kernel am3517_evm_config[] __initdata = {
|
||||
};
|
||||
|
||||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
@ -346,8 +341,6 @@ static struct omap2_hsmmc_info mmc[] = {
|
||||
|
||||
static void __init am3517_evm_init(void)
|
||||
{
|
||||
omap_board_config = am3517_evm_config;
|
||||
omap_board_config_size = ARRAY_SIZE(am3517_evm_config);
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
|
||||
am3517_evm_i2c_init();
|
||||
|
@ -29,13 +29,11 @@
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/led.h>
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <linux/i2c/at24.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
@ -37,7 +38,6 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/nand.h>
|
||||
#include <plat/gpmc.h>
|
||||
@ -470,9 +470,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data cm_t35_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.setup = cm_t35_twl_gpio_setup,
|
||||
};
|
||||
|
||||
@ -714,13 +711,8 @@ static inline void cm_t35_init_mux(void) {}
|
||||
static inline void cm_t3730_init_mux(void) {}
|
||||
#endif
|
||||
|
||||
static struct omap_board_config_kernel cm_t35_config[] __initdata = {
|
||||
};
|
||||
|
||||
static void __init cm_t3x_common_init(void)
|
||||
{
|
||||
omap_board_config = cm_t35_config;
|
||||
omap_board_config_size = ARRAY_SIZE(cm_t35_config);
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CUS);
|
||||
omap_serial_init();
|
||||
omap_sdrc_init(mt46h32m32lf6_sdrc_params,
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/usb.h>
|
||||
#include <plat/nand.h>
|
||||
@ -90,8 +89,7 @@ static struct resource cm_t3517_hecc_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_35XX_HECC0_IRQ,
|
||||
.end = INT_35XX_HECC0_IRQ,
|
||||
.start = 24 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
@ -249,9 +247,6 @@ static void __init cm_t3517_init_nand(void)
|
||||
static inline void cm_t3517_init_nand(void) {}
|
||||
#endif
|
||||
|
||||
static struct omap_board_config_kernel cm_t3517_config[] __initdata = {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
/* GPIO186 - Green LED */
|
||||
@ -285,8 +280,6 @@ static void __init cm_t3517_init(void)
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
||||
omap_serial_init();
|
||||
omap_sdrc_init(NULL, NULL);
|
||||
omap_board_config = cm_t3517_config;
|
||||
omap_board_config_size = ARRAY_SIZE(cm_t3517_config);
|
||||
cm_t3517_init_leds();
|
||||
cm_t3517_init_nand();
|
||||
cm_t3517_init_rtc();
|
||||
|
@ -32,15 +32,12 @@
|
||||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/id.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/nand.h>
|
||||
@ -56,7 +53,6 @@
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
#include "common-board-devices.h"
|
||||
@ -236,9 +232,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data devkit8000_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.pulldowns = BIT(1) | BIT(2) | BIT(6) | BIT(8) | BIT(13)
|
||||
| BIT(15) | BIT(16) | BIT(17),
|
||||
|
@ -16,13 +16,14 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/io.h>
|
||||
#include <plat/irqs.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/tc.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "board-flash.h"
|
||||
|
||||
#define REG_FPGA_REV 0x10
|
||||
@ -140,7 +141,6 @@ __init board_nand_init(struct mtd_partition *nand_parts,
|
||||
board_nand_data.devsize = nand_type;
|
||||
|
||||
board_nand_data.ecc_opt = OMAP_ECC_HAMMING_CODE_DEFAULT;
|
||||
board_nand_data.gpmc_irq = OMAP_GPMC_IRQ_BASE + cs;
|
||||
gpmc_nand_init(&board_nand_data);
|
||||
}
|
||||
#endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */
|
||||
|
@ -16,11 +16,9 @@
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/irqdomain.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
|
@ -27,20 +27,19 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/menelaus.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/debug-devices.h>
|
||||
|
||||
#include <video/omapdss.h>
|
||||
#include <video/omap-panel-generic-dpi.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "mux.h"
|
||||
#include "control.h"
|
||||
|
||||
|
@ -29,10 +29,10 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include <video/omapdss.h>
|
||||
#include <video/omap-panel-tfp410.h>
|
||||
#include <plat/onenand.h>
|
||||
@ -425,9 +425,6 @@ static int igep_twl_gpio_setup(struct device *dev,
|
||||
};
|
||||
|
||||
static struct twl4030_gpio_platform_data igep_twl4030_gpio_pdata = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.setup = igep_twl_gpio_setup,
|
||||
};
|
||||
|
@ -29,18 +29,14 @@
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
#include <mach/board-zoom.h>
|
||||
|
||||
#include <asm/delay.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/gpmc-smsc911x.h>
|
||||
|
||||
@ -275,9 +271,6 @@ static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio)
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data ldp_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.setup = ldp_twl_gpio_setup,
|
||||
};
|
||||
|
||||
|
@ -25,14 +25,11 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/menelaus.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <plat/serial.h>
|
||||
|
||||
#include "mux.h"
|
||||
|
||||
@ -600,7 +597,7 @@ static struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
|
||||
static struct i2c_board_info __initdata n8x0_i2c_board_info_1[] __initdata = {
|
||||
{
|
||||
I2C_BOARD_INFO("menelaus", 0x72),
|
||||
.irq = INT_24XX_SYS_NIRQ,
|
||||
.irq = 7 + OMAP_INTC_START,
|
||||
.platform_data = &n8x0_menelaus_platform_data,
|
||||
},
|
||||
};
|
||||
|
@ -33,13 +33,11 @@
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <video/omapdss.h>
|
||||
#include <video/omap-panel-tfp410.h>
|
||||
@ -297,9 +295,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data beagle_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.pullups = BIT(1),
|
||||
.pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
|
||||
|
@ -40,12 +40,10 @@
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/export.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/nand.h>
|
||||
#include "common.h"
|
||||
@ -75,6 +73,18 @@
|
||||
#define OMAP3EVM_GEN1_ETHR_GPIO_RST 64
|
||||
#define OMAP3EVM_GEN2_ETHR_GPIO_RST 7
|
||||
|
||||
/*
|
||||
* OMAP35x EVM revision
|
||||
* Run time detection of EVM revision is done by reading Ethernet
|
||||
* PHY ID -
|
||||
* GEN_1 = 0x01150000
|
||||
* GEN_2 = 0x92200000
|
||||
*/
|
||||
enum {
|
||||
OMAP3EVM_BOARD_GEN_1 = 0, /* EVM Rev between A - D */
|
||||
OMAP3EVM_BOARD_GEN_2, /* EVM Rev >= Rev E */
|
||||
};
|
||||
|
||||
static u8 omap3_evm_version;
|
||||
|
||||
u8 get_omap3_evm_rev(void)
|
||||
@ -377,9 +387,6 @@ static int omap3evm_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data omap3evm_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.setup = omap3evm_twl_gpio_setup,
|
||||
};
|
||||
@ -526,9 +533,6 @@ static int __init omap3_evm_i2c_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct omap_board_config_kernel omap3_evm_config[] __initdata = {
|
||||
};
|
||||
|
||||
static struct usbhs_omap_board_data usbhs_bdata __initdata = {
|
||||
|
||||
.port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
|
||||
@ -688,9 +692,6 @@ static void __init omap3_evm_init(void)
|
||||
obm = (cpu_is_omap3630()) ? omap36x_board_mux : omap35x_board_mux;
|
||||
omap3_mux_init(obm, OMAP_PACKAGE_CBB);
|
||||
|
||||
omap_board_config = omap3_evm_config;
|
||||
omap_board_config_size = ARRAY_SIZE(omap3_evm_config);
|
||||
|
||||
omap_mux_init_gpio(63, OMAP_PIN_INPUT);
|
||||
omap_hsmmc_init(mmc);
|
||||
|
||||
|
@ -30,24 +30,21 @@
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
#include "control.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc-smsc911x.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/sdrc.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
#include "control.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
#define OMAP3LOGIC_SMSC911X_CS 1
|
||||
|
||||
#define OMAP3530_LV_SOM_MMC_GPIO_CD 110
|
||||
@ -78,9 +75,6 @@ static struct regulator_init_data omap3logic_vmmc1 = {
|
||||
};
|
||||
|
||||
static struct twl4030_gpio_platform_data omap3logic_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.pullups = BIT(1),
|
||||
.pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8)
|
||||
|
@ -40,9 +40,7 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/usb.h>
|
||||
#include <video/omapdss.h>
|
||||
@ -321,9 +319,6 @@ static int omap3pandora_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data omap3pandora_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.setup = omap3pandora_twl_gpio_setup,
|
||||
};
|
||||
|
||||
|
@ -28,14 +28,17 @@
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/i2c/at24.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/nand.h>
|
||||
@ -279,9 +282,6 @@ omap3stalker_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data omap3stalker_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.setup = omap3stalker_twl_gpio_setup,
|
||||
};
|
||||
@ -362,9 +362,6 @@ static int __init omap3_stalker_i2c_init(void)
|
||||
|
||||
#define OMAP3_STALKER_TS_GPIO 175
|
||||
|
||||
static struct omap_board_config_kernel omap3_stalker_config[] __initdata = {
|
||||
};
|
||||
|
||||
static struct platform_device *omap3_stalker_devices[] __initdata = {
|
||||
&keys_gpio,
|
||||
};
|
||||
@ -399,8 +396,6 @@ static void __init omap3_stalker_init(void)
|
||||
{
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
omap3_mux_init(board_mux, OMAP_PACKAGE_CUS);
|
||||
omap_board_config = omap3_stalker_config;
|
||||
omap_board_config_size = ARRAY_SIZE(omap3_stalker_config);
|
||||
|
||||
omap_mux_init_gpio(23, OMAP_PIN_INPUT);
|
||||
omap_hsmmc_init(mmc);
|
||||
|
@ -37,14 +37,12 @@
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/system_info.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/nand.h>
|
||||
@ -139,9 +137,6 @@ static int touchbook_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data touchbook_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.pullups = BIT(1),
|
||||
.pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
|
||||
|
@ -32,19 +32,18 @@
|
||||
#include <linux/wl12xx.h>
|
||||
#include <linux/platform_data/omap-abe-twl6040.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <video/omapdss.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/usb.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <video/omap-panel-tfp410.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "hsmmc.h"
|
||||
#include "control.h"
|
||||
#include "mux.h"
|
||||
@ -263,7 +262,6 @@ static struct twl6040_codec_data twl6040_codec = {
|
||||
static struct twl6040_platform_data twl6040_data = {
|
||||
.codec = &twl6040_codec,
|
||||
.audpwron_gpio = 127,
|
||||
.irq_base = TWL6040_CODEC_IRQ_BASE,
|
||||
};
|
||||
|
||||
/* Panda board uses the common PMIC configuration */
|
||||
@ -294,7 +292,7 @@ static int __init omap4_panda_i2c_init(void)
|
||||
TWL_COMMON_REGULATOR_V1V8 |
|
||||
TWL_COMMON_REGULATOR_V2V1);
|
||||
omap4_pmic_init("twl6030", &omap4_panda_twldata,
|
||||
&twl6040_data, OMAP44XX_IRQ_SYS_2N);
|
||||
&twl6040_data, 119 + OMAP44XX_IRQ_GIC_START);
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
/*
|
||||
* Bus 3 is attached to the DVI port where devices like the pico DLP
|
||||
|
@ -42,16 +42,13 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <video/omapdss.h>
|
||||
#include <video/omap-panel-generic-dpi.h>
|
||||
#include <video/omap-panel-tfp410.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include "mux.h"
|
||||
@ -399,9 +396,6 @@ static int overo_twl_gpio_setup(struct device *dev,
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data overo_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.use_leds = true,
|
||||
.setup = overo_twl_gpio_setup,
|
||||
};
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <plat/gpmc.h>
|
||||
#include "common.h"
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/serial.h>
|
||||
|
||||
#include "mux.h"
|
||||
#include "hsmmc.h"
|
||||
@ -72,9 +73,6 @@ static struct platform_device *rm680_peripherals_devices[] __initdata = {
|
||||
|
||||
/* TWL */
|
||||
static struct twl4030_gpio_platform_data rm680_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.pullups = BIT(0),
|
||||
.pulldowns = BIT(1) | BIT(2) | BIT(8) | BIT(15),
|
||||
};
|
||||
@ -87,7 +85,7 @@ static struct twl4030_platform_data rm680_twl_data = {
|
||||
static void __init rm680_i2c_init(void)
|
||||
{
|
||||
omap3_pmic_get_config(&rm680_twl_data, TWL_COMMON_PDATA_USB, 0);
|
||||
omap_pmic_init(1, 2900, "twl5031", INT_34XX_SYS_NIRQ, &rm680_twl_data);
|
||||
omap_pmic_init(1, 2900, "twl5031", 7 + OMAP_INTC_START, &rm680_twl_data);
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
omap_register_i2c_bus(3, 400, NULL, 0);
|
||||
}
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include <asm/system_info.h>
|
||||
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
@ -774,9 +773,6 @@ static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data rx51_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.pulldowns = BIT(0) | BIT(1) | BIT(2) | BIT(3)
|
||||
| BIT(4) | BIT(5)
|
||||
| BIT(8) | BIT(9) | BIT(10) | BIT(11)
|
||||
@ -1051,7 +1047,7 @@ static int __init rx51_i2c_init(void)
|
||||
rx51_twldata.vdac->constraints.apply_uV = true;
|
||||
rx51_twldata.vdac->constraints.name = "VDAC";
|
||||
|
||||
omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ, &rx51_twldata);
|
||||
omap_pmic_init(1, 2200, "twl5030", 7 + OMAP_INTC_START, &rx51_twldata);
|
||||
omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
|
||||
ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
|
||||
#if defined(CONFIG_SENSORS_LIS3_I2C) || defined(CONFIG_SENSORS_LIS3_I2C_MODULE)
|
||||
|
@ -18,13 +18,11 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/leds.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
@ -15,13 +15,10 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/irqs.h>
|
||||
#include <plat/board.h>
|
||||
#include "common.h"
|
||||
#include <plat/usb.h>
|
||||
|
||||
@ -32,15 +29,10 @@ static struct omap_musb_board_data musb_board_data = {
|
||||
.power = 500,
|
||||
};
|
||||
|
||||
static struct omap_board_config_kernel ti81xx_evm_config[] __initdata = {
|
||||
};
|
||||
|
||||
static void __init ti81xx_evm_init(void)
|
||||
{
|
||||
omap_serial_init();
|
||||
omap_sdrc_init(NULL, NULL);
|
||||
omap_board_config = ti81xx_evm_config;
|
||||
omap_board_config_size = ARRAY_SIZE(ti81xx_evm_config);
|
||||
usb_musb_init(&musb_board_data);
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,9 @@
|
||||
|
||||
#include <mach/board-zoom.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "common.h"
|
||||
|
||||
#define ZOOM_SMSC911X_CS 7
|
||||
#define ZOOM_SMSC911X_GPIO 158
|
||||
#define ZOOM_QUADUART_CS 3
|
||||
|
@ -18,6 +18,8 @@
|
||||
#include <video/omapdss.h>
|
||||
#include <mach/board-zoom.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#define LCD_PANEL_RESET_GPIO_PROD 96
|
||||
#define LCD_PANEL_RESET_GPIO_PILOT 55
|
||||
#define LCD_PANEL_QVGA_GPIO 56
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/wl12xx.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@ -251,9 +252,6 @@ static void zoom2_set_hs_extmute(int mute)
|
||||
}
|
||||
|
||||
static struct twl4030_gpio_platform_data zoom_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
.setup = zoom_twl_gpio_setup,
|
||||
};
|
||||
|
||||
@ -281,7 +279,7 @@ static int __init omap_i2c_init(void)
|
||||
codec_data->hs_extmute = 1;
|
||||
codec_data->set_hs_extmute = zoom2_set_hs_extmute;
|
||||
}
|
||||
omap_pmic_init(1, 2400, "twl5030", INT_34XX_SYS_NIRQ, &zoom_twldata);
|
||||
omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
omap_register_i2c_bus(3, 400, NULL, 0);
|
||||
return 0;
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <plat/board.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include <mach/board-zoom.h>
|
||||
|
@ -33,11 +33,11 @@
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/sram.h>
|
||||
#include <plat/sdrc.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clock.h"
|
||||
#include "clock2xxx.h"
|
||||
#include "opp2xxx.h"
|
||||
|
@ -22,8 +22,8 @@
|
||||
#include <asm/div64.h>
|
||||
|
||||
#include <plat/clock.h>
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clock.h"
|
||||
#include "cm-regbits-24xx.h"
|
||||
#include "cm-regbits-34xx.h"
|
||||
@ -211,7 +211,7 @@ void omap2_init_dpll_parent(struct clk *clk)
|
||||
if (v == OMAP3XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP3XXX_EN_DPLL_FRBYPASS)
|
||||
clk_reparent(clk, dd->clk_bypass);
|
||||
} else if (cpu_is_omap44xx()) {
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx()) {
|
||||
if (v == OMAP4XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_FRBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_MNBYPASS)
|
||||
@ -257,7 +257,7 @@ u32 omap2_get_dpll_rate(struct clk *clk)
|
||||
if (v == OMAP3XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP3XXX_EN_DPLL_FRBYPASS)
|
||||
return dd->clk_bypass->rate;
|
||||
} else if (cpu_is_omap44xx()) {
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx()) {
|
||||
if (v == OMAP4XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_FRBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_MNBYPASS)
|
||||
|
@ -22,14 +22,16 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <trace/events/power.h>
|
||||
|
||||
#include <asm/cpu.h>
|
||||
|
||||
#include <plat/clock.h>
|
||||
#include "clockdomain.h"
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/prcm.h>
|
||||
|
||||
#include <trace/events/power.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clockdomain.h"
|
||||
#include "clock.h"
|
||||
#include "cm2xxx_3xxx.h"
|
||||
#include "cm-regbits-24xx.h"
|
||||
|
@ -18,9 +18,9 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/list.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/clkdev_omap.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "clock.h"
|
||||
#include "clock2xxx.h"
|
||||
|
@ -21,9 +21,9 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "clock.h"
|
||||
#include "clock2xxx.h"
|
||||
|
@ -17,9 +17,9 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/list.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/clkdev_omap.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "clock.h"
|
||||
#include "clock2xxx.h"
|
||||
|
@ -22,9 +22,9 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clock.h"
|
||||
#include "clock2xxx.h"
|
||||
#include "cm.h"
|
||||
|
@ -18,8 +18,8 @@
|
||||
#include <linux/list.h>
|
||||
#include <linux/clk.h>
|
||||
#include <plat/clkdev_omap.h>
|
||||
#include <plat/am33xx.h>
|
||||
|
||||
#include "am33xx.h"
|
||||
#include "iomap.h"
|
||||
#include "control.h"
|
||||
#include "clock.h"
|
||||
@ -1027,7 +1027,9 @@ static struct omap_clk am33xx_clks[] = {
|
||||
CLK(NULL, "cefuse_fck", &cefuse_fck, CK_AM33XX),
|
||||
CLK(NULL, "clkdiv32k_ick", &clkdiv32k_ick, CK_AM33XX),
|
||||
CLK(NULL, "dcan0_fck", &dcan0_fck, CK_AM33XX),
|
||||
CLK("481cc000.d_can", NULL, &dcan0_fck, CK_AM33XX),
|
||||
CLK(NULL, "dcan1_fck", &dcan1_fck, CK_AM33XX),
|
||||
CLK("481d0000.d_can", NULL, &dcan1_fck, CK_AM33XX),
|
||||
CLK(NULL, "debugss_ick", &debugss_ick, CK_AM33XX),
|
||||
CLK(NULL, "pruss_ocp_gclk", &pruss_ocp_gclk, CK_AM33XX),
|
||||
CLK("davinci-mcasp.0", NULL, &mcasp0_fck, CK_AM33XX),
|
||||
|
@ -21,9 +21,9 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clock.h"
|
||||
#include "clock3xxx.h"
|
||||
#include "prm2xxx_3xxx.h"
|
||||
|
@ -21,9 +21,9 @@
|
||||
#include <linux/list.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/clkdev_omap.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "clock.h"
|
||||
#include "clock3xxx.h"
|
||||
|
@ -28,9 +28,9 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/clkdev_omap.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "clock.h"
|
||||
#include "clock44xx.h"
|
||||
|
@ -18,8 +18,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "common.h"
|
||||
#include "cm.h"
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/nand.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "common-board-devices.h"
|
||||
|
||||
#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
|
||||
|
@ -17,11 +17,10 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "common.h"
|
||||
#include "sdrc.h"
|
||||
|
@ -26,11 +26,18 @@
|
||||
#define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include <linux/irq.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#include <asm/proc-fns.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/serial.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#define OMAP_INTC_START NR_IRQS
|
||||
|
||||
#ifdef CONFIG_SOC_OMAP2420
|
||||
extern void omap242x_map_common_io(void);
|
||||
#else
|
||||
|
@ -15,9 +15,9 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <plat/hardware.h>
|
||||
#include <plat/sdrc.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
#include "common.h"
|
||||
#include "cm-regbits-34xx.h"
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include <mach/ctrl_module_pad_core_44xx.h>
|
||||
#include <mach/ctrl_module_pad_wkup_44xx.h>
|
||||
|
||||
#include <plat/am33xx.h>
|
||||
#include "am33xx.h"
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#define OMAP242X_CTRL_REGADDR(reg) \
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include <linux/cpu_pm.h>
|
||||
|
||||
#include <plat/prcm.h>
|
||||
#include <plat/irqs.h>
|
||||
#include "powerdomain.h"
|
||||
#include "clockdomain.h"
|
||||
|
||||
|
@ -19,18 +19,17 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_data/omap4-keypad.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include "iomap.h"
|
||||
#include <plat/board.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/omap_hwmod.h>
|
||||
#include <plat/omap_device.h>
|
||||
#include <plat/omap4-keypad.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "common.h"
|
||||
#include "mux.h"
|
||||
#include "control.h"
|
||||
#include "devices.h"
|
||||
@ -111,7 +110,7 @@ static struct resource omap2cam_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_24XX_CAM_IRQ,
|
||||
.start = 24 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
}
|
||||
};
|
||||
@ -200,7 +199,7 @@ static struct resource omap3isp_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_34XX_CAM_IRQ,
|
||||
.start = 24 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
}
|
||||
};
|
||||
@ -434,14 +433,12 @@ static inline void omap_init_mcspi(void) {}
|
||||
#endif
|
||||
|
||||
static struct resource omap2_pmu_resource = {
|
||||
.start = 3,
|
||||
.end = 3,
|
||||
.start = 3 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
};
|
||||
|
||||
static struct resource omap3_pmu_resource = {
|
||||
.start = INT_34XX_BENCH_MPU_EMUL,
|
||||
.end = INT_34XX_BENCH_MPU_EMUL,
|
||||
.start = 3 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
};
|
||||
|
||||
@ -474,7 +471,7 @@ static struct resource omap2_sham_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_24XX_SHA1MD5,
|
||||
.start = 51 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
}
|
||||
};
|
||||
@ -492,7 +489,7 @@ static struct resource omap3_sham_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = INT_34XX_SHA1MD52_IRQ,
|
||||
.start = 49 + OMAP_INTC_START,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
{
|
||||
|
@ -28,9 +28,9 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/clkdev.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clock.h"
|
||||
#include "cm2xxx_3xxx.h"
|
||||
#include "cm-regbits-34xx.h"
|
||||
@ -311,7 +311,7 @@ static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
|
||||
* Set jitter correction. No jitter correction for OMAP4 and 3630
|
||||
* since freqsel field is no longer present
|
||||
*/
|
||||
if (!cpu_is_omap44xx() && !cpu_is_omap3630()) {
|
||||
if (!soc_is_am33xx() && !cpu_is_omap44xx() && !cpu_is_omap3630()) {
|
||||
v = __raw_readl(dd->control_reg);
|
||||
v &= ~dd->freqsel_mask;
|
||||
v |= freqsel << __ffs(dd->freqsel_mask);
|
||||
@ -471,7 +471,7 @@ int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
|
||||
return -EINVAL;
|
||||
|
||||
/* No freqsel on OMAP4 and OMAP3630 */
|
||||
if (!cpu_is_omap44xx() && !cpu_is_omap3630()) {
|
||||
if (!soc_is_am33xx() && !cpu_is_omap44xx() && !cpu_is_omap3630()) {
|
||||
freqsel = _omap3_dpll_compute_freqsel(clk,
|
||||
dd->last_rounded_n);
|
||||
if (!freqsel)
|
||||
|
@ -15,9 +15,9 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "clock.h"
|
||||
#include "clock44xx.h"
|
||||
#include "cm-regbits-44xx.h"
|
||||
|
@ -21,8 +21,7 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "iomap.h"
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <plat/omap_hwmod.h>
|
||||
#include <plat/omap_device.h>
|
||||
|
@ -16,20 +16,28 @@
|
||||
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
static struct resource gpmc_nand_resource = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
#include "soc.h"
|
||||
|
||||
static struct resource gpmc_nand_resource[] = {
|
||||
{
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
{
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device gpmc_nand_device = {
|
||||
.name = "omap2-nand",
|
||||
.id = 0,
|
||||
.num_resources = 1,
|
||||
.resource = &gpmc_nand_resource,
|
||||
.num_resources = ARRAY_SIZE(gpmc_nand_resource),
|
||||
.resource = gpmc_nand_resource,
|
||||
};
|
||||
|
||||
static int omap2_nand_gpmc_retime(struct omap_nand_platform_data *gpmc_nand_data)
|
||||
@ -75,6 +83,7 @@ static int omap2_nand_gpmc_retime(struct omap_nand_platform_data *gpmc_nand_data
|
||||
gpmc_cs_configure(gpmc_nand_data->cs, GPMC_CONFIG_DEV_SIZE, 0);
|
||||
gpmc_cs_configure(gpmc_nand_data->cs,
|
||||
GPMC_CONFIG_DEV_TYPE, GPMC_DEVICETYPE_NAND);
|
||||
gpmc_cs_configure(gpmc_nand_data->cs, GPMC_CONFIG_WP, 0);
|
||||
err = gpmc_cs_set_timings(gpmc_nand_data->cs, &t);
|
||||
if (err)
|
||||
return err;
|
||||
@ -90,12 +99,19 @@ int __init gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data)
|
||||
gpmc_nand_device.dev.platform_data = gpmc_nand_data;
|
||||
|
||||
err = gpmc_cs_request(gpmc_nand_data->cs, NAND_IO_SIZE,
|
||||
&gpmc_nand_data->phys_base);
|
||||
(unsigned long *)&gpmc_nand_resource[0].start);
|
||||
if (err < 0) {
|
||||
dev_err(dev, "Cannot request GPMC CS\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
gpmc_nand_resource[0].end = gpmc_nand_resource[0].start +
|
||||
NAND_IO_SIZE - 1;
|
||||
|
||||
gpmc_nand_resource[1].start =
|
||||
gpmc_get_client_irq(GPMC_IRQ_FIFOEVENTENABLE);
|
||||
gpmc_nand_resource[2].start =
|
||||
gpmc_get_client_irq(GPMC_IRQ_COUNT_EVENT);
|
||||
/* Set timings in GPMC */
|
||||
err = omap2_nand_gpmc_retime(gpmc_nand_data);
|
||||
if (err < 0) {
|
||||
@ -108,6 +124,8 @@ int __init gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data)
|
||||
gpmc_cs_configure(gpmc_nand_data->cs, GPMC_CONFIG_RDY_BSY, 1);
|
||||
}
|
||||
|
||||
gpmc_update_nand_reg(&gpmc_nand_data->reg, gpmc_nand_data->cs);
|
||||
|
||||
err = platform_device_register(&gpmc_nand_device);
|
||||
if (err < 0) {
|
||||
dev_err(dev, "Unable to register NAND device\n");
|
||||
|
@ -18,16 +18,24 @@
|
||||
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#include "soc.h"
|
||||
|
||||
#define ONENAND_IO_SIZE SZ_128K
|
||||
|
||||
static struct omap_onenand_platform_data *gpmc_onenand_data;
|
||||
|
||||
static struct resource gpmc_onenand_resource = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
static struct platform_device gpmc_onenand_device = {
|
||||
.name = "omap2-onenand",
|
||||
.id = -1,
|
||||
.num_resources = 1,
|
||||
.resource = &gpmc_onenand_resource,
|
||||
};
|
||||
|
||||
static int omap2_onenand_set_async_mode(int cs, void __iomem *onenand_base)
|
||||
@ -390,6 +398,8 @@ static int gpmc_onenand_setup(void __iomem *onenand_base, int *freq_ptr)
|
||||
|
||||
void __init gpmc_onenand_init(struct omap_onenand_platform_data *_onenand_data)
|
||||
{
|
||||
int err;
|
||||
|
||||
gpmc_onenand_data = _onenand_data;
|
||||
gpmc_onenand_data->onenand_setup = gpmc_onenand_setup;
|
||||
gpmc_onenand_device.dev.platform_data = gpmc_onenand_data;
|
||||
@ -401,8 +411,19 @@ void __init gpmc_onenand_init(struct omap_onenand_platform_data *_onenand_data)
|
||||
gpmc_onenand_data->flags |= ONENAND_SYNC_READ;
|
||||
}
|
||||
|
||||
err = gpmc_cs_request(gpmc_onenand_data->cs, ONENAND_IO_SIZE,
|
||||
(unsigned long *)&gpmc_onenand_resource.start);
|
||||
if (err < 0) {
|
||||
pr_err("%s: Cannot request GPMC CS\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
gpmc_onenand_resource.end = gpmc_onenand_resource.start +
|
||||
ONENAND_IO_SIZE - 1;
|
||||
|
||||
if (platform_device_register(&gpmc_onenand_device) < 0) {
|
||||
printk(KERN_ERR "Unable to register OneNAND device\n");
|
||||
pr_err("%s: Unable to register OneNAND device\n", __func__);
|
||||
gpmc_cs_free(gpmc_onenand_data->cs);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,11 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/smc91x.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
|
||||
#include "soc.h"
|
||||
|
||||
static struct omap_smc91x_platform_data *gpmc_cfg;
|
||||
|
||||
static struct resource gpmc_smc91x_resources[] = {
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/smsc911x.h>
|
||||
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/gpmc-smsc911x.h>
|
||||
|
||||
|
@ -28,8 +28,13 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/sdrc.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "common.h"
|
||||
|
||||
/* GPMC register offsets */
|
||||
#define GPMC_REVISION 0x00
|
||||
#define GPMC_SYSCONFIG 0x10
|
||||
@ -78,6 +83,15 @@
|
||||
#define ENABLE_PREFETCH (0x1 << 7)
|
||||
#define DMA_MPU_MODE 2
|
||||
|
||||
/* XXX: Only NAND irq has been considered,currently these are the only ones used
|
||||
*/
|
||||
#define GPMC_NR_IRQ 2
|
||||
|
||||
struct gpmc_client_irq {
|
||||
unsigned irq;
|
||||
u32 bitmask;
|
||||
};
|
||||
|
||||
/* Structure to save gpmc cs context */
|
||||
struct gpmc_cs_config {
|
||||
u32 config1;
|
||||
@ -105,6 +119,10 @@ struct omap3_gpmc_regs {
|
||||
struct gpmc_cs_config cs_context[GPMC_CS_NUM];
|
||||
};
|
||||
|
||||
static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
|
||||
static struct irq_chip gpmc_irq_chip;
|
||||
static unsigned gpmc_irq_start;
|
||||
|
||||
static struct resource gpmc_mem_root;
|
||||
static struct resource gpmc_cs_mem[GPMC_CS_NUM];
|
||||
static DEFINE_SPINLOCK(gpmc_mem_lock);
|
||||
@ -682,6 +700,117 @@ int gpmc_prefetch_reset(int cs)
|
||||
}
|
||||
EXPORT_SYMBOL(gpmc_prefetch_reset);
|
||||
|
||||
void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs)
|
||||
{
|
||||
reg->gpmc_status = gpmc_base + GPMC_STATUS;
|
||||
reg->gpmc_nand_command = gpmc_base + GPMC_CS0_OFFSET +
|
||||
GPMC_CS_NAND_COMMAND + GPMC_CS_SIZE * cs;
|
||||
reg->gpmc_nand_address = gpmc_base + GPMC_CS0_OFFSET +
|
||||
GPMC_CS_NAND_ADDRESS + GPMC_CS_SIZE * cs;
|
||||
reg->gpmc_nand_data = gpmc_base + GPMC_CS0_OFFSET +
|
||||
GPMC_CS_NAND_DATA + GPMC_CS_SIZE * cs;
|
||||
reg->gpmc_prefetch_config1 = gpmc_base + GPMC_PREFETCH_CONFIG1;
|
||||
reg->gpmc_prefetch_config2 = gpmc_base + GPMC_PREFETCH_CONFIG2;
|
||||
reg->gpmc_prefetch_control = gpmc_base + GPMC_PREFETCH_CONTROL;
|
||||
reg->gpmc_prefetch_status = gpmc_base + GPMC_PREFETCH_STATUS;
|
||||
reg->gpmc_ecc_config = gpmc_base + GPMC_ECC_CONFIG;
|
||||
reg->gpmc_ecc_control = gpmc_base + GPMC_ECC_CONTROL;
|
||||
reg->gpmc_ecc_size_config = gpmc_base + GPMC_ECC_SIZE_CONFIG;
|
||||
reg->gpmc_ecc1_result = gpmc_base + GPMC_ECC1_RESULT;
|
||||
reg->gpmc_bch_result0 = gpmc_base + GPMC_ECC_BCH_RESULT_0;
|
||||
}
|
||||
|
||||
int gpmc_get_client_irq(unsigned irq_config)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (hweight32(irq_config) > 1)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < GPMC_NR_IRQ; i++)
|
||||
if (gpmc_client_irq[i].bitmask & irq_config)
|
||||
return gpmc_client_irq[i].irq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int gpmc_irq_endis(unsigned irq, bool endis)
|
||||
{
|
||||
int i;
|
||||
u32 regval;
|
||||
|
||||
for (i = 0; i < GPMC_NR_IRQ; i++)
|
||||
if (irq == gpmc_client_irq[i].irq) {
|
||||
regval = gpmc_read_reg(GPMC_IRQENABLE);
|
||||
if (endis)
|
||||
regval |= gpmc_client_irq[i].bitmask;
|
||||
else
|
||||
regval &= ~gpmc_client_irq[i].bitmask;
|
||||
gpmc_write_reg(GPMC_IRQENABLE, regval);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void gpmc_irq_disable(struct irq_data *p)
|
||||
{
|
||||
gpmc_irq_endis(p->irq, false);
|
||||
}
|
||||
|
||||
static void gpmc_irq_enable(struct irq_data *p)
|
||||
{
|
||||
gpmc_irq_endis(p->irq, true);
|
||||
}
|
||||
|
||||
static void gpmc_irq_noop(struct irq_data *data) { }
|
||||
|
||||
static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
|
||||
|
||||
static int gpmc_setup_irq(int gpmc_irq)
|
||||
{
|
||||
int i;
|
||||
u32 regval;
|
||||
|
||||
if (!gpmc_irq)
|
||||
return -EINVAL;
|
||||
|
||||
gpmc_irq_start = irq_alloc_descs(-1, 0, GPMC_NR_IRQ, 0);
|
||||
if (IS_ERR_VALUE(gpmc_irq_start)) {
|
||||
pr_err("irq_alloc_descs failed\n");
|
||||
return gpmc_irq_start;
|
||||
}
|
||||
|
||||
gpmc_irq_chip.name = "gpmc";
|
||||
gpmc_irq_chip.irq_startup = gpmc_irq_noop_ret;
|
||||
gpmc_irq_chip.irq_enable = gpmc_irq_enable;
|
||||
gpmc_irq_chip.irq_disable = gpmc_irq_disable;
|
||||
gpmc_irq_chip.irq_shutdown = gpmc_irq_noop;
|
||||
gpmc_irq_chip.irq_ack = gpmc_irq_noop;
|
||||
gpmc_irq_chip.irq_mask = gpmc_irq_noop;
|
||||
gpmc_irq_chip.irq_unmask = gpmc_irq_noop;
|
||||
|
||||
gpmc_client_irq[0].bitmask = GPMC_IRQ_FIFOEVENTENABLE;
|
||||
gpmc_client_irq[1].bitmask = GPMC_IRQ_COUNT_EVENT;
|
||||
|
||||
for (i = 0; i < GPMC_NR_IRQ; i++) {
|
||||
gpmc_client_irq[i].irq = gpmc_irq_start + i;
|
||||
irq_set_chip_and_handler(gpmc_client_irq[i].irq,
|
||||
&gpmc_irq_chip, handle_simple_irq);
|
||||
set_irq_flags(gpmc_client_irq[i].irq,
|
||||
IRQF_VALID | IRQF_NOAUTOEN);
|
||||
}
|
||||
|
||||
/* Disable interrupts */
|
||||
gpmc_write_reg(GPMC_IRQENABLE, 0);
|
||||
|
||||
/* clear interrupts */
|
||||
regval = gpmc_read_reg(GPMC_IRQSTATUS);
|
||||
gpmc_write_reg(GPMC_IRQSTATUS, regval);
|
||||
|
||||
return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL);
|
||||
}
|
||||
|
||||
static void __init gpmc_mem_init(void)
|
||||
{
|
||||
int cs;
|
||||
@ -711,8 +840,8 @@ static void __init gpmc_mem_init(void)
|
||||
|
||||
static int __init gpmc_init(void)
|
||||
{
|
||||
u32 l, irq;
|
||||
int cs, ret = -EINVAL;
|
||||
u32 l;
|
||||
int ret = -EINVAL;
|
||||
int gpmc_irq;
|
||||
char *ck = NULL;
|
||||
|
||||
@ -722,16 +851,16 @@ static int __init gpmc_init(void)
|
||||
l = OMAP2420_GPMC_BASE;
|
||||
else
|
||||
l = OMAP34XX_GPMC_BASE;
|
||||
gpmc_irq = INT_34XX_GPMC_IRQ;
|
||||
gpmc_irq = 20 + OMAP_INTC_START;
|
||||
} else if (cpu_is_omap34xx()) {
|
||||
ck = "gpmc_fck";
|
||||
l = OMAP34XX_GPMC_BASE;
|
||||
gpmc_irq = INT_34XX_GPMC_IRQ;
|
||||
gpmc_irq = 20 + OMAP_INTC_START;
|
||||
} else if (cpu_is_omap44xx() || soc_is_omap54xx()) {
|
||||
/* Base address and irq number are same for OMAP4/5 */
|
||||
ck = "gpmc_ck";
|
||||
l = OMAP44XX_GPMC_BASE;
|
||||
gpmc_irq = OMAP44XX_IRQ_GPMC;
|
||||
gpmc_irq = 20 + OMAP44XX_IRQ_GIC_START;
|
||||
}
|
||||
|
||||
if (WARN_ON(!ck))
|
||||
@ -761,16 +890,7 @@ static int __init gpmc_init(void)
|
||||
gpmc_write_reg(GPMC_SYSCONFIG, l);
|
||||
gpmc_mem_init();
|
||||
|
||||
/* initalize the irq_chained */
|
||||
irq = OMAP_GPMC_IRQ_BASE;
|
||||
for (cs = 0; cs < GPMC_CS_NUM; cs++) {
|
||||
irq_set_chip_and_handler(irq, &dummy_irq_chip,
|
||||
handle_simple_irq);
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
irq++;
|
||||
}
|
||||
|
||||
ret = request_irq(gpmc_irq, gpmc_handle_irq, IRQF_SHARED, "gpmc", NULL);
|
||||
ret = gpmc_setup_irq(gpmc_irq);
|
||||
if (ret)
|
||||
pr_err("gpmc: irq-%d could not claim: err %d\n",
|
||||
gpmc_irq, ret);
|
||||
@ -780,12 +900,19 @@ postcore_initcall(gpmc_init);
|
||||
|
||||
static irqreturn_t gpmc_handle_irq(int irq, void *dev)
|
||||
{
|
||||
u8 cs;
|
||||
int i;
|
||||
u32 regval;
|
||||
|
||||
/* check cs to invoke the irq */
|
||||
cs = ((gpmc_read_reg(GPMC_PREFETCH_CONFIG1)) >> CS_NUM_SHIFT) & 0x7;
|
||||
if (OMAP_GPMC_IRQ_BASE+cs <= OMAP_GPMC_IRQ_END)
|
||||
generic_handle_irq(OMAP_GPMC_IRQ_BASE+cs);
|
||||
regval = gpmc_read_reg(GPMC_IRQSTATUS);
|
||||
|
||||
if (!regval)
|
||||
return IRQ_NONE;
|
||||
|
||||
for (i = 0; i < GPMC_NR_IRQ; i++)
|
||||
if (regval & gpmc_client_irq[i].bitmask)
|
||||
generic_handle_irq(gpmc_client_irq[i].irq);
|
||||
|
||||
gpmc_write_reg(GPMC_IRQSTATUS, regval);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
@ -15,6 +15,8 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <plat/mmc.h>
|
||||
#include <plat/omap-pm.h>
|
||||
#include <plat/mux.h>
|
||||
|
@ -19,7 +19,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/i2c.h>
|
||||
#include "common.h"
|
||||
#include <plat/omap_hwmod.h>
|
||||
|
@ -22,10 +22,10 @@
|
||||
#include <asm/cputype.h>
|
||||
|
||||
#include "common.h"
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#include <mach/id.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "control.h"
|
||||
|
||||
static unsigned int omap_revision;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user