OMAP patches intended for the 3.7 merge window:
- Runtime PM conversions for the GPMC and RNG IP blocks - Preparation patches for the OMAP common clock framework conversion - clkdev alias additions required by other drivers - Performance Monitoring Unit (PMU) support for OMAP2, 3, and non-4430 OMAP4 - OMAP hwmod code and data improvements - Preparation patches for the IOMMU runtime PM conversion - Preparation patches for OMAP4 full-chip retention support Based on a merge of v3.6-rc6, the omap-cleanup-b-for-3.7 tag (7852ec0536
),the cleanup-fixes-for-v3.7 tag (de6ca33a96
), and the omap-devel-am33xx-for-v3.7 tag (11964f53eb
), due to dependencies. These patches have been tested for meaningful warnings from checkpatch, sparse, smatch, and cppcheck. Basic build, boot[1], and PM test logs are available here: http://www.pwsan.com/omap/testlogs/hwmod_prcm_clock_a_3.7/20120923173830/ ... 1. Note that the N800 boot fails due to a known issue present in the base commit: http://www.spinics.net/lists/arm-kernel/msg196034.html -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJQX6q1AAoJEMePsQ0LvSpLb8MP/1IIjwE1utMkCLQEVuBLqATB obMtowyVaRSvwNBndEeL107Za8kDcXBdbAM5/4Kig5JaGqnvpmrhV4bufwb8QaC6 PDbZHXWfkfEk5loYz5cIzcMsZihEx83uw1J5rnlkDGNH0GAjs5HUSE6eunowSQR4 +TUU483aq7W6/f6Wly3SmxgR7tG0TGSkbCGudAhBFo1tNgdeK6vvPd1x7P34uRY0 h5j0qKvAOhBCD5VtDyCgx7TMha500ZvgrelcJmZ/0zuGT/4sM8d3sfvlyQEf/wz1 y62AKOMEICScPlovJIlS2U5fmrNoel5o33f7jFjvT1tslHq6siQB3aQ1y21gFj5z sOTzYTcFWixv+p76g5ZtwC86xp4KbioGca03vytOaSYHq42lLaMcqcOY1BasGtDA M1iA+pz3qGsU0KUbek1zHLuOBXbuYUkznKYzB39u/l+2CLx3PbP5cUbsUBhb2DhN wimri7DF1G0gEm1FYgm+WNWSEz4DVWDgDC0a3RbPttRG0GFvVYCHPaB+QD/WI563 U7lY2znhMh5w0+VzDnw7FbVNBd2soj8s0fV9FoGzJzAfWZstpfUbrHwQK/rRk6VL pBmDQwbksUCUsLNH1StySBEV7qqTsvep7uFEawhFjxTAydUZ5FZVGxpZd8wMrRNW UQ9tJLelQr1Fd+BPy7IN =kEj0 -----END PGP SIGNATURE----- Merge tag 'omap-devel-b-c-2-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into devel-late OMAP patches intended for the 3.7 merge window: - Runtime PM conversions for the GPMC and RNG IP blocks - Preparation patches for the OMAP common clock framework conversion - clkdev alias additions required by other drivers - Performance Monitoring Unit (PMU) support for OMAP2, 3, and non-4430 OMAP4 - OMAP hwmod code and data improvements - Preparation patches for the IOMMU runtime PM conversion - Preparation patches for OMAP4 full-chip retention support Based on a merge of v3.6-rc6, the omap-cleanup-b-for-3.7 tag (7852ec0536
),the cleanup-fixes-for-v3.7 tag (de6ca33a96
), and the omap-devel-am33xx-for-v3.7 tag (11964f53eb
), due to dependencies. These patches have been tested for meaningful warnings from checkpatch, sparse, smatch, and cppcheck. Basic build, boot[1], and PM test logs are available here: http://www.pwsan.com/omap/testlogs/hwmod_prcm_clock_a_3.7/20120923173830/ ... 1. Note that the N800 boot fails due to a known issue present in the base commit: http://www.spinics.net/lists/arm-kernel/msg196034.html
This commit is contained in:
commit
9cd68fa707
@ -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);
|
||||
}
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <linux/i2c/tps65010.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/omapfb.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <linux/i2c/tps65010.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/omapfb.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/page.h>
|
||||
|
@ -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>
|
||||
|
||||
@ -476,8 +475,7 @@ static void __init htcherald_lcd_init(void)
|
||||
break;
|
||||
}
|
||||
if (!tries)
|
||||
printk(KERN_WARNING "Timeout waiting for end of frame "
|
||||
"-- LCD may not be available\n");
|
||||
pr_err("Timeout waiting for end of frame -- LCD may not be available\n");
|
||||
|
||||
/* turn off DMA */
|
||||
reg = omap_readw(OMAP_DMA_LCD_CCR);
|
||||
|
@ -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);
|
||||
|
@ -587,8 +587,8 @@ void omap1_clk_disable_unused(struct clk *clk)
|
||||
/* Clocks in the DSP domain need api_ck. Just assume bootloader
|
||||
* has not enabled any DSP clocks */
|
||||
if (clk->enable_reg == DSP_IDLECT2) {
|
||||
printk(KERN_INFO "Skipping reset check for DSP domain "
|
||||
"clock \"%s\"\n", clk->name);
|
||||
pr_info("Skipping reset check for DSP domain clock \"%s\"\n",
|
||||
clk->name);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
@ -776,11 +775,10 @@ static struct clk_functions omap1_clk_functions = {
|
||||
|
||||
static void __init omap1_show_rates(void)
|
||||
{
|
||||
pr_notice("Clocking rate (xtal/DPLL1/MPU): "
|
||||
"%ld.%01ld/%ld.%01ld/%ld.%01ld MHz\n",
|
||||
ck_ref.rate / 1000000, (ck_ref.rate / 100000) % 10,
|
||||
ck_dpll1.rate / 1000000, (ck_dpll1.rate / 100000) % 10,
|
||||
arm_ck.rate / 1000000, (arm_ck.rate / 100000) % 10);
|
||||
pr_notice("Clocking rate (xtal/DPLL1/MPU): %ld.%01ld/%ld.%01ld/%ld.%01ld MHz\n",
|
||||
ck_ref.rate / 1000000, (ck_ref.rate / 100000) % 10,
|
||||
ck_dpll1.rate / 1000000, (ck_dpll1.rate / 100000) % 10,
|
||||
arm_ck.rate / 1000000, (arm_ck.rate / 100000) % 10);
|
||||
}
|
||||
|
||||
u32 cpu_mask;
|
||||
@ -788,7 +786,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,19 +834,13 @@ 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)
|
||||
ck_ref.rate = 19200000;
|
||||
|
||||
pr_info("Clocks: ARM_SYSST: 0x%04x DPLL_CTL: 0x%04x ARM_CKCTL: "
|
||||
"0x%04x\n", omap_readw(ARM_SYSST), omap_readw(DPLL_CTL),
|
||||
pr_info("Clocks: ARM_SYSST: 0x%04x DPLL_CTL: 0x%04x ARM_CKCTL: 0x%04x\n",
|
||||
omap_readw(ARM_SYSST), omap_readw(DPLL_CTL),
|
||||
omap_readw(ARM_CKCTL));
|
||||
|
||||
/* We want to be in syncronous scalable mode */
|
||||
|
@ -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>
|
||||
|
||||
@ -358,6 +357,33 @@ static inline void omap_init_uwire(void) {}
|
||||
#endif
|
||||
|
||||
|
||||
#define OMAP1_RNG_BASE 0xfffe5000
|
||||
|
||||
static struct resource omap1_rng_resources[] = {
|
||||
{
|
||||
.start = OMAP1_RNG_BASE,
|
||||
.end = OMAP1_RNG_BASE + 0x4f,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device omap1_rng_device = {
|
||||
.name = "omap_rng",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(omap1_rng_resources),
|
||||
.resource = omap1_rng_resources,
|
||||
};
|
||||
|
||||
static void omap1_init_rng(void)
|
||||
{
|
||||
if (!cpu_is_omap16xx())
|
||||
return;
|
||||
|
||||
(void) platform_device_register(&omap1_rng_device);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* This gets called after board-specific INIT_MACHINE, and initializes most
|
||||
* on-chip peripherals accessible on this board (except for few like USB):
|
||||
@ -396,6 +422,7 @@ static int __init omap1_init_devices(void)
|
||||
omap_init_spi100k();
|
||||
omap_init_sti();
|
||||
omap_init_uwire();
|
||||
omap1_init_rng();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -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
|
||||
@ -330,8 +331,9 @@ static int __init omap1_system_dma_init(void)
|
||||
d->chan = kzalloc(sizeof(struct omap_dma_lch) *
|
||||
(d->lch_count), GFP_KERNEL);
|
||||
if (!d->chan) {
|
||||
dev_err(&pdev->dev, "%s: Memory allocation failed"
|
||||
"for d->chan!!!\n", __func__);
|
||||
dev_err(&pdev->dev,
|
||||
"%s: Memory allocation failed for d->chan!\n",
|
||||
__func__);
|
||||
goto exit_release_d;
|
||||
}
|
||||
|
||||
|
@ -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>
|
@ -113,8 +113,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_mirror);
|
||||
void omap_set_lcd_dma_b1_vxres(unsigned long vxres)
|
||||
{
|
||||
if (cpu_is_omap15xx()) {
|
||||
printk(KERN_ERR "DMA virtual resolution is not supported "
|
||||
"in 1510 mode\n");
|
||||
pr_err("DMA virtual resolution is not supported in 1510 mode\n");
|
||||
BUG();
|
||||
}
|
||||
lcd_dma.vxres = vxres;
|
||||
@ -437,8 +436,7 @@ static int __init omap_init_lcd_dma(void)
|
||||
r = request_irq(INT_DMA_LCD, lcd_dma_irq_handler, 0,
|
||||
"LCD DMA", NULL);
|
||||
if (r != 0)
|
||||
printk(KERN_ERR "unable to request IRQ for LCD DMA "
|
||||
"(error %d)\n", r);
|
||||
pr_err("unable to request IRQ for LCD DMA (error %d)\n", r);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
@ -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>
|
||||
@ -68,11 +69,13 @@ void h2p2_dbg_leds_event(led_event_t evt)
|
||||
gpio_set_value(GPIO_IDLE, 0);
|
||||
}
|
||||
|
||||
__raw_writew(~0, &fpga->leds);
|
||||
led_state &= ~LED_STATE_ENABLED;
|
||||
if (evt == led_halted) {
|
||||
iounmap(fpga);
|
||||
fpga = NULL;
|
||||
if (fpga) {
|
||||
__raw_writew(~0, &fpga->leds);
|
||||
if (evt == led_halted) {
|
||||
iounmap(fpga);
|
||||
fpga = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
goto done;
|
||||
@ -158,7 +161,7 @@ void h2p2_dbg_leds_event(led_event_t evt)
|
||||
/*
|
||||
* Actually burn the LEDs
|
||||
*/
|
||||
if (led_state & LED_STATE_ENABLED)
|
||||
if (led_state & LED_STATE_ENABLED && fpga)
|
||||
__raw_writew(~hw_led_state, &fpga->leds);
|
||||
|
||||
done:
|
||||
|
@ -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>
|
||||
|
||||
|
@ -141,7 +141,7 @@ static int __init omap1_dm_timer_init(void)
|
||||
|
||||
pdata->set_timer_src = omap1_dm_timer_set_src;
|
||||
pdata->timer_capability = OMAP_TIMER_ALWON |
|
||||
OMAP_TIMER_NEEDS_RESET;
|
||||
OMAP_TIMER_NEEDS_RESET | OMAP_TIMER_HAS_DSP_IRQ;
|
||||
|
||||
ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));
|
||||
if (ret) {
|
||||
|
@ -194,10 +194,12 @@ 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
|
||||
obj-$(CONFIG_OMAP3_EMU) += emu.o
|
||||
obj-$(CONFIG_HW_PERF_EVENTS) += pmu.o
|
||||
|
||||
# L3 interconnect
|
||||
obj-$(CONFIG_ARCH_OMAP3) += omap_l3_smx.o
|
||||
|
@ -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>
|
||||
|
||||
@ -204,7 +202,7 @@ static inline void __init apollon_init_smc91x(void)
|
||||
return;
|
||||
}
|
||||
|
||||
clk_enable(gpmc_fck);
|
||||
clk_prepare_enable(gpmc_fck);
|
||||
rate = clk_get_rate(gpmc_fck);
|
||||
|
||||
eth_cs = APOLLON_ETH_CS;
|
||||
@ -248,7 +246,7 @@ static inline void __init apollon_init_smc91x(void)
|
||||
gpmc_cs_free(APOLLON_ETH_CS);
|
||||
}
|
||||
out:
|
||||
clk_disable(gpmc_fck);
|
||||
clk_disable_unprepare(gpmc_fck);
|
||||
clk_put(gpmc_fck);
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
||||
@ -266,9 +265,9 @@ static inline void __init h4_init_debug(void)
|
||||
return;
|
||||
}
|
||||
|
||||
clk_enable(gpmc_fck);
|
||||
clk_prepare_enable(gpmc_fck);
|
||||
rate = clk_get_rate(gpmc_fck);
|
||||
clk_disable(gpmc_fck);
|
||||
clk_disable_unprepare(gpmc_fck);
|
||||
clk_put(gpmc_fck);
|
||||
|
||||
if (is_gpmc_muxed())
|
||||
@ -312,7 +311,7 @@ static inline void __init h4_init_debug(void)
|
||||
gpmc_cs_free(eth_cs);
|
||||
|
||||
out:
|
||||
clk_disable(gpmc_fck);
|
||||
clk_disable_unprepare(gpmc_fck);
|
||||
clk_put(gpmc_fck);
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
||||
@ -553,8 +550,8 @@ static int n8x0_auto_sleep_regulators(void)
|
||||
|
||||
ret = menelaus_set_regulator_sleep(1, val);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "Could not set regulators to sleep on "
|
||||
"menelaus: %u\n", ret);
|
||||
pr_err("Could not set regulators to sleep on menelaus: %u\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
return 0;
|
||||
@ -566,8 +563,7 @@ static int n8x0_auto_voltage_scale(void)
|
||||
|
||||
ret = menelaus_set_vcore_hw(1400, 1050);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "Could not set VCORE voltage on "
|
||||
"menelaus: %u\n", ret);
|
||||
pr_err("Could not set VCORE voltage on menelaus: %u\n", ret);
|
||||
return ret;
|
||||
}
|
||||
return 0;
|
||||
@ -600,7 +596,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"
|
||||
@ -172,7 +171,7 @@ static void __init omap4_ehci_init(void)
|
||||
return;
|
||||
}
|
||||
clk_set_rate(phy_ref_clk, 19200000);
|
||||
clk_enable(phy_ref_clk);
|
||||
clk_prepare_enable(phy_ref_clk);
|
||||
|
||||
/* disable the power to the usb hub prior to init and reset phy+hub */
|
||||
ret = gpio_request_array(panda_ehci_gpios,
|
||||
@ -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,
|
||||
};
|
||||
@ -522,8 +516,7 @@ static void __init overo_init(void)
|
||||
udelay(10);
|
||||
gpio_set_value(OVERO_GPIO_W2W_NRESET, 1);
|
||||
} else {
|
||||
printk(KERN_ERR "could not obtain gpio for "
|
||||
"OVERO_GPIO_W2W_NRESET\n");
|
||||
pr_err("could not obtain gpio for OVERO_GPIO_W2W_NRESET\n");
|
||||
}
|
||||
|
||||
ret = gpio_request_array(overo_bt_gpios, ARRAY_SIZE(overo_bt_gpios));
|
||||
@ -542,8 +535,7 @@ static void __init overo_init(void)
|
||||
if (ret == 0)
|
||||
gpio_export(OVERO_GPIO_USBH_CPEN, 0);
|
||||
else
|
||||
printk(KERN_ERR "could not obtain gpio for "
|
||||
"OVERO_GPIO_USBH_CPEN\n");
|
||||
pr_err("could not obtain gpio for OVERO_GPIO_USBH_CPEN\n");
|
||||
}
|
||||
|
||||
MACHINE_START(OVERO, "Gumstix Overo")
|
||||
|
@ -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
|
||||
@ -81,8 +84,7 @@ static inline void __init zoom_init_quaduart(void)
|
||||
quart_cs = ZOOM_QUADUART_CS;
|
||||
|
||||
if (gpmc_cs_request(quart_cs, SZ_1M, &cs_mem_base) < 0) {
|
||||
printk(KERN_ERR "Failed to request GPMC mem"
|
||||
"for Quad UART(TL16CP754C)\n");
|
||||
pr_err("Failed to request GPMC mem for Quad UART(TL16CP754C)\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -104,8 +106,8 @@ static inline int omap_zoom_debugboard_detect(void)
|
||||
|
||||
if (gpio_request_one(debug_board_detect, GPIOF_IN,
|
||||
"Zoom debug board detect") < 0) {
|
||||
printk(KERN_ERR "Failed to request GPIO%d for Zoom debug"
|
||||
"board detect\n", debug_board_detect);
|
||||
pr_err("Failed to request GPIO%d for Zoom debug board detect\n",
|
||||
debug_board_detect);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -59,7 +59,7 @@ static int omap2_clk_apll_enable(struct clk *clk, u32 status_mask)
|
||||
omap2_cm_write_mod_reg(cval, PLL_MOD, CM_CLKEN);
|
||||
|
||||
omap2_cm_wait_idlest(cm_idlest_pll, status_mask,
|
||||
OMAP24XX_CM_IDLEST_VAL, clk->name);
|
||||
OMAP24XX_CM_IDLEST_VAL, __clk_get_name(clk));
|
||||
|
||||
/*
|
||||
* REVISIT: Should we return an error code if omap2_wait_clock_ready()
|
||||
|
@ -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"
|
||||
@ -68,14 +68,15 @@ unsigned long omap2_table_mpu_recalc(struct clk *clk)
|
||||
long omap2_round_to_table_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
const struct prcm_config *ptr;
|
||||
long highest_rate;
|
||||
long highest_rate, sys_clk_rate;
|
||||
|
||||
highest_rate = -EINVAL;
|
||||
sys_clk_rate = __clk_get_rate(sclk);
|
||||
|
||||
for (ptr = rate_table; ptr->mpu_speed; ptr++) {
|
||||
if (!(ptr->flags & cpu_mask))
|
||||
continue;
|
||||
if (ptr->xtal_speed != sclk->rate)
|
||||
if (ptr->xtal_speed != sys_clk_rate)
|
||||
continue;
|
||||
|
||||
highest_rate = ptr->mpu_speed;
|
||||
@ -94,12 +95,15 @@ int omap2_select_table_rate(struct clk *clk, unsigned long rate)
|
||||
const struct prcm_config *prcm;
|
||||
unsigned long found_speed = 0;
|
||||
unsigned long flags;
|
||||
long sys_clk_rate;
|
||||
|
||||
sys_clk_rate = __clk_get_rate(sclk);
|
||||
|
||||
for (prcm = rate_table; prcm->mpu_speed; prcm++) {
|
||||
if (!(prcm->flags & cpu_mask))
|
||||
continue;
|
||||
|
||||
if (prcm->xtal_speed != sclk->rate)
|
||||
if (prcm->xtal_speed != sys_clk_rate)
|
||||
continue;
|
||||
|
||||
if (prcm->mpu_speed <= rate) {
|
||||
|
@ -56,6 +56,7 @@ int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
|
||||
struct omap_sdrc_params *sdrc_cs0;
|
||||
struct omap_sdrc_params *sdrc_cs1;
|
||||
int ret;
|
||||
unsigned long clkrate;
|
||||
|
||||
if (!clk || !rate)
|
||||
return -EINVAL;
|
||||
@ -64,11 +65,12 @@ int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
|
||||
if (validrate != rate)
|
||||
return -EINVAL;
|
||||
|
||||
sdrcrate = sdrc_ick_p->rate;
|
||||
if (rate > clk->rate)
|
||||
sdrcrate <<= ((rate / clk->rate) >> 1);
|
||||
sdrcrate = __clk_get_rate(sdrc_ick_p);
|
||||
clkrate = __clk_get_rate(clk);
|
||||
if (rate > clkrate)
|
||||
sdrcrate <<= ((rate / clkrate) >> 1);
|
||||
else
|
||||
sdrcrate >>= ((clk->rate / rate) >> 1);
|
||||
sdrcrate >>= ((clkrate / rate) >> 1);
|
||||
|
||||
ret = omap2_sdrc_get_params(sdrcrate, &sdrc_cs0, &sdrc_cs1);
|
||||
if (ret)
|
||||
@ -82,7 +84,7 @@ int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
|
||||
/*
|
||||
* XXX This only needs to be done when the CPU frequency changes
|
||||
*/
|
||||
_mpurate = arm_fck_p->rate / CYCLES_PER_MHZ;
|
||||
_mpurate = __clk_get_rate(arm_fck_p) / CYCLES_PER_MHZ;
|
||||
c = (_mpurate << SDRC_MPURATE_SCALE) >> SDRC_MPURATE_BASE_SHIFT;
|
||||
c += 1; /* for safety */
|
||||
c *= SDRC_MPURATE_LOOPS;
|
||||
@ -90,28 +92,26 @@ int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
|
||||
if (c == 0)
|
||||
c = 1;
|
||||
|
||||
pr_debug("clock: changing CORE DPLL rate from %lu to %lu\n", clk->rate,
|
||||
validrate);
|
||||
pr_debug("clock: SDRC CS0 timing params used:"
|
||||
" RFR %08x CTRLA %08x CTRLB %08x MR %08x\n",
|
||||
pr_debug("clock: changing CORE DPLL rate from %lu to %lu\n",
|
||||
clkrate, validrate);
|
||||
pr_debug("clock: SDRC CS0 timing params used: RFR %08x CTRLA %08x CTRLB %08x MR %08x\n",
|
||||
sdrc_cs0->rfr_ctrl, sdrc_cs0->actim_ctrla,
|
||||
sdrc_cs0->actim_ctrlb, sdrc_cs0->mr);
|
||||
if (sdrc_cs1)
|
||||
pr_debug("clock: SDRC CS1 timing params used: "
|
||||
" RFR %08x CTRLA %08x CTRLB %08x MR %08x\n",
|
||||
sdrc_cs1->rfr_ctrl, sdrc_cs1->actim_ctrla,
|
||||
sdrc_cs1->actim_ctrlb, sdrc_cs1->mr);
|
||||
pr_debug("clock: SDRC CS1 timing params used: RFR %08x CTRLA %08x CTRLB %08x MR %08x\n",
|
||||
sdrc_cs1->rfr_ctrl, sdrc_cs1->actim_ctrla,
|
||||
sdrc_cs1->actim_ctrlb, sdrc_cs1->mr);
|
||||
|
||||
if (sdrc_cs1)
|
||||
omap3_configure_core_dpll(
|
||||
new_div, unlock_dll, c, rate > clk->rate,
|
||||
new_div, unlock_dll, c, rate > clkrate,
|
||||
sdrc_cs0->rfr_ctrl, sdrc_cs0->actim_ctrla,
|
||||
sdrc_cs0->actim_ctrlb, sdrc_cs0->mr,
|
||||
sdrc_cs1->rfr_ctrl, sdrc_cs1->actim_ctrla,
|
||||
sdrc_cs1->actim_ctrlb, sdrc_cs1->mr);
|
||||
else
|
||||
omap3_configure_core_dpll(
|
||||
new_div, unlock_dll, c, rate > clk->rate,
|
||||
new_div, unlock_dll, c, rate > clkrate,
|
||||
sdrc_cs0->rfr_ctrl, sdrc_cs0->actim_ctrla,
|
||||
sdrc_cs0->actim_ctrlb, sdrc_cs0->mr,
|
||||
0, 0, 0, 0);
|
||||
|
@ -71,8 +71,8 @@ static const struct clksel *_get_clksel_by_parent(struct clk *clk,
|
||||
|
||||
if (!clks->parent) {
|
||||
/* This indicates a data problem */
|
||||
WARN(1, "clock: Could not find parent clock %s in clksel array "
|
||||
"of clock %s\n", src_clk->name, clk->name);
|
||||
WARN(1, "clock: %s: could not find parent clock %s in clksel array\n",
|
||||
__clk_get_name(clk), __clk_get_name(src_clk));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -126,8 +126,9 @@ static u8 _get_div_and_fieldval(struct clk *src_clk, struct clk *clk,
|
||||
|
||||
if (max_div == 0) {
|
||||
/* This indicates an error in the clksel data */
|
||||
WARN(1, "clock: Could not find divisor for clock %s parent %s"
|
||||
"\n", clk->name, src_clk->parent->name);
|
||||
WARN(1, "clock: %s: could not find divisor for parent %s\n",
|
||||
__clk_get_name(clk),
|
||||
__clk_get_name(__clk_get_parent(src_clk)));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -176,8 +177,10 @@ static u32 _clksel_to_divisor(struct clk *clk, u32 field_val)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
struct clk *parent;
|
||||
|
||||
clks = _get_clksel_by_parent(clk, clk->parent);
|
||||
parent = __clk_get_parent(clk);
|
||||
clks = _get_clksel_by_parent(clk, parent);
|
||||
if (!clks)
|
||||
return 0;
|
||||
|
||||
@ -191,8 +194,8 @@ static u32 _clksel_to_divisor(struct clk *clk, u32 field_val)
|
||||
|
||||
if (!clkr->div) {
|
||||
/* This indicates a data error */
|
||||
WARN(1, "clock: Could not find fieldval %d for clock %s parent "
|
||||
"%s\n", field_val, clk->name, clk->parent->name);
|
||||
WARN(1, "clock: %s: could not find fieldval %d for parent %s\n",
|
||||
__clk_get_name(clk), field_val, __clk_get_name(parent));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -213,11 +216,13 @@ static u32 _divisor_to_clksel(struct clk *clk, u32 div)
|
||||
{
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
struct clk *parent;
|
||||
|
||||
/* should never happen */
|
||||
WARN_ON(div == 0);
|
||||
|
||||
clks = _get_clksel_by_parent(clk, clk->parent);
|
||||
parent = __clk_get_parent(clk);
|
||||
clks = _get_clksel_by_parent(clk, parent);
|
||||
if (!clks)
|
||||
return ~0;
|
||||
|
||||
@ -230,8 +235,8 @@ static u32 _divisor_to_clksel(struct clk *clk, u32 div)
|
||||
}
|
||||
|
||||
if (!clkr->div) {
|
||||
pr_err("clock: Could not find divisor %d for clock %s parent "
|
||||
"%s\n", div, clk->name, clk->parent->name);
|
||||
pr_err("clock: %s: could not find divisor %d for parent %s\n",
|
||||
__clk_get_name(clk), div, __clk_get_name(parent));
|
||||
return ~0;
|
||||
}
|
||||
|
||||
@ -281,16 +286,23 @@ u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
u32 last_div = 0;
|
||||
struct clk *parent;
|
||||
unsigned long parent_rate;
|
||||
const char *clk_name;
|
||||
|
||||
parent = __clk_get_parent(clk);
|
||||
parent_rate = __clk_get_rate(parent);
|
||||
clk_name = __clk_get_name(clk);
|
||||
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return ~0;
|
||||
|
||||
pr_debug("clock: clksel_round_rate_div: %s target_rate %ld\n",
|
||||
clk->name, target_rate);
|
||||
clk_name, target_rate);
|
||||
|
||||
*new_div = 1;
|
||||
|
||||
clks = _get_clksel_by_parent(clk, clk->parent);
|
||||
clks = _get_clksel_by_parent(clk, parent);
|
||||
if (!clks)
|
||||
return ~0;
|
||||
|
||||
@ -300,30 +312,29 @@ u32 omap2_clksel_round_rate_div(struct clk *clk, unsigned long target_rate,
|
||||
|
||||
/* Sanity check */
|
||||
if (clkr->div <= last_div)
|
||||
pr_err("clock: clksel_rate table not sorted "
|
||||
"for clock %s", clk->name);
|
||||
pr_err("clock: %s: clksel_rate table not sorted\n",
|
||||
clk_name);
|
||||
|
||||
last_div = clkr->div;
|
||||
|
||||
test_rate = clk->parent->rate / clkr->div;
|
||||
test_rate = parent_rate / clkr->div;
|
||||
|
||||
if (test_rate <= target_rate)
|
||||
break; /* found it */
|
||||
}
|
||||
|
||||
if (!clkr->div) {
|
||||
pr_err("clock: Could not find divisor for target "
|
||||
"rate %ld for clock %s parent %s\n", target_rate,
|
||||
clk->name, clk->parent->name);
|
||||
pr_err("clock: %s: could not find divisor for target rate %ld for parent %s\n",
|
||||
clk_name, target_rate, __clk_get_name(parent));
|
||||
return ~0;
|
||||
}
|
||||
|
||||
*new_div = clkr->div;
|
||||
|
||||
pr_debug("clock: new_div = %d, new_rate = %ld\n", *new_div,
|
||||
(clk->parent->rate / clkr->div));
|
||||
(parent_rate / clkr->div));
|
||||
|
||||
return clk->parent->rate / clkr->div;
|
||||
return parent_rate / clkr->div;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -345,10 +356,15 @@ void omap2_init_clksel_parent(struct clk *clk)
|
||||
const struct clksel *clks;
|
||||
const struct clksel_rate *clkr;
|
||||
u32 r, found = 0;
|
||||
struct clk *parent;
|
||||
const char *clk_name;
|
||||
|
||||
if (!clk->clksel || !clk->clksel_mask)
|
||||
return;
|
||||
|
||||
parent = __clk_get_parent(clk);
|
||||
clk_name = __clk_get_name(clk);
|
||||
|
||||
r = __raw_readl(clk->clksel_reg) & clk->clksel_mask;
|
||||
r >>= __ffs(clk->clksel_mask);
|
||||
|
||||
@ -358,12 +374,13 @@ void omap2_init_clksel_parent(struct clk *clk)
|
||||
continue;
|
||||
|
||||
if (clkr->val == r) {
|
||||
if (clk->parent != clks->parent) {
|
||||
pr_debug("clock: inited %s parent "
|
||||
"to %s (was %s)\n",
|
||||
clk->name, clks->parent->name,
|
||||
((clk->parent) ?
|
||||
clk->parent->name : "NULL"));
|
||||
if (parent != clks->parent) {
|
||||
pr_debug("clock: %s: inited parent to %s (was %s)\n",
|
||||
clk_name,
|
||||
__clk_get_name(clks->parent),
|
||||
((parent) ?
|
||||
__clk_get_name(parent) :
|
||||
"NULL"));
|
||||
clk_reparent(clk, clks->parent);
|
||||
};
|
||||
found = 1;
|
||||
@ -373,7 +390,7 @@ void omap2_init_clksel_parent(struct clk *clk)
|
||||
|
||||
/* This indicates a data error */
|
||||
WARN(!found, "clock: %s: init parent: could not find regval %0x\n",
|
||||
clk->name, r);
|
||||
clk_name, r);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -391,15 +408,17 @@ unsigned long omap2_clksel_recalc(struct clk *clk)
|
||||
{
|
||||
unsigned long rate;
|
||||
u32 div = 0;
|
||||
struct clk *parent;
|
||||
|
||||
div = _read_divisor(clk);
|
||||
if (div == 0)
|
||||
return clk->rate;
|
||||
return __clk_get_rate(clk);
|
||||
|
||||
rate = clk->parent->rate / div;
|
||||
parent = __clk_get_parent(clk);
|
||||
rate = __clk_get_rate(parent) / div;
|
||||
|
||||
pr_debug("clock: %s: recalc'd rate is %ld (div %d)\n", clk->name,
|
||||
rate, div);
|
||||
pr_debug("clock: %s: recalc'd rate is %ld (div %d)\n",
|
||||
__clk_get_name(clk), rate, div);
|
||||
|
||||
return rate;
|
||||
}
|
||||
@ -454,9 +473,10 @@ int omap2_clksel_set_rate(struct clk *clk, unsigned long rate)
|
||||
|
||||
_write_clksel_reg(clk, field_val);
|
||||
|
||||
clk->rate = clk->parent->rate / new_div;
|
||||
clk->rate = __clk_get_rate(__clk_get_parent(clk)) / new_div;
|
||||
|
||||
pr_debug("clock: %s: set rate to %ld\n", clk->name, clk->rate);
|
||||
pr_debug("clock: %s: set rate to %ld\n", __clk_get_name(clk),
|
||||
__clk_get_rate(clk));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -498,13 +518,15 @@ int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent)
|
||||
clk_reparent(clk, new_parent);
|
||||
|
||||
/* CLKSEL clocks follow their parents' rates, divided by a divisor */
|
||||
clk->rate = new_parent->rate;
|
||||
clk->rate = __clk_get_rate(new_parent);
|
||||
|
||||
if (parent_div > 0)
|
||||
clk->rate /= parent_div;
|
||||
__clk_get_rate(clk) /= parent_div;
|
||||
|
||||
pr_debug("clock: %s: set parent to %s (new rate %ld)\n",
|
||||
clk->name, clk->parent->name, clk->rate);
|
||||
__clk_get_name(clk),
|
||||
__clk_get_name(__clk_get_parent(clk)),
|
||||
__clk_get_rate(clk));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -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"
|
||||
@ -87,7 +87,7 @@ static int _dpll_test_fint(struct clk *clk, u8 n)
|
||||
dd = clk->dpll_data;
|
||||
|
||||
/* DPLL divider must result in a valid jitter correction val */
|
||||
fint = clk->parent->rate / n;
|
||||
fint = __clk_get_rate(__clk_get_parent(clk)) / n;
|
||||
|
||||
if (cpu_is_omap24xx()) {
|
||||
/* Should not be called for OMAP2, so warn if it is called */
|
||||
@ -105,13 +105,13 @@ static int _dpll_test_fint(struct clk *clk, u8 n)
|
||||
}
|
||||
|
||||
if (fint < fint_min) {
|
||||
pr_debug("rejecting n=%d due to Fint failure, "
|
||||
"lowering max_divider\n", n);
|
||||
pr_debug("rejecting n=%d due to Fint failure, lowering max_divider\n",
|
||||
n);
|
||||
dd->max_divider = n;
|
||||
ret = DPLL_FINT_UNDERFLOW;
|
||||
} else if (fint > fint_max) {
|
||||
pr_debug("rejecting n=%d due to Fint failure, "
|
||||
"boosting min_divider\n", n);
|
||||
pr_debug("rejecting n=%d due to Fint failure, boosting min_divider\n",
|
||||
n);
|
||||
dd->min_divider = n;
|
||||
ret = DPLL_FINT_INVALID;
|
||||
} else if (cpu_is_omap3430() && fint > OMAP3430_DPLL_FINT_BAND1_MAX &&
|
||||
@ -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)
|
||||
@ -252,16 +252,16 @@ u32 omap2_get_dpll_rate(struct clk *clk)
|
||||
if (cpu_is_omap24xx()) {
|
||||
if (v == OMAP2XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP2XXX_EN_DPLL_FRBYPASS)
|
||||
return dd->clk_bypass->rate;
|
||||
return __clk_get_rate(dd->clk_bypass);
|
||||
} else if (cpu_is_omap34xx()) {
|
||||
if (v == OMAP3XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP3XXX_EN_DPLL_FRBYPASS)
|
||||
return dd->clk_bypass->rate;
|
||||
} else if (cpu_is_omap44xx()) {
|
||||
return __clk_get_rate(dd->clk_bypass);
|
||||
} else if (soc_is_am33xx() || cpu_is_omap44xx()) {
|
||||
if (v == OMAP4XXX_EN_DPLL_LPBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_FRBYPASS ||
|
||||
v == OMAP4XXX_EN_DPLL_MNBYPASS)
|
||||
return dd->clk_bypass->rate;
|
||||
return __clk_get_rate(dd->clk_bypass);
|
||||
}
|
||||
|
||||
v = __raw_readl(dd->mult_div1_reg);
|
||||
@ -270,7 +270,7 @@ u32 omap2_get_dpll_rate(struct clk *clk)
|
||||
dpll_div = v & dd->div1_mask;
|
||||
dpll_div >>= __ffs(dd->div1_mask);
|
||||
|
||||
dpll_clk = (long long)dd->clk_ref->rate * dpll_mult;
|
||||
dpll_clk = (long long) __clk_get_rate(dd->clk_ref) * dpll_mult;
|
||||
do_div(dpll_clk, dpll_div + 1);
|
||||
|
||||
return dpll_clk;
|
||||
@ -296,16 +296,20 @@ long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate)
|
||||
unsigned long scaled_rt_rp;
|
||||
unsigned long new_rate = 0;
|
||||
struct dpll_data *dd;
|
||||
unsigned long ref_rate;
|
||||
const char *clk_name;
|
||||
|
||||
if (!clk || !clk->dpll_data)
|
||||
return ~0;
|
||||
|
||||
dd = clk->dpll_data;
|
||||
|
||||
ref_rate = __clk_get_rate(dd->clk_ref);
|
||||
clk_name = __clk_get_name(clk);
|
||||
pr_debug("clock: %s: starting DPLL round_rate, target rate %ld\n",
|
||||
clk->name, target_rate);
|
||||
clk_name, target_rate);
|
||||
|
||||
scaled_rt_rp = target_rate / (dd->clk_ref->rate / DPLL_SCALE_FACTOR);
|
||||
scaled_rt_rp = target_rate / (ref_rate / DPLL_SCALE_FACTOR);
|
||||
scaled_max_m = dd->max_multiplier * DPLL_SCALE_FACTOR;
|
||||
|
||||
dd->last_rounded_rate = 0;
|
||||
@ -332,14 +336,14 @@ long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate)
|
||||
break;
|
||||
|
||||
r = _dpll_test_mult(&m, n, &new_rate, target_rate,
|
||||
dd->clk_ref->rate);
|
||||
ref_rate);
|
||||
|
||||
/* m can't be set low enough for this n - try with a larger n */
|
||||
if (r == DPLL_MULT_UNDERFLOW)
|
||||
continue;
|
||||
|
||||
pr_debug("clock: %s: m = %d: n = %d: new_rate = %ld\n",
|
||||
clk->name, m, n, new_rate);
|
||||
clk_name, m, n, new_rate);
|
||||
|
||||
if (target_rate == new_rate) {
|
||||
dd->last_rounded_m = m;
|
||||
@ -350,8 +354,8 @@ long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate)
|
||||
}
|
||||
|
||||
if (target_rate != new_rate) {
|
||||
pr_debug("clock: %s: cannot round to rate %ld\n", clk->name,
|
||||
target_rate);
|
||||
pr_debug("clock: %s: cannot round to rate %ld\n",
|
||||
clk_name, target_rate);
|
||||
return ~0;
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
@ -76,7 +78,7 @@ static void _omap2_module_wait_ready(struct clk *clk)
|
||||
clk->ops->find_idlest(clk, &idlest_reg, &idlest_bit, &idlest_val);
|
||||
|
||||
omap2_cm_wait_idlest(idlest_reg, (1 << idlest_bit), idlest_val,
|
||||
clk->name);
|
||||
__clk_get_name(clk));
|
||||
}
|
||||
|
||||
/* Public functions */
|
||||
@ -92,18 +94,21 @@ static void _omap2_module_wait_ready(struct clk *clk)
|
||||
void omap2_init_clk_clkdm(struct clk *clk)
|
||||
{
|
||||
struct clockdomain *clkdm;
|
||||
const char *clk_name;
|
||||
|
||||
if (!clk->clkdm_name)
|
||||
return;
|
||||
|
||||
clk_name = __clk_get_name(clk);
|
||||
|
||||
clkdm = clkdm_lookup(clk->clkdm_name);
|
||||
if (clkdm) {
|
||||
pr_debug("clock: associated clk %s to clkdm %s\n",
|
||||
clk->name, clk->clkdm_name);
|
||||
clk_name, clk->clkdm_name);
|
||||
clk->clkdm = clkdm;
|
||||
} else {
|
||||
pr_debug("clock: could not associate clk %s to "
|
||||
"clkdm %s\n", clk->name, clk->clkdm_name);
|
||||
pr_debug("clock: could not associate clk %s to clkdm %s\n",
|
||||
clk_name, clk->clkdm_name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,8 +231,7 @@ void omap2_dflt_clk_disable(struct clk *clk)
|
||||
* 'Independent' here refers to a clock which is not
|
||||
* controlled by its parent.
|
||||
*/
|
||||
printk(KERN_ERR "clock: clk_disable called on independent "
|
||||
"clock %s which has no enable_reg\n", clk->name);
|
||||
pr_err("clock: clk_disable called on independent clock %s which has no enable_reg\n", clk->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -270,8 +274,7 @@ const struct clkops clkops_omap2_dflt = {
|
||||
void omap2_clk_disable(struct clk *clk)
|
||||
{
|
||||
if (clk->usecount == 0) {
|
||||
WARN(1, "clock: %s: omap2_clk_disable() called, but usecount "
|
||||
"already 0?", clk->name);
|
||||
WARN(1, "clock: %s: omap2_clk_disable() called, but usecount already 0?", clk->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -332,8 +335,8 @@ int omap2_clk_enable(struct clk *clk)
|
||||
if (clkdm_control && clk->clkdm) {
|
||||
ret = clkdm_clk_enable(clk->clkdm, clk);
|
||||
if (ret) {
|
||||
WARN(1, "clock: %s: could not enable clockdomain %s: "
|
||||
"%d\n", clk->name, clk->clkdm->name, ret);
|
||||
WARN(1, "clock: %s: could not enable clockdomain %s: %d\n",
|
||||
clk->name, clk->clkdm->name, ret);
|
||||
goto oce_err2;
|
||||
}
|
||||
}
|
||||
@ -501,10 +504,8 @@ void __init omap2_clk_print_new_rates(const char *hfclkin_ck_name,
|
||||
|
||||
hfclkin_rate = clk_get_rate(hfclkin_ck);
|
||||
|
||||
pr_info("Switched to new clocking rate (Crystal/Core/MPU): "
|
||||
"%ld.%01ld/%ld/%ld MHz\n",
|
||||
(hfclkin_rate / 1000000),
|
||||
((hfclkin_rate / 100000) % 10),
|
||||
pr_info("Switched to new clocking rate (Crystal/Core/MPU): %ld.%01ld/%ld/%ld MHz\n",
|
||||
(hfclkin_rate / 1000000), ((hfclkin_rate / 100000) % 10),
|
||||
(clk_get_rate(core_ck) / 1000000),
|
||||
(clk_get_rate(mpu_ck) / 1000000));
|
||||
}
|
||||
|
@ -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"
|
||||
@ -1804,6 +1804,7 @@ static struct omap_clk omap2420_clks[] = {
|
||||
CLK(NULL, "gfx_ick", &gfx_ick, CK_242X),
|
||||
/* DSS domain clocks */
|
||||
CLK("omapdss_dss", "ick", &dss_ick, CK_242X),
|
||||
CLK(NULL, "dss_ick", &dss_ick, CK_242X),
|
||||
CLK(NULL, "dss1_fck", &dss1_fck, CK_242X),
|
||||
CLK(NULL, "dss2_fck", &dss2_fck, CK_242X),
|
||||
CLK(NULL, "dss_54m_fck", &dss_54m_fck, CK_242X),
|
||||
@ -1843,12 +1844,16 @@ static struct omap_clk omap2420_clks[] = {
|
||||
CLK(NULL, "gpt12_ick", &gpt12_ick, CK_242X),
|
||||
CLK(NULL, "gpt12_fck", &gpt12_fck, CK_242X),
|
||||
CLK("omap-mcbsp.1", "ick", &mcbsp1_ick, CK_242X),
|
||||
CLK(NULL, "mcbsp1_ick", &mcbsp1_ick, CK_242X),
|
||||
CLK(NULL, "mcbsp1_fck", &mcbsp1_fck, CK_242X),
|
||||
CLK("omap-mcbsp.2", "ick", &mcbsp2_ick, CK_242X),
|
||||
CLK(NULL, "mcbsp2_ick", &mcbsp2_ick, CK_242X),
|
||||
CLK(NULL, "mcbsp2_fck", &mcbsp2_fck, CK_242X),
|
||||
CLK("omap2_mcspi.1", "ick", &mcspi1_ick, CK_242X),
|
||||
CLK(NULL, "mcspi1_ick", &mcspi1_ick, CK_242X),
|
||||
CLK(NULL, "mcspi1_fck", &mcspi1_fck, CK_242X),
|
||||
CLK("omap2_mcspi.2", "ick", &mcspi2_ick, CK_242X),
|
||||
CLK(NULL, "mcspi2_ick", &mcspi2_ick, CK_242X),
|
||||
CLK(NULL, "mcspi2_fck", &mcspi2_fck, CK_242X),
|
||||
CLK(NULL, "uart1_ick", &uart1_ick, CK_242X),
|
||||
CLK(NULL, "uart1_fck", &uart1_fck, CK_242X),
|
||||
@ -1859,12 +1864,15 @@ static struct omap_clk omap2420_clks[] = {
|
||||
CLK(NULL, "gpios_ick", &gpios_ick, CK_242X),
|
||||
CLK(NULL, "gpios_fck", &gpios_fck, CK_242X),
|
||||
CLK("omap_wdt", "ick", &mpu_wdt_ick, CK_242X),
|
||||
CLK(NULL, "mpu_wdt_ick", &mpu_wdt_ick, CK_242X),
|
||||
CLK(NULL, "mpu_wdt_fck", &mpu_wdt_fck, CK_242X),
|
||||
CLK(NULL, "sync_32k_ick", &sync_32k_ick, CK_242X),
|
||||
CLK(NULL, "wdt1_ick", &wdt1_ick, CK_242X),
|
||||
CLK(NULL, "omapctrl_ick", &omapctrl_ick, CK_242X),
|
||||
CLK("omap24xxcam", "fck", &cam_fck, CK_242X),
|
||||
CLK(NULL, "cam_fck", &cam_fck, CK_242X),
|
||||
CLK("omap24xxcam", "ick", &cam_ick, CK_242X),
|
||||
CLK(NULL, "cam_ick", &cam_ick, CK_242X),
|
||||
CLK(NULL, "mailboxes_ick", &mailboxes_ick, CK_242X),
|
||||
CLK(NULL, "wdt4_ick", &wdt4_ick, CK_242X),
|
||||
CLK(NULL, "wdt4_fck", &wdt4_fck, CK_242X),
|
||||
@ -1873,16 +1881,22 @@ static struct omap_clk omap2420_clks[] = {
|
||||
CLK(NULL, "mspro_ick", &mspro_ick, CK_242X),
|
||||
CLK(NULL, "mspro_fck", &mspro_fck, CK_242X),
|
||||
CLK("mmci-omap.0", "ick", &mmc_ick, CK_242X),
|
||||
CLK(NULL, "mmc_ick", &mmc_ick, CK_242X),
|
||||
CLK("mmci-omap.0", "fck", &mmc_fck, CK_242X),
|
||||
CLK(NULL, "mmc_fck", &mmc_fck, CK_242X),
|
||||
CLK(NULL, "fac_ick", &fac_ick, CK_242X),
|
||||
CLK(NULL, "fac_fck", &fac_fck, CK_242X),
|
||||
CLK(NULL, "eac_ick", &eac_ick, CK_242X),
|
||||
CLK(NULL, "eac_fck", &eac_fck, CK_242X),
|
||||
CLK("omap_hdq.0", "ick", &hdq_ick, CK_242X),
|
||||
CLK(NULL, "hdq_ick", &hdq_ick, CK_242X),
|
||||
CLK("omap_hdq.0", "fck", &hdq_fck, CK_242X),
|
||||
CLK(NULL, "hdq_fck", &hdq_fck, CK_242X),
|
||||
CLK("omap_i2c.1", "ick", &i2c1_ick, CK_242X),
|
||||
CLK(NULL, "i2c1_ick", &i2c1_ick, CK_242X),
|
||||
CLK(NULL, "i2c1_fck", &i2c1_fck, CK_242X),
|
||||
CLK("omap_i2c.2", "ick", &i2c2_ick, CK_242X),
|
||||
CLK(NULL, "i2c2_ick", &i2c2_ick, CK_242X),
|
||||
CLK(NULL, "i2c2_fck", &i2c2_fck, CK_242X),
|
||||
CLK(NULL, "gpmc_fck", &gpmc_fck, CK_242X),
|
||||
CLK(NULL, "sdma_fck", &sdma_fck, CK_242X),
|
||||
@ -1892,14 +1906,18 @@ static struct omap_clk omap2420_clks[] = {
|
||||
CLK(NULL, "vlynq_fck", &vlynq_fck, CK_242X),
|
||||
CLK(NULL, "des_ick", &des_ick, CK_242X),
|
||||
CLK("omap-sham", "ick", &sha_ick, CK_242X),
|
||||
CLK(NULL, "sha_ick", &sha_ick, CK_242X),
|
||||
CLK("omap_rng", "ick", &rng_ick, CK_242X),
|
||||
CLK(NULL, "rng_ick", &rng_ick, CK_242X),
|
||||
CLK("omap-aes", "ick", &aes_ick, CK_242X),
|
||||
CLK(NULL, "aes_ick", &aes_ick, CK_242X),
|
||||
CLK(NULL, "pka_ick", &pka_ick, CK_242X),
|
||||
CLK(NULL, "usb_fck", &usb_fck, CK_242X),
|
||||
CLK("musb-hdrc", "fck", &osc_ck, CK_242X),
|
||||
CLK(NULL, "timer_32k_ck", &func_32k_ck, CK_243X),
|
||||
CLK(NULL, "timer_sys_ck", &sys_ck, CK_243X),
|
||||
CLK(NULL, "timer_ext_ck", &alt_ck, CK_243X),
|
||||
CLK(NULL, "timer_32k_ck", &func_32k_ck, CK_242X),
|
||||
CLK(NULL, "timer_sys_ck", &sys_ck, CK_242X),
|
||||
CLK(NULL, "timer_ext_ck", &alt_ck, CK_242X),
|
||||
CLK(NULL, "cpufreq_ck", &virt_prcm_set, CK_242X),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -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"
|
||||
@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {
|
||||
CLK(NULL, "func_32k_ck", &func_32k_ck, CK_243X),
|
||||
CLK(NULL, "secure_32k_ck", &secure_32k_ck, CK_243X),
|
||||
CLK(NULL, "osc_ck", &osc_ck, CK_243X),
|
||||
CLK("twl", "fck", &osc_ck, CK_243X),
|
||||
CLK(NULL, "sys_ck", &sys_ck, CK_243X),
|
||||
CLK(NULL, "alt_ck", &alt_ck, CK_243X),
|
||||
CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_243X),
|
||||
@ -1887,6 +1888,7 @@ static struct omap_clk omap2430_clks[] = {
|
||||
CLK(NULL, "mdm_osc_ck", &mdm_osc_ck, CK_243X),
|
||||
/* DSS domain clocks */
|
||||
CLK("omapdss_dss", "ick", &dss_ick, CK_243X),
|
||||
CLK(NULL, "dss_ick", &dss_ick, CK_243X),
|
||||
CLK(NULL, "dss1_fck", &dss1_fck, CK_243X),
|
||||
CLK(NULL, "dss2_fck", &dss2_fck, CK_243X),
|
||||
CLK(NULL, "dss_54m_fck", &dss_54m_fck, CK_243X),
|
||||
@ -1926,20 +1928,28 @@ static struct omap_clk omap2430_clks[] = {
|
||||
CLK(NULL, "gpt12_ick", &gpt12_ick, CK_243X),
|
||||
CLK(NULL, "gpt12_fck", &gpt12_fck, CK_243X),
|
||||
CLK("omap-mcbsp.1", "ick", &mcbsp1_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp1_ick", &mcbsp1_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp1_fck", &mcbsp1_fck, CK_243X),
|
||||
CLK("omap-mcbsp.2", "ick", &mcbsp2_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp2_ick", &mcbsp2_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp2_fck", &mcbsp2_fck, CK_243X),
|
||||
CLK("omap-mcbsp.3", "ick", &mcbsp3_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp3_ick", &mcbsp3_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp3_fck", &mcbsp3_fck, CK_243X),
|
||||
CLK("omap-mcbsp.4", "ick", &mcbsp4_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp4_ick", &mcbsp4_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp4_fck", &mcbsp4_fck, CK_243X),
|
||||
CLK("omap-mcbsp.5", "ick", &mcbsp5_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp5_ick", &mcbsp5_ick, CK_243X),
|
||||
CLK(NULL, "mcbsp5_fck", &mcbsp5_fck, CK_243X),
|
||||
CLK("omap2_mcspi.1", "ick", &mcspi1_ick, CK_243X),
|
||||
CLK(NULL, "mcspi1_ick", &mcspi1_ick, CK_243X),
|
||||
CLK(NULL, "mcspi1_fck", &mcspi1_fck, CK_243X),
|
||||
CLK("omap2_mcspi.2", "ick", &mcspi2_ick, CK_243X),
|
||||
CLK(NULL, "mcspi2_ick", &mcspi2_ick, CK_243X),
|
||||
CLK(NULL, "mcspi2_fck", &mcspi2_fck, CK_243X),
|
||||
CLK("omap2_mcspi.3", "ick", &mcspi3_ick, CK_243X),
|
||||
CLK(NULL, "mcspi3_ick", &mcspi3_ick, CK_243X),
|
||||
CLK(NULL, "mcspi3_fck", &mcspi3_fck, CK_243X),
|
||||
CLK(NULL, "uart1_ick", &uart1_ick, CK_243X),
|
||||
CLK(NULL, "uart1_fck", &uart1_fck, CK_243X),
|
||||
@ -1950,13 +1960,16 @@ static struct omap_clk omap2430_clks[] = {
|
||||
CLK(NULL, "gpios_ick", &gpios_ick, CK_243X),
|
||||
CLK(NULL, "gpios_fck", &gpios_fck, CK_243X),
|
||||
CLK("omap_wdt", "ick", &mpu_wdt_ick, CK_243X),
|
||||
CLK(NULL, "mpu_wdt_ick", &mpu_wdt_ick, CK_243X),
|
||||
CLK(NULL, "mpu_wdt_fck", &mpu_wdt_fck, CK_243X),
|
||||
CLK(NULL, "sync_32k_ick", &sync_32k_ick, CK_243X),
|
||||
CLK(NULL, "wdt1_ick", &wdt1_ick, CK_243X),
|
||||
CLK(NULL, "omapctrl_ick", &omapctrl_ick, CK_243X),
|
||||
CLK(NULL, "icr_ick", &icr_ick, CK_243X),
|
||||
CLK("omap24xxcam", "fck", &cam_fck, CK_243X),
|
||||
CLK(NULL, "cam_fck", &cam_fck, CK_243X),
|
||||
CLK("omap24xxcam", "ick", &cam_ick, CK_243X),
|
||||
CLK(NULL, "cam_ick", &cam_ick, CK_243X),
|
||||
CLK(NULL, "mailboxes_ick", &mailboxes_ick, CK_243X),
|
||||
CLK(NULL, "wdt4_ick", &wdt4_ick, CK_243X),
|
||||
CLK(NULL, "wdt4_fck", &wdt4_fck, CK_243X),
|
||||
@ -1965,10 +1978,14 @@ static struct omap_clk omap2430_clks[] = {
|
||||
CLK(NULL, "fac_ick", &fac_ick, CK_243X),
|
||||
CLK(NULL, "fac_fck", &fac_fck, CK_243X),
|
||||
CLK("omap_hdq.0", "ick", &hdq_ick, CK_243X),
|
||||
CLK(NULL, "hdq_ick", &hdq_ick, CK_243X),
|
||||
CLK("omap_hdq.1", "fck", &hdq_fck, CK_243X),
|
||||
CLK(NULL, "hdq_fck", &hdq_fck, CK_243X),
|
||||
CLK("omap_i2c.1", "ick", &i2c1_ick, CK_243X),
|
||||
CLK(NULL, "i2c1_ick", &i2c1_ick, CK_243X),
|
||||
CLK(NULL, "i2chs1_fck", &i2chs1_fck, CK_243X),
|
||||
CLK("omap_i2c.2", "ick", &i2c2_ick, CK_243X),
|
||||
CLK(NULL, "i2c2_ick", &i2c2_ick, CK_243X),
|
||||
CLK(NULL, "i2chs2_fck", &i2chs2_fck, CK_243X),
|
||||
CLK(NULL, "gpmc_fck", &gpmc_fck, CK_243X),
|
||||
CLK(NULL, "sdma_fck", &sdma_fck, CK_243X),
|
||||
@ -1977,22 +1994,29 @@ static struct omap_clk omap2430_clks[] = {
|
||||
CLK(NULL, "des_ick", &des_ick, CK_243X),
|
||||
CLK("omap-sham", "ick", &sha_ick, CK_243X),
|
||||
CLK("omap_rng", "ick", &rng_ick, CK_243X),
|
||||
CLK(NULL, "rng_ick", &rng_ick, CK_243X),
|
||||
CLK("omap-aes", "ick", &aes_ick, CK_243X),
|
||||
CLK(NULL, "pka_ick", &pka_ick, CK_243X),
|
||||
CLK(NULL, "usb_fck", &usb_fck, CK_243X),
|
||||
CLK("musb-omap2430", "ick", &usbhs_ick, CK_243X),
|
||||
CLK(NULL, "usbhs_ick", &usbhs_ick, CK_243X),
|
||||
CLK("omap_hsmmc.0", "ick", &mmchs1_ick, CK_243X),
|
||||
CLK(NULL, "mmchs1_ick", &mmchs1_ick, CK_243X),
|
||||
CLK(NULL, "mmchs1_fck", &mmchs1_fck, CK_243X),
|
||||
CLK("omap_hsmmc.1", "ick", &mmchs2_ick, CK_243X),
|
||||
CLK(NULL, "mmchs2_ick", &mmchs2_ick, CK_243X),
|
||||
CLK(NULL, "mmchs2_fck", &mmchs2_fck, CK_243X),
|
||||
CLK(NULL, "gpio5_ick", &gpio5_ick, CK_243X),
|
||||
CLK(NULL, "gpio5_fck", &gpio5_fck, CK_243X),
|
||||
CLK(NULL, "mdm_intc_ick", &mdm_intc_ick, CK_243X),
|
||||
CLK("omap_hsmmc.0", "mmchsdb_fck", &mmchsdb1_fck, CK_243X),
|
||||
CLK(NULL, "mmchsdb1_fck", &mmchsdb1_fck, CK_243X),
|
||||
CLK("omap_hsmmc.1", "mmchsdb_fck", &mmchsdb2_fck, CK_243X),
|
||||
CLK(NULL, "mmchsdb2_fck", &mmchsdb2_fck, CK_243X),
|
||||
CLK(NULL, "timer_32k_ck", &func_32k_ck, CK_243X),
|
||||
CLK(NULL, "timer_sys_ck", &sys_ck, CK_243X),
|
||||
CLK(NULL, "timer_ext_ck", &alt_ck, CK_243X),
|
||||
CLK(NULL, "cpufreq_ck", &virt_prcm_set, CK_243X),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -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"
|
||||
@ -1013,6 +1013,7 @@ static struct omap_clk am33xx_clks[] = {
|
||||
CLK(NULL, "dpll_core_m5_ck", &dpll_core_m5_ck, CK_AM33XX),
|
||||
CLK(NULL, "dpll_core_m6_ck", &dpll_core_m6_ck, CK_AM33XX),
|
||||
CLK(NULL, "dpll_mpu_ck", &dpll_mpu_ck, CK_AM33XX),
|
||||
CLK("cpu0", NULL, &dpll_mpu_ck, CK_AM33XX),
|
||||
CLK(NULL, "dpll_mpu_m2_ck", &dpll_mpu_m2_ck, CK_AM33XX),
|
||||
CLK(NULL, "dpll_ddr_ck", &dpll_ddr_ck, CK_AM33XX),
|
||||
CLK(NULL, "dpll_ddr_m2_ck", &dpll_ddr_m2_ck, CK_AM33XX),
|
||||
@ -1027,7 +1028,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"
|
||||
@ -49,8 +49,7 @@ int omap3_dpll4_set_rate(struct clk *clk, unsigned long rate)
|
||||
* on DPLL4.
|
||||
*/
|
||||
if (omap_rev() == OMAP3430_REV_ES1_0) {
|
||||
pr_err("clock: DPLL4 cannot change rate due to "
|
||||
"silicon 'Limitation 2.5' on 3430ES1.\n");
|
||||
pr_err("clock: DPLL4 cannot change rate due to silicon 'Limitation 2.5' on 3430ES1.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -64,15 +63,15 @@ void __init omap3_clk_lock_dpll5(void)
|
||||
|
||||
dpll5_clk = clk_get(NULL, "dpll5_ck");
|
||||
clk_set_rate(dpll5_clk, DPLL5_FREQ_FOR_USBHOST);
|
||||
clk_enable(dpll5_clk);
|
||||
clk_prepare_enable(dpll5_clk);
|
||||
|
||||
/* Program dpll5_m2_clk divider for no division */
|
||||
dpll5_m2_clk = clk_get(NULL, "dpll5_m2_ck");
|
||||
clk_enable(dpll5_m2_clk);
|
||||
clk_prepare_enable(dpll5_m2_clk);
|
||||
clk_set_rate(dpll5_m2_clk, DPLL5_FREQ_FOR_USBHOST);
|
||||
|
||||
clk_disable(dpll5_m2_clk);
|
||||
clk_disable(dpll5_clk);
|
||||
clk_disable_unprepare(dpll5_m2_clk);
|
||||
clk_disable_unprepare(dpll5_clk);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
@ -3215,7 +3215,6 @@ static struct clk dummy_apb_pclk = {
|
||||
* clkdev
|
||||
*/
|
||||
|
||||
/* XXX At some point we should rename this file to clock3xxx_data.c */
|
||||
static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "apb_pclk", &dummy_apb_pclk, CK_3XXX),
|
||||
CLK(NULL, "omap_32k_fck", &omap_32k_fck, CK_3XXX),
|
||||
@ -3226,6 +3225,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "virt_26000000_ck", &virt_26000000_ck, CK_3XXX),
|
||||
CLK(NULL, "virt_38_4m_ck", &virt_38_4m_ck, CK_3XXX),
|
||||
CLK(NULL, "osc_sys_ck", &osc_sys_ck, CK_3XXX),
|
||||
CLK("twl", "fck", &osc_sys_ck, CK_3XXX),
|
||||
CLK(NULL, "sys_ck", &sys_ck, CK_3XXX),
|
||||
CLK(NULL, "sys_altclk", &sys_altclk, CK_3XXX),
|
||||
CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_3XXX),
|
||||
@ -3242,11 +3242,13 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "dpll3_m2x2_ck", &dpll3_m2x2_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll3_m3_ck", &dpll3_m3_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll3_m3x2_ck", &dpll3_m3x2_ck, CK_3XXX),
|
||||
CLK(NULL, "emu_core_alwon_ck", &emu_core_alwon_ck, CK_3XXX),
|
||||
CLK("etb", "emu_core_alwon_ck", &emu_core_alwon_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll4_ck", &dpll4_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll4_x2_ck", &dpll4_x2_ck, CK_3XXX),
|
||||
CLK(NULL, "omap_192m_alwon_fck", &omap_192m_alwon_fck, CK_36XX),
|
||||
CLK(NULL, "omap_96m_alwon_fck", &omap_96m_alwon_fck, CK_3XXX),
|
||||
CLK(NULL, "omap_96m_alwon_fck_3630", &omap_96m_alwon_fck_3630, CK_36XX),
|
||||
CLK(NULL, "omap_96m_fck", &omap_96m_fck, CK_3XXX),
|
||||
CLK(NULL, "cm_96m_fck", &cm_96m_fck, CK_3XXX),
|
||||
CLK(NULL, "omap_54m_fck", &omap_54m_fck, CK_3XXX),
|
||||
@ -3262,6 +3264,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "dpll4_m5x2_ck", &dpll4_m5x2_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll4_m6_ck", &dpll4_m6_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll4_m6x2_ck", &dpll4_m6x2_ck, CK_3XXX),
|
||||
CLK(NULL, "emu_per_alwon_ck", &emu_per_alwon_ck, CK_3XXX),
|
||||
CLK("etb", "emu_per_alwon_ck", &emu_per_alwon_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll5_ck", &dpll5_ck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "dpll5_m2_ck", &dpll5_m2_ck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
@ -3271,6 +3274,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "dpll1_fck", &dpll1_fck, CK_3XXX),
|
||||
CLK(NULL, "mpu_ck", &mpu_ck, CK_3XXX),
|
||||
CLK(NULL, "arm_fck", &arm_fck, CK_3XXX),
|
||||
CLK(NULL, "emu_mpu_alwon_ck", &emu_mpu_alwon_ck, CK_3XXX),
|
||||
CLK("etb", "emu_mpu_alwon_ck", &emu_mpu_alwon_ck, CK_3XXX),
|
||||
CLK(NULL, "dpll2_fck", &dpll2_fck, CK_34XX | CK_36XX),
|
||||
CLK(NULL, "iva2_ck", &iva2_ck, CK_34XX | CK_36XX),
|
||||
@ -3294,6 +3298,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "ts_fck", &ts_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "usbtll_fck", &usbtll_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK("usbhs_omap", "usbtll_fck", &usbtll_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK("usbhs_tll", "usbtll_fck", &usbtll_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "core_96m_fck", &core_96m_fck, CK_3XXX),
|
||||
CLK(NULL, "mmchs3_fck", &mmchs3_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "mmchs2_fck", &mmchs2_fck, CK_3XXX),
|
||||
@ -3314,6 +3319,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "fshostusb_fck", &fshostusb_fck, CK_3430ES1),
|
||||
CLK(NULL, "core_12m_fck", &core_12m_fck, CK_3XXX),
|
||||
CLK("omap_hdq.0", "fck", &hdq_fck, CK_3XXX),
|
||||
CLK(NULL, "hdq_fck", &hdq_fck, CK_3XXX),
|
||||
CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck_3430es1, CK_3430ES1),
|
||||
CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck_3430es2, CK_3430ES2PLUS | CK_36XX),
|
||||
CLK(NULL, "ssi_sst_fck", &ssi_sst_fck_3430es1, CK_3430ES1),
|
||||
@ -3321,6 +3327,8 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "core_l3_ick", &core_l3_ick, CK_3XXX),
|
||||
CLK("musb-omap2430", "ick", &hsotgusb_ick_3430es1, CK_3430ES1),
|
||||
CLK("musb-omap2430", "ick", &hsotgusb_ick_3430es2, CK_3430ES2PLUS | CK_36XX),
|
||||
CLK(NULL, "hsotgusb_ick", &hsotgusb_ick_3430es1, CK_3430ES1),
|
||||
CLK(NULL, "hsotgusb_ick", &hsotgusb_ick_3430es2, CK_3430ES2PLUS | CK_36XX),
|
||||
CLK(NULL, "sdrc_ick", &sdrc_ick, CK_3XXX),
|
||||
CLK(NULL, "gpmc_fck", &gpmc_fck, CK_3XXX),
|
||||
CLK(NULL, "security_l3_ick", &security_l3_ick, CK_34XX | CK_36XX),
|
||||
@ -3328,28 +3336,42 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "core_l4_ick", &core_l4_ick, CK_3XXX),
|
||||
CLK(NULL, "usbtll_ick", &usbtll_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK("usbhs_omap", "usbtll_ick", &usbtll_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK("usbhs_tll", "usbtll_ick", &usbtll_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK("omap_hsmmc.2", "ick", &mmchs3_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "mmchs3_ick", &mmchs3_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "icr_ick", &icr_ick, CK_34XX | CK_36XX),
|
||||
CLK("omap-aes", "ick", &aes2_ick, CK_34XX | CK_36XX),
|
||||
CLK("omap-sham", "ick", &sha12_ick, CK_34XX | CK_36XX),
|
||||
CLK(NULL, "des2_ick", &des2_ick, CK_34XX | CK_36XX),
|
||||
CLK("omap_hsmmc.1", "ick", &mmchs2_ick, CK_3XXX),
|
||||
CLK("omap_hsmmc.0", "ick", &mmchs1_ick, CK_3XXX),
|
||||
CLK(NULL, "mmchs2_ick", &mmchs2_ick, CK_3XXX),
|
||||
CLK(NULL, "mmchs1_ick", &mmchs1_ick, CK_3XXX),
|
||||
CLK(NULL, "mspro_ick", &mspro_ick, CK_34XX | CK_36XX),
|
||||
CLK("omap_hdq.0", "ick", &hdq_ick, CK_3XXX),
|
||||
CLK(NULL, "hdq_ick", &hdq_ick, CK_3XXX),
|
||||
CLK("omap2_mcspi.4", "ick", &mcspi4_ick, CK_3XXX),
|
||||
CLK("omap2_mcspi.3", "ick", &mcspi3_ick, CK_3XXX),
|
||||
CLK("omap2_mcspi.2", "ick", &mcspi2_ick, CK_3XXX),
|
||||
CLK("omap2_mcspi.1", "ick", &mcspi1_ick, CK_3XXX),
|
||||
CLK(NULL, "mcspi4_ick", &mcspi4_ick, CK_3XXX),
|
||||
CLK(NULL, "mcspi3_ick", &mcspi3_ick, CK_3XXX),
|
||||
CLK(NULL, "mcspi2_ick", &mcspi2_ick, CK_3XXX),
|
||||
CLK(NULL, "mcspi1_ick", &mcspi1_ick, CK_3XXX),
|
||||
CLK("omap_i2c.3", "ick", &i2c3_ick, CK_3XXX),
|
||||
CLK("omap_i2c.2", "ick", &i2c2_ick, CK_3XXX),
|
||||
CLK("omap_i2c.1", "ick", &i2c1_ick, CK_3XXX),
|
||||
CLK(NULL, "i2c3_ick", &i2c3_ick, CK_3XXX),
|
||||
CLK(NULL, "i2c2_ick", &i2c2_ick, CK_3XXX),
|
||||
CLK(NULL, "i2c1_ick", &i2c1_ick, CK_3XXX),
|
||||
CLK(NULL, "uart2_ick", &uart2_ick, CK_3XXX),
|
||||
CLK(NULL, "uart1_ick", &uart1_ick, CK_3XXX),
|
||||
CLK(NULL, "gpt11_ick", &gpt11_ick, CK_3XXX),
|
||||
CLK(NULL, "gpt10_ick", &gpt10_ick, CK_3XXX),
|
||||
CLK("omap-mcbsp.5", "ick", &mcbsp5_ick, CK_3XXX),
|
||||
CLK("omap-mcbsp.1", "ick", &mcbsp1_ick, CK_3XXX),
|
||||
CLK(NULL, "mcbsp5_ick", &mcbsp5_ick, CK_3XXX),
|
||||
CLK(NULL, "mcbsp1_ick", &mcbsp1_ick, CK_3XXX),
|
||||
CLK(NULL, "fac_ick", &fac_ick, CK_3430ES1),
|
||||
CLK(NULL, "mailboxes_ick", &mailboxes_ick, CK_34XX | CK_36XX),
|
||||
CLK(NULL, "omapctrl_ick", &omapctrl_ick, CK_3XXX),
|
||||
@ -3368,7 +3390,9 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "dss_96m_fck", &dss_96m_fck, CK_3XXX),
|
||||
CLK(NULL, "dss2_alwon_fck", &dss2_alwon_fck, CK_3XXX),
|
||||
CLK("omapdss_dss", "ick", &dss_ick_3430es1, CK_3430ES1),
|
||||
CLK(NULL, "dss_ick", &dss_ick_3430es1, CK_3430ES1),
|
||||
CLK("omapdss_dss", "ick", &dss_ick_3430es2, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "dss_ick", &dss_ick_3430es2, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
|
||||
CLK(NULL, "cam_mclk", &cam_mclk, CK_34XX | CK_36XX),
|
||||
CLK(NULL, "cam_ick", &cam_ick, CK_34XX | CK_36XX),
|
||||
CLK(NULL, "csi2_96m_fck", &csi2_96m_fck, CK_34XX | CK_36XX),
|
||||
@ -3384,6 +3408,8 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "usb_host_hs_utmi_p2_clk", &dummy_ck, CK_3XXX),
|
||||
CLK("usbhs_omap", "usb_tll_hs_usb_ch0_clk", &dummy_ck, CK_3XXX),
|
||||
CLK("usbhs_omap", "usb_tll_hs_usb_ch1_clk", &dummy_ck, CK_3XXX),
|
||||
CLK("usbhs_tll", "usb_tll_hs_usb_ch0_clk", &dummy_ck, CK_3XXX),
|
||||
CLK("usbhs_tll", "usb_tll_hs_usb_ch1_clk", &dummy_ck, CK_3XXX),
|
||||
CLK(NULL, "init_60m_fclk", &dummy_ck, CK_3XXX),
|
||||
CLK(NULL, "usim_fck", &usim_fck, CK_3430ES2PLUS | CK_36XX),
|
||||
CLK(NULL, "gpt1_fck", &gpt1_fck, CK_3XXX),
|
||||
@ -3393,6 +3419,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "wkup_l4_ick", &wkup_l4_ick, CK_34XX | CK_36XX),
|
||||
CLK(NULL, "usim_ick", &usim_ick, CK_3430ES2PLUS | CK_36XX),
|
||||
CLK("omap_wdt", "ick", &wdt2_ick, CK_3XXX),
|
||||
CLK(NULL, "wdt2_ick", &wdt2_ick, CK_3XXX),
|
||||
CLK(NULL, "wdt1_ick", &wdt1_ick, CK_3XXX),
|
||||
CLK(NULL, "gpio1_ick", &gpio1_ick, CK_3XXX),
|
||||
CLK(NULL, "omap_32ksync_ick", &omap_32ksync_ick, CK_3XXX),
|
||||
@ -3438,9 +3465,13 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK("omap-mcbsp.2", "ick", &mcbsp2_ick, CK_3XXX),
|
||||
CLK("omap-mcbsp.3", "ick", &mcbsp3_ick, CK_3XXX),
|
||||
CLK("omap-mcbsp.4", "ick", &mcbsp4_ick, CK_3XXX),
|
||||
CLK(NULL, "mcbsp4_ick", &mcbsp2_ick, CK_3XXX),
|
||||
CLK(NULL, "mcbsp3_ick", &mcbsp3_ick, CK_3XXX),
|
||||
CLK(NULL, "mcbsp2_ick", &mcbsp4_ick, CK_3XXX),
|
||||
CLK(NULL, "mcbsp2_fck", &mcbsp2_fck, CK_3XXX),
|
||||
CLK(NULL, "mcbsp3_fck", &mcbsp3_fck, CK_3XXX),
|
||||
CLK(NULL, "mcbsp4_fck", &mcbsp4_fck, CK_3XXX),
|
||||
CLK(NULL, "emu_src_ck", &emu_src_ck, CK_3XXX),
|
||||
CLK("etb", "emu_src_ck", &emu_src_ck, CK_3XXX),
|
||||
CLK(NULL, "pclk_fck", &pclk_fck, CK_3XXX),
|
||||
CLK(NULL, "pclkx2_fck", &pclkx2_fck, CK_3XXX),
|
||||
@ -3456,8 +3487,12 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "ipss_ick", &ipss_ick, CK_AM35XX),
|
||||
CLK(NULL, "rmii_ck", &rmii_ck, CK_AM35XX),
|
||||
CLK(NULL, "pclk_ck", &pclk_ck, CK_AM35XX),
|
||||
CLK(NULL, "emac_ick", &emac_ick, CK_AM35XX),
|
||||
CLK(NULL, "emac_fck", &emac_fck, CK_AM35XX),
|
||||
CLK("davinci_emac.0", NULL, &emac_ick, CK_AM35XX),
|
||||
CLK("davinci_mdio.0", NULL, &emac_fck, CK_AM35XX),
|
||||
CLK(NULL, "vpfe_ick", &emac_ick, CK_AM35XX),
|
||||
CLK(NULL, "vpfe_fck", &emac_fck, CK_AM35XX),
|
||||
CLK("vpfe-capture", "master", &vpfe_ick, CK_AM35XX),
|
||||
CLK("vpfe-capture", "slave", &vpfe_fck, CK_AM35XX),
|
||||
CLK(NULL, "hsotgusb_ick", &hsotgusb_ick_am35xx, CK_AM35XX),
|
||||
@ -3466,6 +3501,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
||||
CLK(NULL, "uart4_ick", &uart4_ick_am35xx, CK_AM35XX),
|
||||
CLK(NULL, "timer_32k_ck", &omap_32k_fck, CK_3XXX),
|
||||
CLK(NULL, "timer_sys_ck", &sys_ck, CK_3XXX),
|
||||
CLK(NULL, "cpufreq_ck", &dpll1_ck, CK_3XXX),
|
||||
};
|
||||
|
||||
|
||||
|
@ -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"
|
||||
@ -3156,6 +3156,7 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK(NULL, "dss_tv_clk", &dss_tv_clk, CK_443X),
|
||||
CLK(NULL, "dss_48mhz_clk", &dss_48mhz_clk, CK_443X),
|
||||
CLK(NULL, "dss_dss_clk", &dss_dss_clk, CK_443X),
|
||||
CLK(NULL, "dss_fck", &dss_fck, CK_443X),
|
||||
CLK("omapdss_dss", "ick", &dss_fck, CK_443X),
|
||||
CLK(NULL, "efuse_ctrl_cust_fck", &efuse_ctrl_cust_fck, CK_443X),
|
||||
CLK(NULL, "emif1_fck", &emif1_fck, CK_443X),
|
||||
@ -3212,6 +3213,7 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK(NULL, "ocp2scp_usb_phy_phy_48m", &ocp2scp_usb_phy_phy_48m, CK_443X),
|
||||
CLK(NULL, "ocp2scp_usb_phy_ick", &ocp2scp_usb_phy_ick, CK_443X),
|
||||
CLK(NULL, "ocp_wp_noc_ick", &ocp_wp_noc_ick, CK_443X),
|
||||
CLK(NULL, "rng_ick", &rng_ick, CK_443X),
|
||||
CLK("omap_rng", "ick", &rng_ick, CK_443X),
|
||||
CLK(NULL, "sha2md5_fck", &sha2md5_fck, CK_443X),
|
||||
CLK(NULL, "sl2if_ick", &sl2if_ick, CK_443X),
|
||||
@ -3243,6 +3245,7 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK(NULL, "uart3_fck", &uart3_fck, CK_443X),
|
||||
CLK(NULL, "uart4_fck", &uart4_fck, CK_443X),
|
||||
CLK("usbhs_omap", "fs_fck", &usb_host_fs_fck, CK_443X),
|
||||
CLK(NULL, "usb_host_fs_fck", &usb_host_fs_fck, CK_443X),
|
||||
CLK(NULL, "utmi_p1_gfclk", &utmi_p1_gfclk, CK_443X),
|
||||
CLK(NULL, "usb_host_hs_utmi_p1_clk", &usb_host_hs_utmi_p1_clk, CK_443X),
|
||||
CLK(NULL, "utmi_p2_gfclk", &utmi_p2_gfclk, CK_443X),
|
||||
@ -3253,15 +3256,19 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK(NULL, "usb_host_hs_hsic60m_p2_clk", &usb_host_hs_hsic60m_p2_clk, CK_443X),
|
||||
CLK(NULL, "usb_host_hs_hsic480m_p2_clk", &usb_host_hs_hsic480m_p2_clk, CK_443X),
|
||||
CLK(NULL, "usb_host_hs_func48mclk", &usb_host_hs_func48mclk, CK_443X),
|
||||
CLK(NULL, "usb_host_hs_fck", &usb_host_hs_fck, CK_443X),
|
||||
CLK("usbhs_omap", "hs_fck", &usb_host_hs_fck, CK_443X),
|
||||
CLK(NULL, "otg_60m_gfclk", &otg_60m_gfclk, CK_443X),
|
||||
CLK(NULL, "usb_otg_hs_xclk", &usb_otg_hs_xclk, CK_443X),
|
||||
CLK(NULL, "usb_otg_hs_ick", &usb_otg_hs_ick, CK_443X),
|
||||
CLK("musb-omap2430", "ick", &usb_otg_hs_ick, CK_443X),
|
||||
CLK(NULL, "usb_phy_cm_clk32k", &usb_phy_cm_clk32k, CK_443X),
|
||||
CLK(NULL, "usb_tll_hs_usb_ch2_clk", &usb_tll_hs_usb_ch2_clk, CK_443X),
|
||||
CLK(NULL, "usb_tll_hs_usb_ch0_clk", &usb_tll_hs_usb_ch0_clk, CK_443X),
|
||||
CLK(NULL, "usb_tll_hs_usb_ch1_clk", &usb_tll_hs_usb_ch1_clk, CK_443X),
|
||||
CLK(NULL, "usb_tll_hs_ick", &usb_tll_hs_ick, CK_443X),
|
||||
CLK("usbhs_omap", "usbtll_ick", &usb_tll_hs_ick, CK_443X),
|
||||
CLK("usbhs_tll", "usbtll_ick", &usb_tll_hs_ick, CK_443X),
|
||||
CLK(NULL, "usim_ck", &usim_ck, CK_443X),
|
||||
CLK(NULL, "usim_fclk", &usim_fclk, CK_443X),
|
||||
CLK(NULL, "usim_fck", &usim_fck, CK_443X),
|
||||
@ -3312,8 +3319,10 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK(NULL, "uart4_ick", &dummy_ck, CK_443X),
|
||||
CLK("usbhs_omap", "usbhost_ick", &dummy_ck, CK_443X),
|
||||
CLK("usbhs_omap", "usbtll_fck", &dummy_ck, CK_443X),
|
||||
CLK("usbhs_tll", "usbtll_fck", &dummy_ck, CK_443X),
|
||||
CLK("omap_wdt", "ick", &dummy_ck, CK_443X),
|
||||
CLK(NULL, "timer_32k_ck", &sys_32k_ck, CK_443X),
|
||||
/* TODO: Remove "omap_timer.X" aliases once DT migration is complete */
|
||||
CLK("omap_timer.1", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("omap_timer.2", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("omap_timer.3", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
@ -3325,6 +3334,18 @@ static struct omap_clk omap44xx_clks[] = {
|
||||
CLK("omap_timer.6", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK("omap_timer.7", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK("omap_timer.8", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK("4a318000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("48032000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("48034000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("48036000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("4803e000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("48086000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("48088000.timer", "timer_sys_ck", &sys_clkin_ck, CK_443X),
|
||||
CLK("49038000.timer", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK("4903a000.timer", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK("4903c000.timer", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK("4903e000.timer", "timer_sys_ck", &syc_clk_div_ck, CK_443X),
|
||||
CLK(NULL, "cpufreq_ck", &dpll_mpu_ck, CK_443X),
|
||||
};
|
||||
|
||||
int __init omap4xxx_clk_init(void)
|
||||
|
@ -174,9 +174,8 @@ void _clkdm_add_autodeps(struct clockdomain *clkdm)
|
||||
if (IS_ERR(autodep->clkdm.ptr))
|
||||
continue;
|
||||
|
||||
pr_debug("clockdomain: adding %s sleepdep/wkdep for "
|
||||
"clkdm %s\n", autodep->clkdm.ptr->name,
|
||||
clkdm->name);
|
||||
pr_debug("clockdomain: %s: adding %s sleepdep/wkdep\n",
|
||||
clkdm->name, autodep->clkdm.ptr->name);
|
||||
|
||||
clkdm_add_sleepdep(clkdm, autodep->clkdm.ptr);
|
||||
clkdm_add_wkdep(clkdm, autodep->clkdm.ptr);
|
||||
@ -205,9 +204,8 @@ void _clkdm_del_autodeps(struct clockdomain *clkdm)
|
||||
if (IS_ERR(autodep->clkdm.ptr))
|
||||
continue;
|
||||
|
||||
pr_debug("clockdomain: removing %s sleepdep/wkdep for "
|
||||
"clkdm %s\n", autodep->clkdm.ptr->name,
|
||||
clkdm->name);
|
||||
pr_debug("clockdomain: %s: removing %s sleepdep/wkdep\n",
|
||||
clkdm->name, autodep->clkdm.ptr->name);
|
||||
|
||||
clkdm_del_sleepdep(clkdm, autodep->clkdm.ptr);
|
||||
clkdm_del_wkdep(clkdm, autodep->clkdm.ptr);
|
||||
@ -469,14 +467,14 @@ int clkdm_add_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2)
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret) {
|
||||
pr_debug("clockdomain: hardware cannot set/clear wake up of "
|
||||
"%s when %s wakes up\n", clkdm1->name, clkdm2->name);
|
||||
pr_debug("clockdomain: hardware cannot set/clear wake up of %s when %s wakes up\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (atomic_inc_return(&cd->wkdep_usecount) == 1) {
|
||||
pr_debug("clockdomain: hardware will wake up %s when %s wakes "
|
||||
"up\n", clkdm1->name, clkdm2->name);
|
||||
pr_debug("clockdomain: hardware will wake up %s when %s wakes up\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
|
||||
ret = arch_clkdm->clkdm_add_wkdep(clkdm1, clkdm2);
|
||||
}
|
||||
@ -510,14 +508,14 @@ int clkdm_del_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2)
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret) {
|
||||
pr_debug("clockdomain: hardware cannot set/clear wake up of "
|
||||
"%s when %s wakes up\n", clkdm1->name, clkdm2->name);
|
||||
pr_debug("clockdomain: hardware cannot set/clear wake up of %s when %s wakes up\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (atomic_dec_return(&cd->wkdep_usecount) == 0) {
|
||||
pr_debug("clockdomain: hardware will no longer wake up %s "
|
||||
"after %s wakes up\n", clkdm1->name, clkdm2->name);
|
||||
pr_debug("clockdomain: hardware will no longer wake up %s after %s wakes up\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
|
||||
ret = arch_clkdm->clkdm_del_wkdep(clkdm1, clkdm2);
|
||||
}
|
||||
@ -555,8 +553,8 @@ int clkdm_read_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2)
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret) {
|
||||
pr_debug("clockdomain: hardware cannot set/clear wake up of "
|
||||
"%s when %s wakes up\n", clkdm1->name, clkdm2->name);
|
||||
pr_debug("clockdomain: hardware cannot set/clear wake up of %s when %s wakes up\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -613,15 +611,14 @@ int clkdm_add_sleepdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2)
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret) {
|
||||
pr_debug("clockdomain: hardware cannot set/clear sleep "
|
||||
"dependency affecting %s from %s\n", clkdm1->name,
|
||||
clkdm2->name);
|
||||
pr_debug("clockdomain: hardware cannot set/clear sleep dependency affecting %s from %s\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (atomic_inc_return(&cd->sleepdep_usecount) == 1) {
|
||||
pr_debug("clockdomain: will prevent %s from sleeping if %s "
|
||||
"is active\n", clkdm1->name, clkdm2->name);
|
||||
pr_debug("clockdomain: will prevent %s from sleeping if %s is active\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
|
||||
ret = arch_clkdm->clkdm_add_sleepdep(clkdm1, clkdm2);
|
||||
}
|
||||
@ -657,16 +654,14 @@ int clkdm_del_sleepdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2)
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret) {
|
||||
pr_debug("clockdomain: hardware cannot set/clear sleep "
|
||||
"dependency affecting %s from %s\n", clkdm1->name,
|
||||
clkdm2->name);
|
||||
pr_debug("clockdomain: hardware cannot set/clear sleep dependency affecting %s from %s\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (atomic_dec_return(&cd->sleepdep_usecount) == 0) {
|
||||
pr_debug("clockdomain: will no longer prevent %s from "
|
||||
"sleeping if %s is active\n", clkdm1->name,
|
||||
clkdm2->name);
|
||||
pr_debug("clockdomain: will no longer prevent %s from sleeping if %s is active\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
|
||||
ret = arch_clkdm->clkdm_del_sleepdep(clkdm1, clkdm2);
|
||||
}
|
||||
@ -706,9 +701,8 @@ int clkdm_read_sleepdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2)
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret) {
|
||||
pr_debug("clockdomain: hardware cannot set/clear sleep "
|
||||
"dependency affecting %s from %s\n", clkdm1->name,
|
||||
clkdm2->name);
|
||||
pr_debug("clockdomain: hardware cannot set/clear sleep dependency affecting %s from %s\n",
|
||||
clkdm1->name, clkdm2->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -755,8 +749,8 @@ int clkdm_sleep(struct clockdomain *clkdm)
|
||||
return -EINVAL;
|
||||
|
||||
if (!(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) {
|
||||
pr_debug("clockdomain: %s does not support forcing "
|
||||
"sleep via software\n", clkdm->name);
|
||||
pr_debug("clockdomain: %s does not support forcing sleep via software\n",
|
||||
clkdm->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -790,8 +784,8 @@ int clkdm_wakeup(struct clockdomain *clkdm)
|
||||
return -EINVAL;
|
||||
|
||||
if (!(clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) {
|
||||
pr_debug("clockdomain: %s does not support forcing "
|
||||
"wakeup via software\n", clkdm->name);
|
||||
pr_debug("clockdomain: %s does not support forcing wakeup via software\n",
|
||||
clkdm->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -826,8 +820,8 @@ void clkdm_allow_idle(struct clockdomain *clkdm)
|
||||
return;
|
||||
|
||||
if (!(clkdm->flags & CLKDM_CAN_ENABLE_AUTO)) {
|
||||
pr_debug("clock: automatic idle transitions cannot be enabled "
|
||||
"on clockdomain %s\n", clkdm->name);
|
||||
pr_debug("clock: %s: automatic idle transitions cannot be enabled\n",
|
||||
clkdm->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -861,8 +855,8 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
|
||||
return;
|
||||
|
||||
if (!(clkdm->flags & CLKDM_CAN_DISABLE_AUTO)) {
|
||||
pr_debug("clockdomain: automatic idle transitions cannot be "
|
||||
"disabled on %s\n", clkdm->name);
|
||||
pr_debug("clockdomain: %s: automatic idle transitions cannot be disabled\n",
|
||||
clkdm->name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -905,6 +899,23 @@ bool clkdm_in_hwsup(struct clockdomain *clkdm)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* clkdm_missing_idle_reporting - can @clkdm enter autoidle even if in use?
|
||||
* @clkdm: struct clockdomain *
|
||||
*
|
||||
* Returns true if clockdomain @clkdm has the
|
||||
* CLKDM_MISSING_IDLE_REPORTING flag set, or false if not or @clkdm is
|
||||
* null. More information is available in the documentation for the
|
||||
* CLKDM_MISSING_IDLE_REPORTING macro.
|
||||
*/
|
||||
bool clkdm_missing_idle_reporting(struct clockdomain *clkdm)
|
||||
{
|
||||
if (!clkdm)
|
||||
return false;
|
||||
|
||||
return (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) ? true : false;
|
||||
}
|
||||
|
||||
/* Clockdomain-to-clock/hwmod framework interface code */
|
||||
|
||||
static int _clkdm_clk_hwmod_enable(struct clockdomain *clkdm)
|
||||
@ -927,7 +938,7 @@ static int _clkdm_clk_hwmod_enable(struct clockdomain *clkdm)
|
||||
pwrdm_state_switch(clkdm->pwrdm.ptr);
|
||||
spin_unlock_irqrestore(&clkdm->lock, flags);
|
||||
|
||||
pr_debug("clockdomain: clkdm %s: enabled\n", clkdm->name);
|
||||
pr_debug("clockdomain: %s: enabled\n", clkdm->name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -952,7 +963,7 @@ static int _clkdm_clk_hwmod_disable(struct clockdomain *clkdm)
|
||||
pwrdm_state_switch(clkdm->pwrdm.ptr);
|
||||
spin_unlock_irqrestore(&clkdm->lock, flags);
|
||||
|
||||
pr_debug("clockdomain: clkdm %s: disabled\n", clkdm->name);
|
||||
pr_debug("clockdomain: %s: disabled\n", clkdm->name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,9 +1,7 @@
|
||||
/*
|
||||
* arch/arm/plat-omap/include/mach/clockdomain.h
|
||||
*
|
||||
* OMAP2/3 clockdomain framework functions
|
||||
*
|
||||
* Copyright (C) 2008 Texas Instruments, Inc.
|
||||
* Copyright (C) 2008, 2012 Texas Instruments, Inc.
|
||||
* Copyright (C) 2008-2011 Nokia Corporation
|
||||
*
|
||||
* Paul Walmsley
|
||||
@ -34,6 +32,20 @@
|
||||
* CLKDM_ACTIVE_WITH_MPU: The PRCM guarantees that this clockdomain is
|
||||
* active whenever the MPU is active. True for interconnects and
|
||||
* the WKUP clockdomains.
|
||||
* CLKDM_MISSING_IDLE_REPORTING: The idle status of the IP blocks and
|
||||
* clocks inside this clockdomain are not taken into account by
|
||||
* the PRCM when determining whether the clockdomain is idle.
|
||||
* Without this flag, if the clockdomain is set to
|
||||
* hardware-supervised idle mode, the PRCM may transition the
|
||||
* enclosing powerdomain to a low power state, even when devices
|
||||
* inside the clockdomain and powerdomain are in use. (An example
|
||||
* of such a clockdomain is the EMU clockdomain on OMAP3/4.) If
|
||||
* this flag is set, and the clockdomain does not support the
|
||||
* force-sleep mode, then the HW_AUTO mode will be used to put the
|
||||
* clockdomain to sleep. Similarly, if the clockdomain supports
|
||||
* the force-wakeup mode, then it will be used whenever a clock or
|
||||
* IP block inside the clockdomain is active, rather than the
|
||||
* HW_AUTO mode.
|
||||
*/
|
||||
#define CLKDM_CAN_FORCE_SLEEP (1 << 0)
|
||||
#define CLKDM_CAN_FORCE_WAKEUP (1 << 1)
|
||||
@ -41,6 +53,7 @@
|
||||
#define CLKDM_CAN_DISABLE_AUTO (1 << 3)
|
||||
#define CLKDM_NO_AUTODEPS (1 << 4)
|
||||
#define CLKDM_ACTIVE_WITH_MPU (1 << 5)
|
||||
#define CLKDM_MISSING_IDLE_REPORTING (1 << 6)
|
||||
|
||||
#define CLKDM_CAN_HWSUP (CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_DISABLE_AUTO)
|
||||
#define CLKDM_CAN_SWSUP (CLKDM_CAN_FORCE_SLEEP | CLKDM_CAN_FORCE_WAKEUP)
|
||||
@ -187,6 +200,7 @@ int clkdm_clear_all_sleepdeps(struct clockdomain *clkdm);
|
||||
void clkdm_allow_idle(struct clockdomain *clkdm);
|
||||
void clkdm_deny_idle(struct clockdomain *clkdm);
|
||||
bool clkdm_in_hwsup(struct clockdomain *clkdm);
|
||||
bool clkdm_missing_idle_reporting(struct clockdomain *clkdm);
|
||||
|
||||
int clkdm_wakeup(struct clockdomain *clkdm);
|
||||
int clkdm_sleep(struct clockdomain *clkdm);
|
||||
|
@ -162,6 +162,19 @@ static void _disable_hwsup(struct clockdomain *clkdm)
|
||||
clkdm->clktrctrl_mask);
|
||||
}
|
||||
|
||||
static int omap3_clkdm_sleep(struct clockdomain *clkdm)
|
||||
{
|
||||
omap3xxx_cm_clkdm_force_sleep(clkdm->pwrdm.ptr->prcm_offs,
|
||||
clkdm->clktrctrl_mask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap3_clkdm_wakeup(struct clockdomain *clkdm)
|
||||
{
|
||||
omap3xxx_cm_clkdm_force_wakeup(clkdm->pwrdm.ptr->prcm_offs,
|
||||
clkdm->clktrctrl_mask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap2_clkdm_clk_enable(struct clockdomain *clkdm)
|
||||
{
|
||||
@ -170,6 +183,17 @@ static int omap2_clkdm_clk_enable(struct clockdomain *clkdm)
|
||||
if (!clkdm->clktrctrl_mask)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* The CLKDM_MISSING_IDLE_REPORTING flag documentation has
|
||||
* more details on the unpleasant problem this is working
|
||||
* around
|
||||
*/
|
||||
if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING &&
|
||||
!(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) {
|
||||
_enable_hwsup(clkdm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs,
|
||||
clkdm->clktrctrl_mask);
|
||||
|
||||
@ -193,6 +217,17 @@ static int omap2_clkdm_clk_disable(struct clockdomain *clkdm)
|
||||
if (!clkdm->clktrctrl_mask)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* The CLKDM_MISSING_IDLE_REPORTING flag documentation has
|
||||
* more details on the unpleasant problem this is working
|
||||
* around
|
||||
*/
|
||||
if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) &&
|
||||
(clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) {
|
||||
omap3_clkdm_wakeup(clkdm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs,
|
||||
clkdm->clktrctrl_mask);
|
||||
|
||||
@ -209,20 +244,6 @@ static int omap2_clkdm_clk_disable(struct clockdomain *clkdm)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap3_clkdm_sleep(struct clockdomain *clkdm)
|
||||
{
|
||||
omap3xxx_cm_clkdm_force_sleep(clkdm->pwrdm.ptr->prcm_offs,
|
||||
clkdm->clktrctrl_mask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap3_clkdm_wakeup(struct clockdomain *clkdm)
|
||||
{
|
||||
omap3xxx_cm_clkdm_force_wakeup(clkdm->pwrdm.ptr->prcm_offs,
|
||||
clkdm->clktrctrl_mask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void omap3_clkdm_allow_idle(struct clockdomain *clkdm)
|
||||
{
|
||||
if (atomic_read(&clkdm->usecount) > 0)
|
||||
|
@ -113,6 +113,17 @@ static int omap4_clkdm_clk_disable(struct clockdomain *clkdm)
|
||||
if (!clkdm->prcm_partition)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* The CLKDM_MISSING_IDLE_REPORTING flag documentation has
|
||||
* more details on the unpleasant problem this is working
|
||||
* around
|
||||
*/
|
||||
if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING &&
|
||||
!(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) {
|
||||
omap4_clkdm_allow_idle(clkdm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
hwsup = omap4_cminst_is_clkdm_in_hwsup(clkdm->prcm_partition,
|
||||
clkdm->cm_inst, clkdm->clkdm_offs);
|
||||
|
||||
|
@ -387,14 +387,11 @@ static struct clockdomain per_am35x_clkdm = {
|
||||
.clktrctrl_mask = OMAP3430_CLKTRCTRL_PER_MASK,
|
||||
};
|
||||
|
||||
/*
|
||||
* Disable hw supervised mode for emu_clkdm, because emu_pwrdm is
|
||||
* switched of even if sdti is in use
|
||||
*/
|
||||
static struct clockdomain emu_clkdm = {
|
||||
.name = "emu_clkdm",
|
||||
.pwrdm = { .name = "emu_pwrdm" },
|
||||
.flags = /* CLKDM_CAN_ENABLE_AUTO | */CLKDM_CAN_SWSUP,
|
||||
.flags = (CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_SWSUP |
|
||||
CLKDM_MISSING_IDLE_REPORTING),
|
||||
.clktrctrl_mask = OMAP3430_CLKTRCTRL_EMU_MASK,
|
||||
};
|
||||
|
||||
|
@ -390,7 +390,8 @@ static struct clockdomain emu_sys_44xx_clkdm = {
|
||||
.prcm_partition = OMAP4430_PRM_PARTITION,
|
||||
.cm_inst = OMAP4430_PRM_EMU_CM_INST,
|
||||
.clkdm_offs = OMAP4430_PRM_EMU_CM_EMU_CDOFFS,
|
||||
.flags = CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_FORCE_WAKEUP,
|
||||
.flags = (CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_FORCE_WAKEUP |
|
||||
CLKDM_MISSING_IDLE_REPORTING),
|
||||
};
|
||||
|
||||
static struct clockdomain l3_dma_44xx_clkdm = {
|
||||
|
@ -25,263 +25,328 @@
|
||||
* CM_AUTOIDLE_DPLL_MPU, CM_AUTOIDLE_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_AUTO_DPLL_MODE_SHIFT 0
|
||||
#define AM33XX_AUTO_DPLL_MODE_WIDTH 3
|
||||
#define AM33XX_AUTO_DPLL_MODE_MASK (0x7 << 0)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_ADC_FCLK_SHIFT 14
|
||||
#define AM33XX_CLKACTIVITY_ADC_FCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_ADC_FCLK_MASK (1 << 16)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CAN_CLK_SHIFT 11
|
||||
#define AM33XX_CLKACTIVITY_CAN_CLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CAN_CLK_MASK (1 << 11)
|
||||
|
||||
/* Used by CM_PER_CLK_24MHZ_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CLK_24MHZ_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_CLK_24MHZ_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CLK_24MHZ_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_CPSW_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CPSW_125MHZ_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_CPSW_125MHZ_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CPSW_125MHZ_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_L4HS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CPSW_250MHZ_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_CPSW_250MHZ_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CPSW_250MHZ_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_L4HS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CPSW_50MHZ_GCLK_SHIFT 5
|
||||
#define AM33XX_CLKACTIVITY_CPSW_50MHZ_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CPSW_50MHZ_GCLK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_PER_L4HS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CPSW_5MHZ_GCLK_SHIFT 6
|
||||
#define AM33XX_CLKACTIVITY_CPSW_5MHZ_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CPSW_5MHZ_GCLK_MASK (1 << 6)
|
||||
|
||||
/* Used by CM_PER_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CPTS_RFT_GCLK_SHIFT 6
|
||||
#define AM33XX_CLKACTIVITY_CPTS_RFT_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CPTS_RFT_GCLK_MASK (1 << 6)
|
||||
|
||||
/* Used by CM_CEFUSE_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_CUST_EFUSE_SYS_CLK_SHIFT 9
|
||||
#define AM33XX_CLKACTIVITY_CUST_EFUSE_SYS_CLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_CUST_EFUSE_SYS_CLK_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_L3_AON_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_DBGSYSCLK_SHIFT 2
|
||||
#define AM33XX_CLKACTIVITY_DBGSYSCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_DBGSYSCLK_MASK (1 << 2)
|
||||
|
||||
/* Used by CM_L3_AON_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_DEBUG_CLKA_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_DEBUG_CLKA_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_DEBUG_CLKA_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_EMIF_GCLK_SHIFT 2
|
||||
#define AM33XX_CLKACTIVITY_EMIF_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_EMIF_GCLK_MASK (1 << 2)
|
||||
|
||||
/* Used by CM_GFX_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GFX_FCLK_SHIFT 9
|
||||
#define AM33XX_CLKACTIVITY_GFX_FCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GFX_FCLK_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_GFX_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GFX_L3_GCLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_GFX_L3_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GFX_L3_GCLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO0_GDBCLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_GPIO0_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO0_GDBCLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO_1_GDBCLK_SHIFT 19
|
||||
#define AM33XX_CLKACTIVITY_GPIO_1_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO_1_GDBCLK_MASK (1 << 19)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO_2_GDBCLK_SHIFT 20
|
||||
#define AM33XX_CLKACTIVITY_GPIO_2_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO_2_GDBCLK_MASK (1 << 20)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO_3_GDBCLK_SHIFT 21
|
||||
#define AM33XX_CLKACTIVITY_GPIO_3_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO_3_GDBCLK_MASK (1 << 21)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO_4_GDBCLK_SHIFT 22
|
||||
#define AM33XX_CLKACTIVITY_GPIO_4_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO_4_GDBCLK_MASK (1 << 22)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO_5_GDBCLK_SHIFT 26
|
||||
#define AM33XX_CLKACTIVITY_GPIO_5_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO_5_GDBCLK_MASK (1 << 26)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_GPIO_6_GDBCLK_SHIFT 18
|
||||
#define AM33XX_CLKACTIVITY_GPIO_6_GDBCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_GPIO_6_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_I2C0_GFCLK_SHIFT 11
|
||||
#define AM33XX_CLKACTIVITY_I2C0_GFCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_I2C0_GFCLK_MASK (1 << 11)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_I2C_FCLK_SHIFT 24
|
||||
#define AM33XX_CLKACTIVITY_I2C_FCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_I2C_FCLK_MASK (1 << 24)
|
||||
|
||||
/* Used by CM_PER_PRUSS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_IEP_GCLK_SHIFT 5
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_IEP_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_IEP_GCLK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_PER_PRUSS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_OCP_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_OCP_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_OCP_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_PRUSS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_UART_GCLK_SHIFT 6
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_UART_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_PRUSS_UART_GCLK_MASK (1 << 6)
|
||||
|
||||
/* Used by CM_PER_L3S_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L3S_GCLK_SHIFT 3
|
||||
#define AM33XX_CLKACTIVITY_L3S_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L3S_GCLK_MASK (1 << 3)
|
||||
|
||||
/* Used by CM_L3_AON_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L3_AON_GCLK_SHIFT 3
|
||||
#define AM33XX_CLKACTIVITY_L3_AON_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L3_AON_GCLK_MASK (1 << 3)
|
||||
|
||||
/* Used by CM_PER_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L3_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_L3_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L3_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_L4FW_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4FW_GCLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_L4FW_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4FW_GCLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_PER_L4HS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4HS_GCLK_SHIFT 3
|
||||
#define AM33XX_CLKACTIVITY_L4HS_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4HS_GCLK_MASK (1 << 3)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4LS_GCLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_L4LS_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4LS_GCLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_GFX_L4LS_GFX_CLKSTCTRL__1 */
|
||||
#define AM33XX_CLKACTIVITY_L4LS_GFX_GCLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_L4LS_GFX_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4LS_GFX_GCLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_CEFUSE_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4_CEFUSE_GICLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_L4_CEFUSE_GICLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4_CEFUSE_GICLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_RTC_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4_RTC_GCLK_SHIFT 8
|
||||
#define AM33XX_CLKACTIVITY_L4_RTC_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4_RTC_GCLK_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_L4_WKUP_AON_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4_WKUP_AON_GCLK_SHIFT 2
|
||||
#define AM33XX_CLKACTIVITY_L4_WKUP_AON_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4_WKUP_AON_GCLK_MASK (1 << 2)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_L4_WKUP_GCLK_SHIFT 2
|
||||
#define AM33XX_CLKACTIVITY_L4_WKUP_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_L4_WKUP_GCLK_MASK (1 << 2)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_LCDC_GCLK_SHIFT 17
|
||||
#define AM33XX_CLKACTIVITY_LCDC_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_LCDC_GCLK_MASK (1 << 17)
|
||||
|
||||
/* Used by CM_PER_LCDC_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_LCDC_L3_OCP_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_LCDC_L3_OCP_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_LCDC_L3_OCP_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_LCDC_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_LCDC_L4_OCP_GCLK_SHIFT 5
|
||||
#define AM33XX_CLKACTIVITY_LCDC_L4_OCP_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_LCDC_L4_OCP_GCLK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_PER_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_MCASP_GCLK_SHIFT 7
|
||||
#define AM33XX_CLKACTIVITY_MCASP_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_MCASP_GCLK_MASK (1 << 7)
|
||||
|
||||
/* Used by CM_PER_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_MMC_FCLK_SHIFT 3
|
||||
#define AM33XX_CLKACTIVITY_MMC_FCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_MMC_FCLK_MASK (1 << 3)
|
||||
|
||||
/* Used by CM_MPU_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_MPU_CLK_SHIFT 2
|
||||
#define AM33XX_CLKACTIVITY_MPU_CLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_MPU_CLK_MASK (1 << 2)
|
||||
|
||||
/* Used by CM_PER_OCPWP_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_OCPWP_L3_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_OCPWP_L3_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_OCPWP_L3_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CM_PER_OCPWP_L3_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_OCPWP_L4_GCLK_SHIFT 5
|
||||
#define AM33XX_CLKACTIVITY_OCPWP_L4_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_OCPWP_L4_GCLK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_RTC_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_RTC_32KCLK_SHIFT 9
|
||||
#define AM33XX_CLKACTIVITY_RTC_32KCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_RTC_32KCLK_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_SPI_GCLK_SHIFT 25
|
||||
#define AM33XX_CLKACTIVITY_SPI_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_SPI_GCLK_MASK (1 << 25)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_SR_SYSCLK_SHIFT 3
|
||||
#define AM33XX_CLKACTIVITY_SR_SYSCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_SR_SYSCLK_MASK (1 << 3)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER0_GCLK_SHIFT 10
|
||||
#define AM33XX_CLKACTIVITY_TIMER0_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER0_GCLK_MASK (1 << 10)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER1_GCLK_SHIFT 13
|
||||
#define AM33XX_CLKACTIVITY_TIMER1_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER1_GCLK_MASK (1 << 13)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER2_GCLK_SHIFT 14
|
||||
#define AM33XX_CLKACTIVITY_TIMER2_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER2_GCLK_MASK (1 << 14)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER3_GCLK_SHIFT 15
|
||||
#define AM33XX_CLKACTIVITY_TIMER3_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER3_GCLK_MASK (1 << 15)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER4_GCLK_SHIFT 16
|
||||
#define AM33XX_CLKACTIVITY_TIMER4_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER4_GCLK_MASK (1 << 16)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER5_GCLK_SHIFT 27
|
||||
#define AM33XX_CLKACTIVITY_TIMER5_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER5_GCLK_MASK (1 << 27)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER6_GCLK_SHIFT 28
|
||||
#define AM33XX_CLKACTIVITY_TIMER6_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER6_GCLK_MASK (1 << 28)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_TIMER7_GCLK_SHIFT 13
|
||||
#define AM33XX_CLKACTIVITY_TIMER7_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_TIMER7_GCLK_MASK (1 << 13)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_UART0_GFCLK_SHIFT 12
|
||||
#define AM33XX_CLKACTIVITY_UART0_GFCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_UART0_GFCLK_MASK (1 << 12)
|
||||
|
||||
/* Used by CM_PER_L4LS_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_UART_GFCLK_SHIFT 10
|
||||
#define AM33XX_CLKACTIVITY_UART_GFCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_UART_GFCLK_MASK (1 << 10)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_WDT0_GCLK_SHIFT 9
|
||||
#define AM33XX_CLKACTIVITY_WDT0_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_WDT0_GCLK_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_WKUP_CLKSTCTRL */
|
||||
#define AM33XX_CLKACTIVITY_WDT1_GCLK_SHIFT 4
|
||||
#define AM33XX_CLKACTIVITY_WDT1_GCLK_WIDTH 1
|
||||
#define AM33XX_CLKACTIVITY_WDT1_GCLK_MASK (1 << 4)
|
||||
|
||||
/* Used by CLKSEL_GFX_FCLK */
|
||||
#define AM33XX_CLKDIV_SEL_GFX_FCLK_SHIFT 0
|
||||
#define AM33XX_CLKDIV_SEL_GFX_FCLK_WIDTH 1
|
||||
#define AM33XX_CLKDIV_SEL_GFX_FCLK_MASK (1 << 0)
|
||||
|
||||
/* Used by CM_CLKOUT_CTRL */
|
||||
#define AM33XX_CLKOUT2DIV_SHIFT 3
|
||||
#define AM33XX_CLKOUT2DIV_MASK (0x05 << 3)
|
||||
#define AM33XX_CLKOUT2DIV_WIDTH 3
|
||||
#define AM33XX_CLKOUT2DIV_MASK (0x7 << 3)
|
||||
|
||||
/* Used by CM_CLKOUT_CTRL */
|
||||
#define AM33XX_CLKOUT2EN_SHIFT 7
|
||||
#define AM33XX_CLKOUT2EN_WIDTH 1
|
||||
#define AM33XX_CLKOUT2EN_MASK (1 << 7)
|
||||
|
||||
/* Used by CM_CLKOUT_CTRL */
|
||||
#define AM33XX_CLKOUT2SOURCE_SHIFT 0
|
||||
#define AM33XX_CLKOUT2SOURCE_MASK (0x02 << 0)
|
||||
#define AM33XX_CLKOUT2SOURCE_WIDTH 3
|
||||
#define AM33XX_CLKOUT2SOURCE_MASK (0x7 << 0)
|
||||
|
||||
/*
|
||||
* Used by CLKSEL_GPIO0_DBCLK, CLKSEL_LCDC_PIXEL_CLK, CLKSEL_TIMER2_CLK,
|
||||
@ -289,6 +354,7 @@
|
||||
* CLKSEL_TIMER7_CLK
|
||||
*/
|
||||
#define AM33XX_CLKSEL_SHIFT 0
|
||||
#define AM33XX_CLKSEL_WIDTH 1
|
||||
#define AM33XX_CLKSEL_MASK (0x01 << 0)
|
||||
|
||||
/*
|
||||
@ -296,17 +362,21 @@
|
||||
* CM_CPTS_RFT_CLKSEL
|
||||
*/
|
||||
#define AM33XX_CLKSEL_0_0_SHIFT 0
|
||||
#define AM33XX_CLKSEL_0_0_WIDTH 1
|
||||
#define AM33XX_CLKSEL_0_0_MASK (1 << 0)
|
||||
|
||||
#define AM33XX_CLKSEL_0_1_SHIFT 0
|
||||
#define AM33XX_CLKSEL_0_1_WIDTH 2
|
||||
#define AM33XX_CLKSEL_0_1_MASK (3 << 0)
|
||||
|
||||
/* Renamed from CLKSEL Used by CLKSEL_TIMER1MS_CLK */
|
||||
#define AM33XX_CLKSEL_0_2_SHIFT 0
|
||||
#define AM33XX_CLKSEL_0_2_WIDTH 3
|
||||
#define AM33XX_CLKSEL_0_2_MASK (7 << 0)
|
||||
|
||||
/* Used by CLKSEL_GFX_FCLK */
|
||||
#define AM33XX_CLKSEL_GFX_FCLK_SHIFT 1
|
||||
#define AM33XX_CLKSEL_GFX_FCLK_WIDTH 1
|
||||
#define AM33XX_CLKSEL_GFX_FCLK_MASK (1 << 1)
|
||||
|
||||
/*
|
||||
@ -318,6 +388,7 @@
|
||||
* CM_GFX_L3_CLKSTCTRL, CM_GFX_L4LS_GFX_CLKSTCTRL__1, CM_CEFUSE_CLKSTCTRL
|
||||
*/
|
||||
#define AM33XX_CLKTRCTRL_SHIFT 0
|
||||
#define AM33XX_CLKTRCTRL_WIDTH 2
|
||||
#define AM33XX_CLKTRCTRL_MASK (0x3 << 0)
|
||||
|
||||
/*
|
||||
@ -326,34 +397,42 @@
|
||||
* CM_SSC_DELTAMSTEP_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_DELTAMSTEP_SHIFT 0
|
||||
#define AM33XX_DELTAMSTEP_MASK (0x19 << 0)
|
||||
#define AM33XX_DELTAMSTEP_WIDTH 20
|
||||
#define AM33XX_DELTAMSTEP_MASK (0xfffff << 0)
|
||||
|
||||
/* Used by CM_CLKSEL_DPLL_DDR, CM_CLKSEL_DPLL_DISP, CM_CLKSEL_DPLL_MPU */
|
||||
#define AM33XX_DPLL_BYP_CLKSEL_SHIFT 23
|
||||
#define AM33XX_DPLL_BYP_CLKSEL_WIDTH 1
|
||||
#define AM33XX_DPLL_BYP_CLKSEL_MASK (1 << 23)
|
||||
|
||||
/* Used by CM_CLKDCOLDO_DPLL_PER */
|
||||
#define AM33XX_DPLL_CLKDCOLDO_GATE_CTRL_SHIFT 8
|
||||
#define AM33XX_DPLL_CLKDCOLDO_GATE_CTRL_WIDTH 1
|
||||
#define AM33XX_DPLL_CLKDCOLDO_GATE_CTRL_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_CLKDCOLDO_DPLL_PER */
|
||||
#define AM33XX_DPLL_CLKDCOLDO_PWDN_SHIFT 12
|
||||
#define AM33XX_DPLL_CLKDCOLDO_PWDN_WIDTH 1
|
||||
#define AM33XX_DPLL_CLKDCOLDO_PWDN_MASK (1 << 12)
|
||||
|
||||
/* Used by CM_DIV_M2_DPLL_DDR, CM_DIV_M2_DPLL_DISP, CM_DIV_M2_DPLL_MPU */
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_SHIFT 0
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_WIDTH 5
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_MASK (0x1f << 0)
|
||||
|
||||
/* Renamed from DPLL_CLKOUT_DIV Used by CM_DIV_M2_DPLL_PER */
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_0_6_SHIFT 0
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_0_6_MASK (0x06 << 0)
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_0_6_WIDTH 7
|
||||
#define AM33XX_DPLL_CLKOUT_DIV_0_6_MASK (0x7f << 0)
|
||||
|
||||
/* Used by CM_DIV_M2_DPLL_DDR, CM_DIV_M2_DPLL_DISP, CM_DIV_M2_DPLL_MPU */
|
||||
#define AM33XX_DPLL_CLKOUT_DIVCHACK_SHIFT 5
|
||||
#define AM33XX_DPLL_CLKOUT_DIVCHACK_WIDTH 1
|
||||
#define AM33XX_DPLL_CLKOUT_DIVCHACK_MASK (1 << 5)
|
||||
|
||||
/* Renamed from DPLL_CLKOUT_DIVCHACK Used by CM_DIV_M2_DPLL_PER */
|
||||
#define AM33XX_DPLL_CLKOUT_DIVCHACK_M2_PER_SHIFT 7
|
||||
#define AM33XX_DPLL_CLKOUT_DIVCHACK_M2_PER_WIDTH 1
|
||||
#define AM33XX_DPLL_CLKOUT_DIVCHACK_M2_PER_MASK (1 << 7)
|
||||
|
||||
/*
|
||||
@ -361,6 +440,7 @@
|
||||
* CM_DIV_M2_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_DPLL_CLKOUT_GATE_CTRL_SHIFT 8
|
||||
#define AM33XX_DPLL_CLKOUT_GATE_CTRL_WIDTH 1
|
||||
#define AM33XX_DPLL_CLKOUT_GATE_CTRL_MASK (1 << 8)
|
||||
|
||||
/*
|
||||
@ -368,19 +448,22 @@
|
||||
* CM_CLKSEL_DPLL_MPU
|
||||
*/
|
||||
#define AM33XX_DPLL_DIV_SHIFT 0
|
||||
#define AM33XX_DPLL_DIV_WIDTH 7
|
||||
#define AM33XX_DPLL_DIV_MASK (0x7f << 0)
|
||||
|
||||
#define AM33XX_DPLL_PER_DIV_MASK (0xff << 0)
|
||||
|
||||
/* Renamed from DPLL_DIV Used by CM_CLKSEL_DPLL_PERIPH */
|
||||
#define AM33XX_DPLL_DIV_0_7_SHIFT 0
|
||||
#define AM33XX_DPLL_DIV_0_7_MASK (0x07 << 0)
|
||||
#define AM33XX_DPLL_DIV_0_7_WIDTH 8
|
||||
#define AM33XX_DPLL_DIV_0_7_MASK (0xff << 0)
|
||||
|
||||
/*
|
||||
* Used by CM_CLKMODE_DPLL_CORE, CM_CLKMODE_DPLL_DDR, CM_CLKMODE_DPLL_DISP,
|
||||
* CM_CLKMODE_DPLL_MPU
|
||||
*/
|
||||
#define AM33XX_DPLL_DRIFTGUARD_EN_SHIFT 8
|
||||
#define AM33XX_DPLL_DRIFTGUARD_EN_WIDTH 1
|
||||
#define AM33XX_DPLL_DRIFTGUARD_EN_MASK (1 << 8)
|
||||
|
||||
/*
|
||||
@ -388,6 +471,7 @@
|
||||
* CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_DPLL_EN_SHIFT 0
|
||||
#define AM33XX_DPLL_EN_WIDTH 3
|
||||
#define AM33XX_DPLL_EN_MASK (0x7 << 0)
|
||||
|
||||
/*
|
||||
@ -395,6 +479,7 @@
|
||||
* CM_CLKMODE_DPLL_MPU
|
||||
*/
|
||||
#define AM33XX_DPLL_LPMODE_EN_SHIFT 10
|
||||
#define AM33XX_DPLL_LPMODE_EN_WIDTH 1
|
||||
#define AM33XX_DPLL_LPMODE_EN_MASK (1 << 10)
|
||||
|
||||
/*
|
||||
@ -402,10 +487,12 @@
|
||||
* CM_CLKSEL_DPLL_MPU
|
||||
*/
|
||||
#define AM33XX_DPLL_MULT_SHIFT 8
|
||||
#define AM33XX_DPLL_MULT_WIDTH 11
|
||||
#define AM33XX_DPLL_MULT_MASK (0x7ff << 8)
|
||||
|
||||
/* Renamed from DPLL_MULT Used by CM_CLKSEL_DPLL_PERIPH */
|
||||
#define AM33XX_DPLL_MULT_PERIPH_SHIFT 8
|
||||
#define AM33XX_DPLL_MULT_PERIPH_WIDTH 12
|
||||
#define AM33XX_DPLL_MULT_PERIPH_MASK (0xfff << 8)
|
||||
|
||||
/*
|
||||
@ -413,17 +500,20 @@
|
||||
* CM_CLKMODE_DPLL_MPU
|
||||
*/
|
||||
#define AM33XX_DPLL_REGM4XEN_SHIFT 11
|
||||
#define AM33XX_DPLL_REGM4XEN_WIDTH 1
|
||||
#define AM33XX_DPLL_REGM4XEN_MASK (1 << 11)
|
||||
|
||||
/* Used by CM_CLKSEL_DPLL_PERIPH */
|
||||
#define AM33XX_DPLL_SD_DIV_SHIFT 24
|
||||
#define AM33XX_DPLL_SD_DIV_MASK (24, 31)
|
||||
#define AM33XX_DPLL_SD_DIV_WIDTH 8
|
||||
#define AM33XX_DPLL_SD_DIV_MASK (0xff << 24)
|
||||
|
||||
/*
|
||||
* Used by CM_CLKMODE_DPLL_CORE, CM_CLKMODE_DPLL_DDR, CM_CLKMODE_DPLL_DISP,
|
||||
* CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_DPLL_SSC_ACK_SHIFT 13
|
||||
#define AM33XX_DPLL_SSC_ACK_WIDTH 1
|
||||
#define AM33XX_DPLL_SSC_ACK_MASK (1 << 13)
|
||||
|
||||
/*
|
||||
@ -431,6 +521,7 @@
|
||||
* CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_DPLL_SSC_DOWNSPREAD_SHIFT 14
|
||||
#define AM33XX_DPLL_SSC_DOWNSPREAD_WIDTH 1
|
||||
#define AM33XX_DPLL_SSC_DOWNSPREAD_MASK (1 << 14)
|
||||
|
||||
/*
|
||||
@ -438,54 +529,67 @@
|
||||
* CM_CLKMODE_DPLL_MPU, CM_CLKMODE_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_DPLL_SSC_EN_SHIFT 12
|
||||
#define AM33XX_DPLL_SSC_EN_WIDTH 1
|
||||
#define AM33XX_DPLL_SSC_EN_MASK (1 << 12)
|
||||
|
||||
/* Used by CM_DIV_M4_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_DIV_SHIFT 0
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_DIV_WIDTH 5
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_DIV_MASK (0x1f << 0)
|
||||
|
||||
/* Used by CM_DIV_M4_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_DIVCHACK_SHIFT 5
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_DIVCHACK_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_DIVCHACK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_DIV_M4_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_GATE_CTRL_SHIFT 8
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_GATE_CTRL_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_GATE_CTRL_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_DIV_M4_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_PWDN_SHIFT 12
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_PWDN_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT1_PWDN_MASK (1 << 12)
|
||||
|
||||
/* Used by CM_DIV_M5_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_DIV_SHIFT 0
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_DIV_WIDTH 5
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_DIV_MASK (0x1f << 0)
|
||||
|
||||
/* Used by CM_DIV_M5_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_DIVCHACK_SHIFT 5
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_DIVCHACK_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_DIVCHACK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_DIV_M5_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_GATE_CTRL_SHIFT 8
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_GATE_CTRL_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_GATE_CTRL_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_DIV_M5_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_PWDN_SHIFT 12
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_PWDN_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT2_PWDN_MASK (1 << 12)
|
||||
|
||||
/* Used by CM_DIV_M6_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIV_SHIFT 0
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIV_MASK (0x04 << 0)
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIV_WIDTH 5
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIV_MASK (0x1f << 0)
|
||||
|
||||
/* Used by CM_DIV_M6_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIVCHACK_SHIFT 5
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIVCHACK_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_DIVCHACK_MASK (1 << 5)
|
||||
|
||||
/* Used by CM_DIV_M6_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_GATE_CTRL_SHIFT 8
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_GATE_CTRL_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_GATE_CTRL_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_DIV_M6_DPLL_CORE */
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_PWDN_SHIFT 12
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_PWDN_WIDTH 1
|
||||
#define AM33XX_HSDIVIDER_CLKOUT3_PWDN_MASK (1 << 12)
|
||||
|
||||
/*
|
||||
@ -522,11 +626,12 @@
|
||||
* CM_GFX_MMUCFG_CLKCTRL, CM_GFX_MMUDATA_CLKCTRL, CM_CEFUSE_CEFUSE_CLKCTRL
|
||||
*/
|
||||
#define AM33XX_IDLEST_SHIFT 16
|
||||
#define AM33XX_IDLEST_WIDTH 2
|
||||
#define AM33XX_IDLEST_MASK (0x3 << 16)
|
||||
#define AM33XX_IDLEST_VAL 0x3
|
||||
|
||||
/* Used by CM_MAC_CLKSEL */
|
||||
#define AM33XX_MII_CLK_SEL_SHIFT 2
|
||||
#define AM33XX_MII_CLK_SEL_WIDTH 1
|
||||
#define AM33XX_MII_CLK_SEL_MASK (1 << 2)
|
||||
|
||||
/*
|
||||
@ -535,7 +640,8 @@
|
||||
* CM_SSC_MODFREQDIV_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_MODFREQDIV_EXPONENT_SHIFT 8
|
||||
#define AM33XX_MODFREQDIV_EXPONENT_MASK (0x10 << 8)
|
||||
#define AM33XX_MODFREQDIV_EXPONENT_WIDTH 3
|
||||
#define AM33XX_MODFREQDIV_EXPONENT_MASK (0x7 << 8)
|
||||
|
||||
/*
|
||||
* Used by CM_SSC_MODFREQDIV_DPLL_CORE, CM_SSC_MODFREQDIV_DPLL_DDR,
|
||||
@ -543,7 +649,8 @@
|
||||
* CM_SSC_MODFREQDIV_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_MODFREQDIV_MANTISSA_SHIFT 0
|
||||
#define AM33XX_MODFREQDIV_MANTISSA_MASK (0x06 << 0)
|
||||
#define AM33XX_MODFREQDIV_MANTISSA_WIDTH 7
|
||||
#define AM33XX_MODFREQDIV_MANTISSA_MASK (0x7f << 0)
|
||||
|
||||
/*
|
||||
* Used by CM_MPU_MPU_CLKCTRL, CM_RTC_RTC_CLKCTRL, CM_PER_AES0_CLKCTRL,
|
||||
@ -580,42 +687,52 @@
|
||||
* CM_CEFUSE_CEFUSE_CLKCTRL
|
||||
*/
|
||||
#define AM33XX_MODULEMODE_SHIFT 0
|
||||
#define AM33XX_MODULEMODE_WIDTH 2
|
||||
#define AM33XX_MODULEMODE_MASK (0x3 << 0)
|
||||
|
||||
/* Used by CM_WKUP_DEBUGSS_CLKCTRL */
|
||||
#define AM33XX_OPTCLK_DEBUG_CLKA_SHIFT 30
|
||||
#define AM33XX_OPTCLK_DEBUG_CLKA_WIDTH 1
|
||||
#define AM33XX_OPTCLK_DEBUG_CLKA_MASK (1 << 30)
|
||||
|
||||
/* Used by CM_WKUP_DEBUGSS_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_DBGSYSCLK_SHIFT 19
|
||||
#define AM33XX_OPTFCLKEN_DBGSYSCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_DBGSYSCLK_MASK (1 << 19)
|
||||
|
||||
/* Used by CM_WKUP_GPIO0_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO0_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO0_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO0_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_PER_GPIO1_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO_1_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO_1_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO_1_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_PER_GPIO2_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO_2_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO_2_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO_2_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_PER_GPIO3_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO_3_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO_3_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO_3_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_PER_GPIO4_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO_4_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO_4_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO_4_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_PER_GPIO5_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO_5_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO_5_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO_5_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_PER_GPIO6_CLKCTRL */
|
||||
#define AM33XX_OPTFCLKEN_GPIO_6_GDBCLK_SHIFT 18
|
||||
#define AM33XX_OPTFCLKEN_GPIO_6_GDBCLK_WIDTH 1
|
||||
#define AM33XX_OPTFCLKEN_GPIO_6_GDBCLK_MASK (1 << 18)
|
||||
|
||||
/*
|
||||
@ -627,25 +744,30 @@
|
||||
* CM_WKUP_WKUP_M3_CLKCTRL, CM_GFX_BITBLT_CLKCTRL, CM_GFX_GFX_CLKCTRL
|
||||
*/
|
||||
#define AM33XX_STBYST_SHIFT 18
|
||||
#define AM33XX_STBYST_WIDTH 1
|
||||
#define AM33XX_STBYST_MASK (1 << 18)
|
||||
|
||||
/* Used by CM_WKUP_DEBUGSS_CLKCTRL */
|
||||
#define AM33XX_STM_PMD_CLKDIVSEL_SHIFT 27
|
||||
#define AM33XX_STM_PMD_CLKDIVSEL_MASK (0x29 << 27)
|
||||
#define AM33XX_STM_PMD_CLKDIVSEL_WIDTH 3
|
||||
#define AM33XX_STM_PMD_CLKDIVSEL_MASK (0x7 << 27)
|
||||
|
||||
/* Used by CM_WKUP_DEBUGSS_CLKCTRL */
|
||||
#define AM33XX_STM_PMD_CLKSEL_SHIFT 22
|
||||
#define AM33XX_STM_PMD_CLKSEL_MASK (0x23 << 22)
|
||||
#define AM33XX_STM_PMD_CLKSEL_WIDTH 2
|
||||
#define AM33XX_STM_PMD_CLKSEL_MASK (0x3 << 22)
|
||||
|
||||
/*
|
||||
* Used by CM_IDLEST_DPLL_CORE, CM_IDLEST_DPLL_DDR, CM_IDLEST_DPLL_DISP,
|
||||
* CM_IDLEST_DPLL_MPU, CM_IDLEST_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_ST_DPLL_CLK_SHIFT 0
|
||||
#define AM33XX_ST_DPLL_CLK_WIDTH 1
|
||||
#define AM33XX_ST_DPLL_CLK_MASK (1 << 0)
|
||||
|
||||
/* Used by CM_CLKDCOLDO_DPLL_PER */
|
||||
#define AM33XX_ST_DPLL_CLKDCOLDO_SHIFT 8
|
||||
#define AM33XX_ST_DPLL_CLKDCOLDO_WIDTH 1
|
||||
#define AM33XX_ST_DPLL_CLKDCOLDO_MASK (1 << 8)
|
||||
|
||||
/*
|
||||
@ -653,18 +775,22 @@
|
||||
* CM_DIV_M2_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_ST_DPLL_CLKOUT_SHIFT 9
|
||||
#define AM33XX_ST_DPLL_CLKOUT_WIDTH 1
|
||||
#define AM33XX_ST_DPLL_CLKOUT_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_DIV_M4_DPLL_CORE */
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT1_SHIFT 9
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT1_WIDTH 1
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT1_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_DIV_M5_DPLL_CORE */
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT2_SHIFT 9
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT2_WIDTH 1
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT2_MASK (1 << 9)
|
||||
|
||||
/* Used by CM_DIV_M6_DPLL_CORE */
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT3_SHIFT 9
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT3_WIDTH 1
|
||||
#define AM33XX_ST_HSDIVIDER_CLKOUT3_MASK (1 << 9)
|
||||
|
||||
/*
|
||||
@ -672,16 +798,20 @@
|
||||
* CM_IDLEST_DPLL_MPU, CM_IDLEST_DPLL_PER
|
||||
*/
|
||||
#define AM33XX_ST_MN_BYPASS_SHIFT 8
|
||||
#define AM33XX_ST_MN_BYPASS_WIDTH 1
|
||||
#define AM33XX_ST_MN_BYPASS_MASK (1 << 8)
|
||||
|
||||
/* Used by CM_WKUP_DEBUGSS_CLKCTRL */
|
||||
#define AM33XX_TRC_PMD_CLKDIVSEL_SHIFT 24
|
||||
#define AM33XX_TRC_PMD_CLKDIVSEL_MASK (0x26 << 24)
|
||||
#define AM33XX_TRC_PMD_CLKDIVSEL_WIDTH 3
|
||||
#define AM33XX_TRC_PMD_CLKDIVSEL_MASK (0x7 << 24)
|
||||
|
||||
/* Used by CM_WKUP_DEBUGSS_CLKCTRL */
|
||||
#define AM33XX_TRC_PMD_CLKSEL_SHIFT 20
|
||||
#define AM33XX_TRC_PMD_CLKSEL_MASK (0x21 << 20)
|
||||
#define AM33XX_TRC_PMD_CLKSEL_WIDTH 2
|
||||
#define AM33XX_TRC_PMD_CLKSEL_MASK (0x3 << 20)
|
||||
|
||||
/* Used by CONTROL_SEC_CLK_CTRL */
|
||||
#define AM33XX_TIMER0_CLKSEL_WIDTH 2
|
||||
#define AM33XX_TIMER0_CLKSEL_MASK (0x3 << 4)
|
||||
#endif
|
||||
|
@ -218,6 +218,8 @@
|
||||
#define OMAP3430_ST_MAILBOXES_MASK (1 << 7)
|
||||
#define OMAP3430_ST_OMAPCTRL_SHIFT 6
|
||||
#define OMAP3430_ST_OMAPCTRL_MASK (1 << 6)
|
||||
#define OMAP3430_ST_SAD2D_SHIFT 3
|
||||
#define OMAP3430_ST_SAD2D_MASK (1 << 3)
|
||||
#define OMAP3430_ST_SDMA_SHIFT 2
|
||||
#define OMAP3430_ST_SDMA_MASK (1 << 2)
|
||||
#define OMAP3430_ST_SDRC_SHIFT 1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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"
|
||||
@ -36,7 +35,7 @@
|
||||
#define OMAP2XXX_APLL_AUTOIDLE_LOW_POWER_STOP 0x3
|
||||
|
||||
static const u8 cm_idlest_offs[] = {
|
||||
CM_IDLEST1, CM_IDLEST2, OMAP2430_CM_IDLEST3
|
||||
CM_IDLEST1, CM_IDLEST2, OMAP2430_CM_IDLEST3, OMAP24XX_CM_IDLEST4
|
||||
};
|
||||
|
||||
u32 omap2_cm_read_mod_reg(s16 module, u16 idx)
|
||||
|
@ -71,6 +71,7 @@
|
||||
#define OMAP24XX_CM_FCLKEN2 0x0004
|
||||
#define OMAP24XX_CM_ICLKEN4 0x001c
|
||||
#define OMAP24XX_CM_AUTOIDLE4 0x003c
|
||||
#define OMAP24XX_CM_IDLEST4 0x002c
|
||||
|
||||
#define OMAP2430_CM_IDLEST3 0x0028
|
||||
|
||||
|
@ -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) || \
|
||||
@ -119,8 +120,7 @@ void __init omap_nand_flash_init(int options, struct mtd_partition *parts,
|
||||
}
|
||||
|
||||
if (nandcs > GPMC_CS_NUM) {
|
||||
printk(KERN_INFO "NAND: Unable to find configuration "
|
||||
"in GPMC\n ");
|
||||
pr_info("NAND: Unable to find configuration in GPMC\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user