Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
Pull in Linus's tree to get the commits that blew away ARCH_USES_GETTIMEOFFSET but didn't update Sparc correctly, so that I can apply Stephen Rothwell's fix for that mis-merge. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
c2e1ff39c1
@ -8,9 +8,8 @@ Introduction
|
||||
weblink : http://www.st.com/spear
|
||||
|
||||
The ST Microelectronics SPEAr range of ARM9/CortexA9 System-on-Chip CPUs are
|
||||
supported by the 'spear' platform of ARM Linux. Currently SPEAr300,
|
||||
SPEAr310, SPEAr320 and SPEAr600 SOCs are supported. Support for the SPEAr13XX
|
||||
series is in progress.
|
||||
supported by the 'spear' platform of ARM Linux. Currently SPEAr1310,
|
||||
SPEAr1340, SPEAr300, SPEAr310, SPEAr320 and SPEAr600 SOCs are supported.
|
||||
|
||||
Hierarchy in SPEAr is as follows:
|
||||
|
||||
@ -26,33 +25,36 @@ Introduction
|
||||
- SPEAr600 (SOC)
|
||||
- SPEAr600 Evaluation Board
|
||||
- SPEAr13XX (13XX SOC series, based on ARM CORTEXA9)
|
||||
- SPEAr1300 (SOC)
|
||||
- SPEAr1310 (SOC)
|
||||
- SPEAr1310 Evaluation Board
|
||||
- SPEAr1340 (SOC)
|
||||
- SPEAr1340 Evaluation Board
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
A generic configuration is provided for each machine, and can be used as the
|
||||
default by
|
||||
make spear600_defconfig
|
||||
make spear300_defconfig
|
||||
make spear310_defconfig
|
||||
make spear320_defconfig
|
||||
make spear13xx_defconfig
|
||||
make spear3xx_defconfig
|
||||
make spear6xx_defconfig
|
||||
|
||||
Layout
|
||||
------
|
||||
|
||||
The common files for multiple machine families (SPEAr3XX, SPEAr6XX and
|
||||
SPEAr13XX) are located in the platform code contained in arch/arm/plat-spear
|
||||
The common files for multiple machine families (SPEAr3xx, SPEAr6xx and
|
||||
SPEAr13xx) are located in the platform code contained in arch/arm/plat-spear
|
||||
with headers in plat/.
|
||||
|
||||
Each machine series have a directory with name arch/arm/mach-spear followed by
|
||||
series name. Like mach-spear3xx, mach-spear6xx and mach-spear13xx.
|
||||
|
||||
Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c and for
|
||||
spear6xx is mach-spear6xx/spear6xx.c. mach-spear* also contain soc/machine
|
||||
specific files, like spear300.c, spear310.c, spear320.c and spear600.c.
|
||||
mach-spear* doesn't contains board specific files as they fully support
|
||||
Flattened Device Tree.
|
||||
Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c, for
|
||||
spear6xx is mach-spear6xx/spear6xx.c and for spear13xx family is
|
||||
mach-spear13xx/spear13xx.c. mach-spear* also contain soc/machine specific
|
||||
files, like spear1310.c, spear1340.c spear300.c, spear310.c, spear320.c and
|
||||
spear600.c. mach-spear* doesn't contains board specific files as they fully
|
||||
support Flattened Device Tree.
|
||||
|
||||
|
||||
Document Author
|
||||
|
@ -1,38 +1,34 @@
|
||||
Linux 2.4 on the CRIS architecture
|
||||
==================================
|
||||
$Id: README,v 1.7 2001/04/19 12:38:32 bjornw Exp $
|
||||
Linux on the CRIS architecture
|
||||
==============================
|
||||
|
||||
This is a port of Linux 2.4 to Axis Communications ETRAX 100LX embedded
|
||||
network CPU. For more information about CRIS and ETRAX please see further
|
||||
below.
|
||||
This is a port of Linux to Axis Communications ETRAX 100LX,
|
||||
ETRAX FS and ARTPEC-3 embedded network CPUs.
|
||||
|
||||
For more information about CRIS and ETRAX please see further below.
|
||||
|
||||
In order to compile this you need a version of gcc with support for the
|
||||
ETRAX chip family. Please see this link for more information on how to
|
||||
ETRAX chip family. Please see this link for more information on how to
|
||||
download the compiler and other tools useful when building and booting
|
||||
software for the ETRAX platform:
|
||||
|
||||
http://developer.axis.com/doc/software/devboard_lx/install-howto.html
|
||||
|
||||
<more specific information should come in this document later>
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:install-howto-2_20
|
||||
|
||||
What is CRIS ?
|
||||
--------------
|
||||
|
||||
CRIS is an acronym for 'Code Reduced Instruction Set'. It is the CPU
|
||||
architecture in Axis Communication AB's range of embedded network CPU's,
|
||||
called ETRAX. The latest CPU is called ETRAX 100LX, where LX stands for
|
||||
'Linux' because the chip was designed to be a good host for the Linux
|
||||
operating system.
|
||||
called ETRAX.
|
||||
|
||||
The ETRAX 100LX chip
|
||||
--------------------
|
||||
|
||||
For reference, please see the press-release:
|
||||
For reference, please see the following link:
|
||||
|
||||
http://www.axis.com/news/us/001101_etrax.htm
|
||||
http://www.axis.com/products/dev_etrax_100lx/index.htm
|
||||
|
||||
The ETRAX 100LX is a 100 MIPS processor with 8kB cache, MMU, and a very broad
|
||||
range of built-in interfaces, all with modern scatter/gather DMA.
|
||||
The ETRAX 100LX is a 100 MIPS processor with 8kB cache, MMU, and a very broad
|
||||
range of built-in interfaces, all with modern scatter/gather DMA.
|
||||
|
||||
Memory interfaces:
|
||||
|
||||
@ -51,20 +47,28 @@ I/O interfaces:
|
||||
* SCSI
|
||||
* two parallel-ports
|
||||
* two generic 8-bit ports
|
||||
|
||||
(not all interfaces are available at the same time due to chip pin
|
||||
|
||||
(not all interfaces are available at the same time due to chip pin
|
||||
multiplexing)
|
||||
|
||||
The previous version of the ETRAX, the ETRAX 100, sits in almost all of
|
||||
Axis shipping thin-servers like the Axis 2100 web camera or the ETRAX 100
|
||||
developer-board. It lacks an MMU so the Linux we run on that is a version
|
||||
of uClinux (Linux 2.0 without MM-support) ported to the CRIS architecture.
|
||||
The new Linux 2.4 port has full MM and needs a CPU with an MMU, so it will
|
||||
not run on the ETRAX 100.
|
||||
ETRAX 100LX is CRISv10 architecture.
|
||||
|
||||
A version of the Axis developer-board with ETRAX 100LX (running Linux
|
||||
2.4) is now available. For more information please see developer.axis.com.
|
||||
|
||||
The ETRAX FS and ARTPEC-3 chips
|
||||
-------------------------------
|
||||
|
||||
The ETRAX FS is a 200MHz 32-bit RISC processor with on-chip 16kB
|
||||
I-cache and 16kB D-cache and with a wide range of device interfaces
|
||||
including multiple high speed serial ports and an integrated USB 1.1 PHY.
|
||||
|
||||
The ARTPEC-3 is a variant of the ETRAX FS with additional IO-units
|
||||
used by the Axis Communications network cameras.
|
||||
|
||||
See below link for more information:
|
||||
|
||||
http://www.axis.com/products/dev_etrax_fs/index.htm
|
||||
|
||||
ETRAX FS and ARTPEC-3 are both CRISv32 architectures.
|
||||
|
||||
Bootlog
|
||||
-------
|
||||
@ -182,10 +186,6 @@ SwapFree: 0 kB
|
||||
-rwxr-xr-x 1 342 100 16252 Jan 01 00:00 telnetd
|
||||
|
||||
|
||||
(All programs are statically linked to the libc at this point - we have not ported the
|
||||
shared libraries yet)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,14 @@
|
||||
Freescale i.MX Platforms Device Tree Bindings
|
||||
-----------------------------------------------
|
||||
|
||||
i.MX23 Evaluation Kit
|
||||
Required root node properties:
|
||||
- compatible = "fsl,imx23-evk", "fsl,imx23";
|
||||
|
||||
i.MX28 Evaluation Kit
|
||||
Required root node properties:
|
||||
- compatible = "fsl,imx28-evk", "fsl,imx28";
|
||||
|
||||
i.MX51 Babbage Board
|
||||
Required root node properties:
|
||||
- compatible = "fsl,imx51-babbage", "fsl,imx51";
|
||||
@ -29,6 +37,10 @@ i.MX6 Quad SABRE Lite Board
|
||||
Required root node properties:
|
||||
- compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";
|
||||
|
||||
i.MX6 Quad SABRE Smart Device Board
|
||||
Required root node properties:
|
||||
- compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
|
||||
|
||||
Generic i.MX boards
|
||||
-------------------
|
||||
|
||||
|
@ -0,0 +1,52 @@
|
||||
* Samsung Exynos Interrupt Combiner Controller
|
||||
|
||||
Samsung's Exynos4 architecture includes a interrupt combiner controller which
|
||||
can combine interrupt sources as a group and provide a single interrupt request
|
||||
for the group. The interrupt request from each group are connected to a parent
|
||||
interrupt controller, such as GIC in case of Exynos4210.
|
||||
|
||||
The interrupt combiner controller consists of multiple combiners. Upto eight
|
||||
interrupt sources can be connected to a combiner. The combiner outputs one
|
||||
combined interrupt for its eight interrupt sources. The combined interrupt
|
||||
is usually connected to a parent interrupt controller.
|
||||
|
||||
A single node in the device tree is used to describe the interrupt combiner
|
||||
controller module (which includes multiple combiners). A combiner in the
|
||||
interrupt controller module shares config/control registers with other
|
||||
combiners. For example, a 32-bit interrupt enable/disable config register
|
||||
can accommodate upto 4 interrupt combiners (with each combiner supporting
|
||||
upto 8 interrupt sources).
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "samsung,exynos4210-combiner".
|
||||
- interrupt-controller: Identifies the node as an interrupt controller.
|
||||
- #interrupt-cells: should be <2>. The meaning of the cells are
|
||||
* First Cell: Combiner Group Number.
|
||||
* Second Cell: Interrupt number within the group.
|
||||
- reg: Base address and size of interrupt combiner registers.
|
||||
- interrupts: The list of interrupts generated by the combiners which are then
|
||||
connected to a parent interrupt controller. The format of the interrupt
|
||||
specifier depends in the interrupt parent controller.
|
||||
|
||||
Optional properties:
|
||||
- samsung,combiner-nr: The number of interrupt combiners supported. If this
|
||||
property is not specified, the default number of combiners is assumed
|
||||
to be 16.
|
||||
- interrupt-parent: pHandle of the parent interrupt controller, if not
|
||||
inherited from the parent node.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
The following is a an example from the Exynos4210 SoC dtsi file.
|
||||
|
||||
combiner:interrupt-controller@10440000 {
|
||||
compatible = "samsung,exynos4210-combiner";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x10440000 0x1000>;
|
||||
interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
|
||||
<0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
|
||||
<0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
|
||||
<0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
|
||||
};
|
18
Documentation/devicetree/bindings/arm/spear-timer.txt
Normal file
18
Documentation/devicetree/bindings/arm/spear-timer.txt
Normal file
@ -0,0 +1,18 @@
|
||||
* SPEAr ARM Timer
|
||||
|
||||
** Timer node required properties:
|
||||
|
||||
- compatible : Should be:
|
||||
"st,spear-timer"
|
||||
- reg: Address range of the timer registers
|
||||
- interrupt-parent: Should be the phandle for the interrupt controller
|
||||
that services interrupts for this device
|
||||
- interrupt: Should contain the timer interrupt number
|
||||
|
||||
Example:
|
||||
|
||||
timer@f0000000 {
|
||||
compatible = "st,spear-timer";
|
||||
reg = <0xf0000000 0x400>;
|
||||
interrupts = <2>;
|
||||
};
|
@ -2,25 +2,25 @@ ST SPEAr Platforms Device Tree Bindings
|
||||
---------------------------------------
|
||||
|
||||
Boards with the ST SPEAr600 SoC shall have the following properties:
|
||||
|
||||
Required root node property:
|
||||
|
||||
compatible = "st,spear600";
|
||||
|
||||
Boards with the ST SPEAr300 SoC shall have the following properties:
|
||||
|
||||
Required root node property:
|
||||
|
||||
compatible = "st,spear300";
|
||||
|
||||
Boards with the ST SPEAr310 SoC shall have the following properties:
|
||||
|
||||
Required root node property:
|
||||
|
||||
compatible = "st,spear310";
|
||||
|
||||
Boards with the ST SPEAr320 SoC shall have the following properties:
|
||||
|
||||
Required root node property:
|
||||
|
||||
compatible = "st,spear320";
|
||||
|
||||
Boards with the ST SPEAr1310 SoC shall have the following properties:
|
||||
Required root node property:
|
||||
compatible = "st,spear1310";
|
||||
|
||||
Boards with the ST SPEAr1340 SoC shall have the following properties:
|
||||
Required root node property:
|
||||
compatible = "st,spear1340";
|
||||
|
@ -0,0 +1,11 @@
|
||||
NVIDIA Tegra AHB
|
||||
|
||||
Required properties:
|
||||
- compatible : "nvidia,tegra20-ahb" or "nvidia,tegra30-ahb"
|
||||
- reg : Should contain 1 register ranges(address and length)
|
||||
|
||||
Example:
|
||||
ahb: ahb@6000c004 {
|
||||
compatible = "nvidia,tegra20-ahb";
|
||||
reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */
|
||||
};
|
19
Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt
Normal file
19
Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt
Normal file
@ -0,0 +1,19 @@
|
||||
* Freescale MXS DMA
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,<chip>-dma-apbh" or "fsl,<chip>-dma-apbx"
|
||||
- reg : Should contain registers location and length
|
||||
|
||||
Supported chips:
|
||||
imx23, imx28.
|
||||
|
||||
Examples:
|
||||
dma-apbh@80004000 {
|
||||
compatible = "fsl,imx28-dma-apbh";
|
||||
reg = <0x80004000 2000>;
|
||||
};
|
||||
|
||||
dma-apbx@80024000 {
|
||||
compatible = "fsl,imx28-dma-apbx";
|
||||
reg = <0x80024000 2000>;
|
||||
};
|
17
Documentation/devicetree/bindings/dma/snps-dma.txt
Normal file
17
Documentation/devicetree/bindings/dma/snps-dma.txt
Normal file
@ -0,0 +1,17 @@
|
||||
* Synopsys Designware DMA Controller
|
||||
|
||||
Required properties:
|
||||
- compatible: "snps,dma-spear1340"
|
||||
- reg: Address range of the DMAC registers
|
||||
- interrupt-parent: Should be the phandle for the interrupt controller
|
||||
that services interrupts for this device
|
||||
- interrupt: Should contain the DMAC interrupt number
|
||||
|
||||
Example:
|
||||
|
||||
dma@fc000000 {
|
||||
compatible = "snps,dma-spear1340";
|
||||
reg = <0xfc000000 0x1000>;
|
||||
interrupt-parent = <&vic1>;
|
||||
interrupts = <12>;
|
||||
};
|
87
Documentation/devicetree/bindings/gpio/gpio-mxs.txt
Normal file
87
Documentation/devicetree/bindings/gpio/gpio-mxs.txt
Normal file
@ -0,0 +1,87 @@
|
||||
* Freescale MXS GPIO controller
|
||||
|
||||
The Freescale MXS GPIO controller is part of MXS PIN controller. The
|
||||
GPIOs are organized in port/bank. Each port consists of 32 GPIOs.
|
||||
|
||||
As the GPIO controller is embedded in the PIN controller and all the
|
||||
GPIO ports share the same IO space with PIN controller, the GPIO node
|
||||
will be represented as sub-nodes of MXS pinctrl node.
|
||||
|
||||
Required properties for GPIO node:
|
||||
- compatible : Should be "fsl,<soc>-gpio". The supported SoCs include
|
||||
imx23 and imx28.
|
||||
- interrupts : Should be the port interrupt shared by all 32 pins.
|
||||
- gpio-controller : Marks the device node as a gpio controller.
|
||||
- #gpio-cells : Should be two. The first cell is the pin number and
|
||||
the second cell is used to specify optional parameters (currently
|
||||
unused).
|
||||
- interrupt-controller: Marks the device node as an interrupt controller.
|
||||
- #interrupt-cells : Should be 2. The first cell is the GPIO number.
|
||||
The second cell bits[3:0] is used to specify trigger type and level flags:
|
||||
1 = low-to-high edge triggered.
|
||||
2 = high-to-low edge triggered.
|
||||
4 = active high level-sensitive.
|
||||
8 = active low level-sensitive.
|
||||
|
||||
Note: Each GPIO port should have an alias correctly numbered in "aliases"
|
||||
node.
|
||||
|
||||
Examples:
|
||||
|
||||
aliases {
|
||||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
gpio3 = &gpio3;
|
||||
gpio4 = &gpio4;
|
||||
};
|
||||
|
||||
pinctrl@80018000 {
|
||||
compatible = "fsl,imx28-pinctrl", "simple-bus";
|
||||
reg = <0x80018000 2000>;
|
||||
|
||||
gpio0: gpio@0 {
|
||||
compatible = "fsl,imx28-gpio";
|
||||
interrupts = <127>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio1: gpio@1 {
|
||||
compatible = "fsl,imx28-gpio";
|
||||
interrupts = <126>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: gpio@2 {
|
||||
compatible = "fsl,imx28-gpio";
|
||||
interrupts = <125>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio3: gpio@3 {
|
||||
compatible = "fsl,imx28-gpio";
|
||||
interrupts = <124>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio4: gpio@4 {
|
||||
compatible = "fsl,imx28-gpio";
|
||||
interrupts = <123>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
16
Documentation/devicetree/bindings/i2c/i2c-mxs.txt
Normal file
16
Documentation/devicetree/bindings/i2c/i2c-mxs.txt
Normal file
@ -0,0 +1,16 @@
|
||||
* Freescale MXS Inter IC (I2C) Controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "fsl,<chip>-i2c"
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain ERROR and DMA interrupts
|
||||
|
||||
Examples:
|
||||
|
||||
i2c0: i2c@80058000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-i2c";
|
||||
reg = <0x80058000 2000>;
|
||||
interrupts = <111 68>;
|
||||
};
|
60
Documentation/devicetree/bindings/i2c/mux.txt
Normal file
60
Documentation/devicetree/bindings/i2c/mux.txt
Normal file
@ -0,0 +1,60 @@
|
||||
Common i2c bus multiplexer/switch properties.
|
||||
|
||||
An i2c bus multiplexer/switch will have several child busses that are
|
||||
numbered uniquely in a device dependent manner. The nodes for an i2c bus
|
||||
multiplexer/switch will have one child node for each child
|
||||
bus.
|
||||
|
||||
Required properties:
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
|
||||
Required properties for child nodes:
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
- reg : The sub-bus number.
|
||||
|
||||
Optional properties for child nodes:
|
||||
- Other properties specific to the multiplexer/switch hardware.
|
||||
- Child nodes conforming to i2c bus binding
|
||||
|
||||
|
||||
Example :
|
||||
|
||||
/*
|
||||
An NXP pca9548 8 channel I2C multiplexer at address 0x70
|
||||
with two NXP pca8574 GPIO expanders attached, one each to
|
||||
ports 3 and 4.
|
||||
*/
|
||||
|
||||
mux@70 {
|
||||
compatible = "nxp,pca9548";
|
||||
reg = <0x70>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
i2c@3 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <3>;
|
||||
|
||||
gpio1: gpio@38 {
|
||||
compatible = "nxp,pca8574";
|
||||
reg = <0x38>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
i2c@4 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <4>;
|
||||
|
||||
gpio2: gpio@38 {
|
||||
compatible = "nxp,pca8574";
|
||||
reg = <0x38>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
};
|
@ -6,14 +6,18 @@ Required properties:
|
||||
- compatible: value should be either of the following.
|
||||
(a) "samsung, s3c2410-i2c", for i2c compatible with s3c2410 i2c.
|
||||
(b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c.
|
||||
(c) "samsung, s3c2440-hdmiphy-i2c", for s3c2440-like i2c used
|
||||
inside HDMIPHY block found on several samsung SoCs
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- interrupts: interrupt number to the cpu.
|
||||
- samsung,i2c-sda-delay: Delay (in ns) applied to data line (SDA) edges.
|
||||
- gpios: The order of the gpios should be the following: <SDA, SCL>.
|
||||
The gpio specifier depends on the gpio controller.
|
||||
|
||||
Optional properties:
|
||||
- gpios: The order of the gpios should be the following: <SDA, SCL>.
|
||||
The gpio specifier depends on the gpio controller. Required in all
|
||||
cases except for "samsung,s3c2440-hdmiphy-i2c" whose input/output
|
||||
lines are permanently wired to the respective client
|
||||
- samsung,i2c-slave-addr: Slave address in multi-master enviroment. If not
|
||||
specified, default value is 0.
|
||||
- samsung,i2c-max-bus-freq: Desired frequency in Hz of the bus. If not
|
||||
|
22
Documentation/devicetree/bindings/i2c/xiic.txt
Normal file
22
Documentation/devicetree/bindings/i2c/xiic.txt
Normal file
@ -0,0 +1,22 @@
|
||||
Xilinx IIC controller:
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "xlnx,xps-iic-2.00.a"
|
||||
- reg : IIC register location and length
|
||||
- interrupts : IIC controller unterrupt
|
||||
- #address-cells = <1>
|
||||
- #size-cells = <0>
|
||||
|
||||
Optional properties:
|
||||
- Child nodes conforming to i2c bus binding
|
||||
|
||||
Example:
|
||||
|
||||
axi_iic_0: i2c@40800000 {
|
||||
compatible = "xlnx,xps-iic-2.00.a";
|
||||
interrupts = < 1 2 >;
|
||||
reg = < 0x40800000 0x10000 >;
|
||||
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
};
|
@ -11,9 +11,11 @@ Required properties:
|
||||
- interrupt-parent : interrupt source phandle.
|
||||
- clock-frequency : specifies eSDHC base clock frequency.
|
||||
- sdhci,wp-inverted : (optional) specifies that eSDHC controller
|
||||
reports inverted write-protect state;
|
||||
reports inverted write-protect state; New devices should use
|
||||
the generic "wp-inverted" property.
|
||||
- sdhci,1-bit-only : (optional) specifies that a controller can
|
||||
only handle 1-bit data transfers.
|
||||
only handle 1-bit data transfers. New devices should use the
|
||||
generic "bus-width = <1>" property.
|
||||
- sdhci,auto-cmd12: (optional) specifies that a controller can
|
||||
only handle auto CMD12.
|
||||
|
||||
|
@ -9,7 +9,7 @@ Required properties:
|
||||
- interrupts : Should contain eSDHC interrupt
|
||||
|
||||
Optional properties:
|
||||
- fsl,card-wired : Indicate the card is wired to host permanently
|
||||
- non-removable : Indicate the card is wired to host permanently
|
||||
- fsl,cd-internal : Indicate to use controller internal card detection
|
||||
- fsl,wp-internal : Indicate to use controller internal write protection
|
||||
- cd-gpios : Specify GPIOs for card detection
|
||||
|
@ -10,7 +10,8 @@ Required properties:
|
||||
|
||||
Optional properties:
|
||||
- gpios : may specify GPIOs in this order: Card-Detect GPIO,
|
||||
Write-Protect GPIO.
|
||||
Write-Protect GPIO. Note that this does not follow the
|
||||
binding from mmc.txt, for historic reasons.
|
||||
- interrupts : the interrupt of a card detect interrupt.
|
||||
- interrupt-parent : the phandle for the interrupt controller that
|
||||
services interrupts for this device.
|
||||
|
27
Documentation/devicetree/bindings/mmc/mmc.txt
Normal file
27
Documentation/devicetree/bindings/mmc/mmc.txt
Normal file
@ -0,0 +1,27 @@
|
||||
These properties are common to multiple MMC host controllers. Any host
|
||||
that requires the respective functionality should implement them using
|
||||
these definitions.
|
||||
|
||||
Required properties:
|
||||
- bus-width: Number of data lines, can be <1>, <4>, or <8>
|
||||
|
||||
Optional properties:
|
||||
- cd-gpios : Specify GPIOs for card detection, see gpio binding
|
||||
- wp-gpios : Specify GPIOs for write protection, see gpio binding
|
||||
- cd-inverted: when present, polarity on the wp gpio line is inverted
|
||||
- wp-inverted: when present, polarity on the wp gpio line is inverted
|
||||
- non-removable: non-removable slot (like eMMC)
|
||||
- max-frequency: maximum operating clock frequency
|
||||
|
||||
Example:
|
||||
|
||||
sdhci@ab000000 {
|
||||
compatible = "sdhci";
|
||||
reg = <0xab000000 0x200>;
|
||||
interrupts = <23>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&gpio 69 0>;
|
||||
cd-inverted;
|
||||
wp-gpios = <&gpio 70 0>;
|
||||
max-frequency = <50000000>;
|
||||
}
|
19
Documentation/devicetree/bindings/mmc/mmci.txt
Normal file
19
Documentation/devicetree/bindings/mmc/mmci.txt
Normal file
@ -0,0 +1,19 @@
|
||||
* ARM PrimeCell MultiMedia Card Interface (MMCI) PL180/1
|
||||
|
||||
The ARM PrimeCell MMCI PL180 and PL181 provides and interface for
|
||||
reading and writing to MultiMedia and SD cards alike.
|
||||
|
||||
Required properties:
|
||||
- compatible : contains "arm,pl18x", "arm,primecell".
|
||||
- reg : contains pl18x registers and length.
|
||||
- interrupts : contains the device IRQ(s).
|
||||
- arm,primecell-periphid : contains the PrimeCell Peripheral ID.
|
||||
|
||||
Optional properties:
|
||||
- wp-gpios : contains any write protect (ro) gpios
|
||||
- cd-gpios : contains any card detection gpios
|
||||
- cd-inverted : indicates whether the cd gpio is inverted
|
||||
- max-frequency : contains the maximum operating frequency
|
||||
- bus-width : number of data lines, can be <1>, <4>, or <8>
|
||||
- mmc-cap-mmc-highspeed : indicates whether MMC is high speed capable
|
||||
- mmc-cap-sd-highspeed : indicates whether SD is high speed capable
|
25
Documentation/devicetree/bindings/mmc/mxs-mmc.txt
Normal file
25
Documentation/devicetree/bindings/mmc/mxs-mmc.txt
Normal file
@ -0,0 +1,25 @@
|
||||
* Freescale MXS MMC controller
|
||||
|
||||
The Freescale MXS Synchronous Serial Ports (SSP) can act as a MMC controller
|
||||
to support MMC, SD, and SDIO types of memory cards.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "fsl,<chip>-mmc". The supported chips include
|
||||
imx23 and imx28.
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain ERROR and DMA interrupts
|
||||
- fsl,ssp-dma-channel: APBH DMA channel for the SSP
|
||||
- bus-width: Number of data lines, can be <1>, <4>, or <8>
|
||||
|
||||
Optional properties:
|
||||
- wp-gpios: Specify GPIOs for write protection
|
||||
|
||||
Examples:
|
||||
|
||||
ssp0: ssp@80010000 {
|
||||
compatible = "fsl,imx28-mmc";
|
||||
reg = <0x80010000 2000>;
|
||||
interrupts = <96 82>;
|
||||
fsl,ssp-dma-channel = <0>;
|
||||
bus-width = <8>;
|
||||
};
|
@ -7,12 +7,12 @@ Required properties:
|
||||
- compatible : Should be "nvidia,<chip>-sdhci"
|
||||
- reg : Should contain SD/MMC registers location and length
|
||||
- interrupts : Should contain SD/MMC interrupt
|
||||
- bus-width : Number of data lines, can be <1>, <4>, or <8>
|
||||
|
||||
Optional properties:
|
||||
- cd-gpios : Specify GPIOs for card detection
|
||||
- wp-gpios : Specify GPIOs for write protection
|
||||
- power-gpios : Specify GPIOs for power control
|
||||
- support-8bit : Boolean, indicates if 8-bit mode should be used.
|
||||
|
||||
Example:
|
||||
|
||||
@ -23,5 +23,5 @@ sdhci@c8000200 {
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ Optional properties:
|
||||
ti,dual-volt: boolean, supports dual voltage cards
|
||||
<supply-name>-supply: phandle to the regulator device tree node
|
||||
"supply-name" examples are "vmmc", "vmmc_aux" etc
|
||||
ti,bus-width: Number of data lines, default assumed is 1 if the property is missing.
|
||||
bus-width: Number of data lines, default assumed is 1 if the property is missing.
|
||||
cd-gpios: GPIOs for card detection
|
||||
wp-gpios: GPIOs for write protection
|
||||
ti,non-removable: non-removable slot (like eMMC)
|
||||
@ -27,7 +27,7 @@ Example:
|
||||
reg = <0x4809c000 0x400>;
|
||||
ti,hwmods = "mmc1";
|
||||
ti,dual-volt;
|
||||
ti,bus-width = <4>;
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <&vmmc>; /* phandle to regulator node */
|
||||
ti,non-removable;
|
||||
};
|
||||
|
@ -14,7 +14,7 @@ Optional properties:
|
||||
|
||||
Example:
|
||||
|
||||
fec@83fec000 {
|
||||
ethernet@83fec000 {
|
||||
compatible = "fsl,imx51-fec", "fsl,imx27-fec";
|
||||
reg = <0x83fec000 0x4000>;
|
||||
interrupts = <87>;
|
||||
|
@ -4,6 +4,8 @@ Required properties:
|
||||
- compatible : "st,spear300-pinmux"
|
||||
: "st,spear310-pinmux"
|
||||
: "st,spear320-pinmux"
|
||||
: "st,spear1310-pinmux"
|
||||
: "st,spear1340-pinmux"
|
||||
- reg : Address range of the pinctrl registers
|
||||
- st,pinmux-mode: Mandatory for SPEAr300 and SPEAr320 and invalid for others.
|
||||
- Its values for SPEAr300:
|
||||
@ -89,6 +91,37 @@ For SPEAr320 machines:
|
||||
"rmii0_1_grp", "i2c1_8_9_grp", "i2c1_98_99_grp", "i2c2_0_1_grp",
|
||||
"i2c2_2_3_grp", "i2c2_19_20_grp", "i2c2_75_76_grp", "i2c2_96_97_grp"
|
||||
|
||||
For SPEAr1310 machines:
|
||||
"i2c0_grp", "ssp0_grp", "ssp0_cs0_grp", "ssp0_cs1_2_grp", "i2s0_grp",
|
||||
"i2s1_grp", "clcd_grp", "clcd_high_res_grp", "arm_gpio_grp",
|
||||
"smi_2_chips_grp", "smi_4_chips_grp", "gmii_grp", "rgmii_grp",
|
||||
"smii_0_1_2_grp", "ras_mii_txclk_grp", "nand_8bit_grp",
|
||||
"nand_16bit_grp", "nand_4_chips_grp", "keyboard_6x6_grp",
|
||||
"keyboard_rowcol6_8_grp", "uart0_grp", "uart0_modem_grp",
|
||||
"gpt0_tmr0_grp", "gpt0_tmr1_grp", "gpt1_tmr0_grp", "gpt1_tmr1_grp",
|
||||
"sdhci_grp", "cf_grp", "xd_grp", "touch_xy_grp",
|
||||
"uart1_disable_i2c_grp", "uart1_disable_sd_grp", "uart2_3_grp",
|
||||
"uart4_grp", "uart5_grp", "rs485_0_1_tdm_0_1_grp", "i2c_1_2_grp",
|
||||
"i2c3_dis_smi_clcd_grp", "i2c3_dis_sd_i2s0_grp", "i2c_4_5_dis_smi_grp",
|
||||
"i2c4_dis_sd_grp", "i2c5_dis_sd_grp", "i2c_6_7_dis_kbd_grp",
|
||||
"i2c6_dis_sd_grp", "i2c7_dis_sd_grp", "can0_dis_nor_grp",
|
||||
"can0_dis_sd_grp", "can1_dis_sd_grp", "can1_dis_kbd_grp", "pcie0_grp",
|
||||
"pcie1_grp", "pcie2_grp", "sata0_grp", "sata1_grp", "sata2_grp",
|
||||
"ssp1_dis_kbd_grp", "ssp1_dis_sd_grp", "gpt64_grp"
|
||||
|
||||
For SPEAr1340 machines:
|
||||
"pads_as_gpio_grp", "fsmc_8bit_grp", "fsmc_16bit_grp", "fsmc_pnor_grp",
|
||||
"keyboard_row_col_grp", "keyboard_col5_grp", "spdif_in_grp",
|
||||
"spdif_out_grp", "gpt_0_1_grp", "pwm0_grp", "pwm1_grp", "pwm2_grp",
|
||||
"pwm3_grp", "vip_mux_grp", "vip_mux_cam0_grp", "vip_mux_cam1_grp",
|
||||
"vip_mux_cam2_grp", "vip_mux_cam3_grp", "cam0_grp", "cam1_grp",
|
||||
"cam2_grp", "cam3_grp", "smi_grp", "ssp0_grp", "ssp0_cs1_grp",
|
||||
"ssp0_cs2_grp", "ssp0_cs3_grp", "uart0_grp", "uart0_enh_grp",
|
||||
"uart1_grp", "i2s_in_grp", "i2s_out_grp", "gmii_grp", "rgmii_grp",
|
||||
"rmii_grp", "sgmii_grp", "i2c0_grp", "i2c1_grp", "cec0_grp", "cec1_grp",
|
||||
"sdhci_grp", "cf_grp", "xd_grp", "clcd_grp", "arm_trace_grp",
|
||||
"miphy_dbg_grp", "pcie_grp", "sata_grp"
|
||||
|
||||
Valid values for function names are:
|
||||
For All SPEAr3xx machines:
|
||||
"firda", "i2c0", "ssp_cs", "ssp0", "mii0", "gpio0", "uart0_ext",
|
||||
@ -106,3 +139,17 @@ For SPEAr320 machines:
|
||||
"uart2", "uart3", "uart4", "uart5", "uart6", "rs485", "touchscreen",
|
||||
"can0", "can1", "pwm0_1", "pwm2", "pwm3", "ssp1", "ssp2", "mii2",
|
||||
"mii0_1", "i2c1", "i2c2"
|
||||
|
||||
|
||||
For SPEAr1310 machines:
|
||||
"i2c0", "ssp0", "i2s0", "i2s1", "clcd", "arm_gpio", "smi", "gmii",
|
||||
"rgmii", "smii_0_1_2", "ras_mii_txclk", "nand", "keyboard", "uart0",
|
||||
"gpt0", "gpt1", "sdhci", "cf", "xd", "touchscreen", "uart1", "uart2_3",
|
||||
"uart4", "uart5", "rs485_0_1_tdm_0_1", "i2c_1_2", "i2c3_i2s1",
|
||||
"i2c_4_5", "i2c_6_7", "can0", "can1", "pci", "sata", "ssp1", "gpt64"
|
||||
|
||||
For SPEAr1340 machines:
|
||||
"pads_as_gpio", "fsmc", "keyboard", "spdif_in", "spdif_out", "gpt_0_1",
|
||||
"pwm", "vip", "cam0", "cam1", "cam2", "cam3", "smi", "ssp0", "uart0",
|
||||
"uart1", "i2s", "gmac", "i2c0", "i2c1", "cec0", "cec1", "sdhci", "cf",
|
||||
"xd", "clcd", "arm_trace", "miphy_dbg", "pcie", "sata"
|
||||
|
21
Documentation/devicetree/bindings/sound/omap-dmic.txt
Normal file
21
Documentation/devicetree/bindings/sound/omap-dmic.txt
Normal file
@ -0,0 +1,21 @@
|
||||
* Texas Instruments OMAP4+ Digital Microphone Module
|
||||
|
||||
Required properties:
|
||||
- compatible: "ti,omap4-dmic"
|
||||
- reg: Register location and size as an array:
|
||||
<MPU access base address, size>,
|
||||
<L3 interconnect address, size>;
|
||||
- interrupts: Interrupt number for DMIC
|
||||
- interrupt-parent: The parent interrupt controller
|
||||
- ti,hwmods: Name of the hwmod associated with OMAP dmic IP
|
||||
|
||||
Example:
|
||||
|
||||
dmic: dmic@4012e000 {
|
||||
compatible = "ti,omap4-dmic";
|
||||
reg = <0x4012e000 0x7f>, /* MPU private access */
|
||||
<0x4902e000 0x7f>; /* L3 Interconnect */
|
||||
interrupts = <0 114 0x4>;
|
||||
interrupt-parent = <&gic>;
|
||||
ti,hwmods = "dmic";
|
||||
};
|
21
Documentation/devicetree/bindings/sound/omap-mcpdm.txt
Normal file
21
Documentation/devicetree/bindings/sound/omap-mcpdm.txt
Normal file
@ -0,0 +1,21 @@
|
||||
* Texas Instruments OMAP4+ McPDM
|
||||
|
||||
Required properties:
|
||||
- compatible: "ti,omap4-mcpdm"
|
||||
- reg: Register location and size as an array:
|
||||
<MPU access base address, size>,
|
||||
<L3 interconnect address, size>;
|
||||
- interrupts: Interrupt number for McPDM
|
||||
- interrupt-parent: The parent interrupt controller
|
||||
- ti,hwmods: Name of the hwmod associated to the McPDM
|
||||
|
||||
Example:
|
||||
|
||||
mcpdm: mcpdm@40132000 {
|
||||
compatible = "ti,omap4-mcpdm";
|
||||
reg = <0x40132000 0x7f>, /* MPU private access */
|
||||
<0x49032000 0x7f>; /* L3 Interconnect */
|
||||
interrupts = <0 112 0x4>;
|
||||
interrupt-parent = <&gic>;
|
||||
ti,hwmods = "mcpdm";
|
||||
};
|
@ -11,7 +11,7 @@ Optional properties:
|
||||
|
||||
Example:
|
||||
|
||||
uart@73fbc000 {
|
||||
serial@73fbc000 {
|
||||
compatible = "fsl,imx51-uart", "fsl,imx21-uart";
|
||||
reg = <0x73fbc000 0x4000>;
|
||||
interrupts = <31>;
|
||||
|
@ -12,6 +12,9 @@ Required properties :
|
||||
- nvidia,vbus-gpio : If present, specifies a gpio that needs to be
|
||||
activated for the bus to be powered.
|
||||
|
||||
Required properties for phy_type == ulpi:
|
||||
- nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
|
||||
|
||||
Optional properties:
|
||||
- dr_mode : dual role mode. Indicates the working mode for
|
||||
nvidia,tegra20-ehci compatible controllers. Can be "host", "peripheral",
|
||||
|
@ -29,13 +29,6 @@ The buffer-user
|
||||
in memory, mapped into its own address space, so it can access the same area
|
||||
of memory.
|
||||
|
||||
*IMPORTANT*: [see https://lkml.org/lkml/2011/12/20/211 for more details]
|
||||
For this first version, A buffer shared using the dma_buf sharing API:
|
||||
- *may* be exported to user space using "mmap" *ONLY* by exporter, outside of
|
||||
this framework.
|
||||
- with this new iteration of the dma-buf api cpu access from the kernel has been
|
||||
enable, see below for the details.
|
||||
|
||||
dma-buf operations for device dma only
|
||||
--------------------------------------
|
||||
|
||||
@ -300,6 +293,17 @@ Access to a dma_buf from the kernel context involves three steps:
|
||||
Note that these calls need to always succeed. The exporter needs to complete
|
||||
any preparations that might fail in begin_cpu_access.
|
||||
|
||||
For some cases the overhead of kmap can be too high, a vmap interface
|
||||
is introduced. This interface should be used very carefully, as vmalloc
|
||||
space is a limited resources on many architectures.
|
||||
|
||||
Interfaces:
|
||||
void *dma_buf_vmap(struct dma_buf *dmabuf)
|
||||
void dma_buf_vunmap(struct dma_buf *dmabuf, void *vaddr)
|
||||
|
||||
The vmap call can fail if there is no vmap support in the exporter, or if it
|
||||
runs out of vmalloc space. Fallback to kmap should be implemented.
|
||||
|
||||
3. Finish access
|
||||
|
||||
When the importer is done accessing the range specified in begin_cpu_access,
|
||||
@ -313,6 +317,83 @@ Access to a dma_buf from the kernel context involves three steps:
|
||||
enum dma_data_direction dir);
|
||||
|
||||
|
||||
Direct Userspace Access/mmap Support
|
||||
------------------------------------
|
||||
|
||||
Being able to mmap an export dma-buf buffer object has 2 main use-cases:
|
||||
- CPU fallback processing in a pipeline and
|
||||
- supporting existing mmap interfaces in importers.
|
||||
|
||||
1. CPU fallback processing in a pipeline
|
||||
|
||||
In many processing pipelines it is sometimes required that the cpu can access
|
||||
the data in a dma-buf (e.g. for thumbnail creation, snapshots, ...). To avoid
|
||||
the need to handle this specially in userspace frameworks for buffer sharing
|
||||
it's ideal if the dma_buf fd itself can be used to access the backing storage
|
||||
from userspace using mmap.
|
||||
|
||||
Furthermore Android's ION framework already supports this (and is otherwise
|
||||
rather similar to dma-buf from a userspace consumer side with using fds as
|
||||
handles, too). So it's beneficial to support this in a similar fashion on
|
||||
dma-buf to have a good transition path for existing Android userspace.
|
||||
|
||||
No special interfaces, userspace simply calls mmap on the dma-buf fd.
|
||||
|
||||
2. Supporting existing mmap interfaces in exporters
|
||||
|
||||
Similar to the motivation for kernel cpu access it is again important that
|
||||
the userspace code of a given importing subsystem can use the same interfaces
|
||||
with a imported dma-buf buffer object as with a native buffer object. This is
|
||||
especially important for drm where the userspace part of contemporary OpenGL,
|
||||
X, and other drivers is huge, and reworking them to use a different way to
|
||||
mmap a buffer rather invasive.
|
||||
|
||||
The assumption in the current dma-buf interfaces is that redirecting the
|
||||
initial mmap is all that's needed. A survey of some of the existing
|
||||
subsystems shows that no driver seems to do any nefarious thing like syncing
|
||||
up with outstanding asynchronous processing on the device or allocating
|
||||
special resources at fault time. So hopefully this is good enough, since
|
||||
adding interfaces to intercept pagefaults and allow pte shootdowns would
|
||||
increase the complexity quite a bit.
|
||||
|
||||
Interface:
|
||||
int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
|
||||
unsigned long);
|
||||
|
||||
If the importing subsystem simply provides a special-purpose mmap call to set
|
||||
up a mapping in userspace, calling do_mmap with dma_buf->file will equally
|
||||
achieve that for a dma-buf object.
|
||||
|
||||
3. Implementation notes for exporters
|
||||
|
||||
Because dma-buf buffers have invariant size over their lifetime, the dma-buf
|
||||
core checks whether a vma is too large and rejects such mappings. The
|
||||
exporter hence does not need to duplicate this check.
|
||||
|
||||
Because existing importing subsystems might presume coherent mappings for
|
||||
userspace, the exporter needs to set up a coherent mapping. If that's not
|
||||
possible, it needs to fake coherency by manually shooting down ptes when
|
||||
leaving the cpu domain and flushing caches at fault time. Note that all the
|
||||
dma_buf files share the same anon inode, hence the exporter needs to replace
|
||||
the dma_buf file stored in vma->vm_file with it's own if pte shootdown is
|
||||
requred. This is because the kernel uses the underlying inode's address_space
|
||||
for vma tracking (and hence pte tracking at shootdown time with
|
||||
unmap_mapping_range).
|
||||
|
||||
If the above shootdown dance turns out to be too expensive in certain
|
||||
scenarios, we can extend dma-buf with a more explicit cache tracking scheme
|
||||
for userspace mappings. But the current assumption is that using mmap is
|
||||
always a slower path, so some inefficiencies should be acceptable.
|
||||
|
||||
Exporters that shoot down mappings (for any reasons) shall not do any
|
||||
synchronization at fault time with outstanding device operations.
|
||||
Synchronization is an orthogonal issue to sharing the backing storage of a
|
||||
buffer and hence should not be handled by dma-buf itself. This is explictly
|
||||
mentioned here because many people seem to want something like this, but if
|
||||
different exporters handle this differently, buffer sharing can fail in
|
||||
interesting ways depending upong the exporter (if userspace starts depending
|
||||
upon this implicit synchronization).
|
||||
|
||||
Miscellaneous notes
|
||||
-------------------
|
||||
|
||||
@ -336,6 +417,20 @@ Miscellaneous notes
|
||||
the exporting driver to create a dmabuf fd must provide a way to let
|
||||
userspace control setting of O_CLOEXEC flag passed in to dma_buf_fd().
|
||||
|
||||
- If an exporter needs to manually flush caches and hence needs to fake
|
||||
coherency for mmap support, it needs to be able to zap all the ptes pointing
|
||||
at the backing storage. Now linux mm needs a struct address_space associated
|
||||
with the struct file stored in vma->vm_file to do that with the function
|
||||
unmap_mapping_range. But the dma_buf framework only backs every dma_buf fd
|
||||
with the anon_file struct file, i.e. all dma_bufs share the same file.
|
||||
|
||||
Hence exporters need to setup their own file (and address_space) association
|
||||
by setting vma->vm_file and adjusting vma->vm_pgoff in the dma_buf mmap
|
||||
callback. In the specific case of a gem driver the exporter could use the
|
||||
shmem file already provided by gem (and set vm_pgoff = 0). Exporters can then
|
||||
zap ptes by unmapping the corresponding range of the struct address_space
|
||||
associated with their own file.
|
||||
|
||||
References:
|
||||
[1] struct dma_buf_ops in include/linux/dma-buf.h
|
||||
[2] All interfaces mentioned above defined in include/linux/dma-buf.h
|
||||
|
@ -595,3 +595,14 @@ Why: KVM tracepoints provide mostly equivalent information in a much more
|
||||
flexible fashion.
|
||||
|
||||
----------------------------
|
||||
|
||||
What: at91-mci driver ("CONFIG_MMC_AT91")
|
||||
When: 3.7
|
||||
Why: There are two mci drivers: at91-mci and atmel-mci. The PDC support
|
||||
was added to atmel-mci as a first step to support more chips.
|
||||
Then at91-mci was kept only for old IP versions (on at91rm9200 and
|
||||
at91sam9261). The support of these IP versions has just been added
|
||||
to atmel-mci, so atmel-mci can be used for all chips.
|
||||
Who: Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
|
||||
----------------------------
|
||||
|
@ -59,9 +59,9 @@ commit=nrsec (*) Ext3 can be told to sync all its data and metadata
|
||||
Setting it to very large values will improve
|
||||
performance.
|
||||
|
||||
barrier=<0(*)|1> This enables/disables the use of write barriers in
|
||||
barrier the jbd code. barrier=0 disables, barrier=1 enables.
|
||||
nobarrier (*) This also requires an IO stack which can support
|
||||
barrier=<0|1(*)> This enables/disables the use of write barriers in
|
||||
barrier (*) the jbd code. barrier=0 disables, barrier=1 enables.
|
||||
nobarrier This also requires an IO stack which can support
|
||||
barriers, and if jbd gets an error on a barrier
|
||||
write, it will disable again with a warning.
|
||||
Write barriers enforce proper on-disk ordering
|
||||
|
@ -1,11 +1,11 @@
|
||||
Kernel driver gpio-i2cmux
|
||||
Kernel driver i2c-gpio-mux
|
||||
|
||||
Author: Peter Korsgaard <peter.korsgaard@barco.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
gpio-i2cmux is an i2c mux driver providing access to I2C bus segments
|
||||
i2c-gpio-mux is an i2c mux driver providing access to I2C bus segments
|
||||
from a master I2C bus and a hardware MUX controlled through GPIO pins.
|
||||
|
||||
E.G.:
|
||||
@ -26,16 +26,16 @@ according to the settings of the GPIO pins 1..N.
|
||||
Usage
|
||||
-----
|
||||
|
||||
gpio-i2cmux uses the platform bus, so you need to provide a struct
|
||||
i2c-gpio-mux uses the platform bus, so you need to provide a struct
|
||||
platform_device with the platform_data pointing to a struct
|
||||
gpio_i2cmux_platform_data with the I2C adapter number of the master
|
||||
bus, the number of bus segments to create and the GPIO pins used
|
||||
to control it. See include/linux/gpio-i2cmux.h for details.
|
||||
to control it. See include/linux/i2c-gpio-mux.h for details.
|
||||
|
||||
E.G. something like this for a MUX providing 4 bus segments
|
||||
controlled through 3 GPIO pins:
|
||||
|
||||
#include <linux/gpio-i2cmux.h>
|
||||
#include <linux/i2c-gpio-mux.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
static const unsigned myboard_gpiomux_gpios[] = {
|
||||
@ -57,7 +57,7 @@ static struct gpio_i2cmux_platform_data myboard_i2cmux_data = {
|
||||
};
|
||||
|
||||
static struct platform_device myboard_i2cmux = {
|
||||
.name = "gpio-i2cmux",
|
||||
.name = "i2c-gpio-mux",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &myboard_i2cmux_data,
|
@ -508,6 +508,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
Also note the kernel might malfunction if you disable
|
||||
some critical bits.
|
||||
|
||||
cma=nn[MG] [ARM,KNL]
|
||||
Sets the size of kernel global memory area for contiguous
|
||||
memory allocations. For more information, see
|
||||
include/linux/dma-contiguous.h
|
||||
|
||||
cmo_free_hint= [PPC] Format: { yes | no }
|
||||
Specify whether pages are marked as being inactive
|
||||
when they are freed. This is used in CMO environments
|
||||
@ -515,6 +520,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
a hypervisor.
|
||||
Default: yes
|
||||
|
||||
coherent_pool=nn[KMG] [ARM,KNL]
|
||||
Sets the size of memory pool for coherent, atomic dma
|
||||
allocations if Contiguous Memory Allocator (CMA) is used.
|
||||
|
||||
code_bytes [X86] How many bytes of object code to print
|
||||
in an oops report.
|
||||
Range: 0 - 8192
|
||||
|
35
MAINTAINERS
35
MAINTAINERS
@ -1905,6 +1905,16 @@ F: Documentation/filesystems/coda.txt
|
||||
F: fs/coda/
|
||||
F: include/linux/coda*.h
|
||||
|
||||
COMMON CLK FRAMEWORK
|
||||
M: Mike Turquette <mturquette@ti.com>
|
||||
M: Mike Turquette <mturquette@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (same as CLK API & CLKDEV)
|
||||
T: git git://git.linaro.org/people/mturquette/linux.git
|
||||
S: Maintained
|
||||
F: drivers/clk/clk.c
|
||||
F: drivers/clk/clk-*
|
||||
F: include/linux/clk-pr*
|
||||
|
||||
COMMON INTERNET FILE SYSTEM (CIFS)
|
||||
M: Steve French <sfrench@samba.org>
|
||||
L: linux-cifs@vger.kernel.org
|
||||
@ -2978,9 +2988,9 @@ GENERIC GPIO I2C MULTIPLEXER DRIVER
|
||||
M: Peter Korsgaard <peter.korsgaard@barco.com>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/i2c/muxes/gpio-i2cmux.c
|
||||
F: include/linux/gpio-i2cmux.h
|
||||
F: Documentation/i2c/muxes/gpio-i2cmux
|
||||
F: drivers/i2c/muxes/i2c-mux-gpio.c
|
||||
F: include/linux/i2c-mux-gpio.h
|
||||
F: Documentation/i2c/muxes/i2c-mux-gpio
|
||||
|
||||
GENERIC HDLC (WAN) DRIVERS
|
||||
M: Krzysztof Halasa <khc@pm.waw.pl>
|
||||
@ -5138,7 +5148,7 @@ PCA9541 I2C BUS MASTER SELECTOR DRIVER
|
||||
M: Guenter Roeck <guenter.roeck@ericsson.com>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/i2c/muxes/pca9541.c
|
||||
F: drivers/i2c/muxes/i2c-mux-pca9541.c
|
||||
|
||||
PCA9564/PCA9665 I2C BUS DRIVER
|
||||
M: Wolfram Sang <w.sang@pengutronix.de>
|
||||
@ -6340,14 +6350,25 @@ F: include/linux/compiler.h
|
||||
|
||||
SPEAR PLATFORM SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
S: Maintained
|
||||
F: arch/arm/plat-spear/
|
||||
|
||||
SPEAR13XX MACHINE SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
S: Maintained
|
||||
F: arch/arm/mach-spear13xx/
|
||||
|
||||
SPEAR3XX MACHINE SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
@ -6356,6 +6377,8 @@ F: arch/arm/mach-spear3xx/
|
||||
|
||||
SPEAR6XX MACHINE SUPPORT
|
||||
M: Rajeev Kumar <rajeev-dlh.kumar@st.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
@ -6368,9 +6391,7 @@ L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
S: Maintained
|
||||
F: arch/arm/mach-spear*/clock.c
|
||||
F: arch/arm/plat-spear/clock.c
|
||||
F: arch/arm/plat-spear/include/plat/clock.h
|
||||
F: drivers/clk/spear/
|
||||
|
||||
SPI SUBSYSTEM
|
||||
M: Grant Likely <grant.likely@secretlab.ca>
|
||||
|
@ -159,6 +159,9 @@ config HAVE_ARCH_TRACEHOOK
|
||||
config HAVE_DMA_ATTRS
|
||||
bool
|
||||
|
||||
config HAVE_DMA_CONTIGUOUS
|
||||
bool
|
||||
|
||||
config USE_GENERIC_SMP_HELPERS
|
||||
bool
|
||||
|
||||
|
@ -5,6 +5,9 @@ config ARM
|
||||
select HAVE_AOUT
|
||||
select HAVE_DMA_API_DEBUG
|
||||
select HAVE_IDE if PCI || ISA || PCMCIA
|
||||
select HAVE_DMA_ATTRS
|
||||
select HAVE_DMA_CONTIGUOUS if (CPU_V6 || CPU_V6K || CPU_V7)
|
||||
select CMA if (CPU_V6 || CPU_V6K || CPU_V7)
|
||||
select HAVE_MEMBLOCK
|
||||
select RTC_LIB
|
||||
select SYS_SUPPORTS_APM_EMULATION
|
||||
@ -54,6 +57,14 @@ config ARM
|
||||
config ARM_HAS_SG_CHAIN
|
||||
bool
|
||||
|
||||
config NEED_SG_DMA_LENGTH
|
||||
bool
|
||||
|
||||
config ARM_DMA_USE_IOMMU
|
||||
select NEED_SG_DMA_LENGTH
|
||||
select ARM_HAS_SG_CHAIN
|
||||
bool
|
||||
|
||||
config HAVE_PWM
|
||||
bool
|
||||
|
||||
@ -445,8 +456,10 @@ config ARCH_MXS
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select COMMON_CLK
|
||||
select HAVE_CLK_PREPARE
|
||||
select PINCTRL
|
||||
select USE_OF
|
||||
help
|
||||
Support for Freescale MXS-based family of processors
|
||||
|
||||
@ -936,6 +949,7 @@ config PLAT_SPEAR
|
||||
select ARM_AMBA
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select COMMON_CLK
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_CLK
|
||||
@ -1040,7 +1054,6 @@ source "arch/arm/mach-sa1100/Kconfig"
|
||||
|
||||
source "arch/arm/plat-samsung/Kconfig"
|
||||
source "arch/arm/plat-s3c24xx/Kconfig"
|
||||
source "arch/arm/plat-s5p/Kconfig"
|
||||
|
||||
source "arch/arm/plat-spear/Kconfig"
|
||||
|
||||
@ -1091,6 +1104,7 @@ config PLAT_ORION
|
||||
bool
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_IRQ_CHIP
|
||||
select COMMON_CLK
|
||||
|
||||
config PLAT_PXA
|
||||
bool
|
||||
|
@ -103,6 +103,35 @@ choice
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to the second serial port on these devices.
|
||||
|
||||
config DEBUG_DAVINCI_DA8XX_UART1
|
||||
bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
|
||||
depends on ARCH_DAVINCI_DA8XX
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART1 serial port on DaVinci DA8XX devices.
|
||||
|
||||
config DEBUG_DAVINCI_DA8XX_UART2
|
||||
bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
|
||||
depends on ARCH_DAVINCI_DA8XX
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART2 serial port on DaVinci DA8XX devices.
|
||||
|
||||
config DEBUG_DAVINCI_DMx_UART0
|
||||
bool "Kernel low-level debugging on DaVinci DMx using UART0"
|
||||
depends on ARCH_DAVINCI_DMx
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART0 serial port on DaVinci DMx devices.
|
||||
|
||||
config DEBUG_DAVINCI_TNETV107X_UART1
|
||||
bool "Kernel low-level debugging on DaVinci TNETV107x using UART1"
|
||||
depends on ARCH_DAVINCI_TNETV107X
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART1 serial port on DaVinci TNETV107X
|
||||
devices.
|
||||
|
||||
config DEBUG_DC21285_PORT
|
||||
bool "Kernel low-level debugging messages via footbridge serial port"
|
||||
depends on FOOTBRIDGE
|
||||
@ -180,6 +209,14 @@ choice
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX50 or i.MX53.
|
||||
|
||||
config DEBUG_IMX6Q_UART2
|
||||
bool "i.MX6Q Debug UART2"
|
||||
depends on SOC_IMX6Q
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX6Q UART2. This is correct for e.g. the SabreLite
|
||||
board.
|
||||
|
||||
config DEBUG_IMX6Q_UART4
|
||||
bool "i.MX6Q Debug UART4"
|
||||
depends on SOC_IMX6Q
|
||||
|
@ -160,9 +160,7 @@ machine-$(CONFIG_ARCH_MXS) := mxs
|
||||
machine-$(CONFIG_ARCH_NETX) := netx
|
||||
machine-$(CONFIG_ARCH_NOMADIK) := nomadik
|
||||
machine-$(CONFIG_ARCH_OMAP1) := omap1
|
||||
machine-$(CONFIG_ARCH_OMAP2) := omap2
|
||||
machine-$(CONFIG_ARCH_OMAP3) := omap2
|
||||
machine-$(CONFIG_ARCH_OMAP4) := omap2
|
||||
machine-$(CONFIG_ARCH_OMAP2PLUS) := omap2
|
||||
machine-$(CONFIG_ARCH_ORION5X) := orion5x
|
||||
machine-$(CONFIG_ARCH_PICOXCELL) := picoxcell
|
||||
machine-$(CONFIG_ARCH_PNX4008) := pnx4008
|
||||
@ -188,6 +186,8 @@ machine-$(CONFIG_ARCH_VEXPRESS) := vexpress
|
||||
machine-$(CONFIG_ARCH_VT8500) := vt8500
|
||||
machine-$(CONFIG_ARCH_W90X900) := w90x900
|
||||
machine-$(CONFIG_FOOTBRIDGE) := footbridge
|
||||
machine-$(CONFIG_MACH_SPEAR1310) := spear13xx
|
||||
machine-$(CONFIG_MACH_SPEAR1340) := spear13xx
|
||||
machine-$(CONFIG_MACH_SPEAR300) := spear3xx
|
||||
machine-$(CONFIG_MACH_SPEAR310) := spear3xx
|
||||
machine-$(CONFIG_MACH_SPEAR320) := spear3xx
|
||||
@ -205,7 +205,7 @@ plat-$(CONFIG_PLAT_NOMADIK) := nomadik
|
||||
plat-$(CONFIG_PLAT_ORION) := orion
|
||||
plat-$(CONFIG_PLAT_PXA) := pxa
|
||||
plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung
|
||||
plat-$(CONFIG_PLAT_S5P) := s5p samsung
|
||||
plat-$(CONFIG_PLAT_S5P) := samsung
|
||||
plat-$(CONFIG_PLAT_SPEAR) := spear
|
||||
plat-$(CONFIG_PLAT_VERSATILE) := versatile
|
||||
|
||||
|
@ -23,4 +23,52 @@
|
||||
chosen {
|
||||
bootargs = "root=/dev/ram0 rw ramdisk=8192 console=ttySAC1,115200";
|
||||
};
|
||||
|
||||
i2c@12C60000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-max-bus-freq = <20000>;
|
||||
gpios = <&gpb3 0 2 3 0>,
|
||||
<&gpb3 1 2 3 0>;
|
||||
|
||||
eeprom@50 {
|
||||
compatible = "samsung,s524ad0xd1";
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@12C70000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-max-bus-freq = <20000>;
|
||||
gpios = <&gpb3 2 2 3 0>,
|
||||
<&gpb3 3 2 3 0>;
|
||||
|
||||
eeprom@51 {
|
||||
compatible = "samsung,s524ad0xd1";
|
||||
reg = <0x51>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@12C80000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@12C90000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@12CA0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@12CB0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@12CC0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@12CD0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
@ -23,11 +23,11 @@
|
||||
compatible = "samsung,exynos5250";
|
||||
interrupt-parent = <&gic>;
|
||||
|
||||
gic:interrupt-controller@10490000 {
|
||||
gic:interrupt-controller@10481000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x10490000 0x1000>, <0x10480000 0x100>;
|
||||
reg = <0x10481000 0x1000>, <0x10482000 0x2000>;
|
||||
};
|
||||
|
||||
watchdog {
|
||||
@ -42,30 +42,6 @@
|
||||
interrupts = <0 43 0>, <0 44 0>;
|
||||
};
|
||||
|
||||
sdhci@12200000 {
|
||||
compatible = "samsung,exynos4210-sdhci";
|
||||
reg = <0x12200000 0x100>;
|
||||
interrupts = <0 75 0>;
|
||||
};
|
||||
|
||||
sdhci@12210000 {
|
||||
compatible = "samsung,exynos4210-sdhci";
|
||||
reg = <0x12210000 0x100>;
|
||||
interrupts = <0 76 0>;
|
||||
};
|
||||
|
||||
sdhci@12220000 {
|
||||
compatible = "samsung,exynos4210-sdhci";
|
||||
reg = <0x12220000 0x100>;
|
||||
interrupts = <0 77 0>;
|
||||
};
|
||||
|
||||
sdhci@12230000 {
|
||||
compatible = "samsung,exynos4210-sdhci";
|
||||
reg = <0x12230000 0x100>;
|
||||
interrupts = <0 78 0>;
|
||||
};
|
||||
|
||||
serial@12C00000 {
|
||||
compatible = "samsung,exynos4210-uart";
|
||||
reg = <0x12C00000 0x100>;
|
||||
@ -94,48 +70,64 @@
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12C60000 0x100>;
|
||||
interrupts = <0 56 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12C70000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12C70000 0x100>;
|
||||
interrupts = <0 57 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12C80000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12C80000 0x100>;
|
||||
interrupts = <0 58 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12C90000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12C90000 0x100>;
|
||||
interrupts = <0 59 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12CA0000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12CA0000 0x100>;
|
||||
interrupts = <0 60 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12CB0000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12CB0000 0x100>;
|
||||
interrupts = <0 61 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12CC0000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12CC0000 0x100>;
|
||||
interrupts = <0 62 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@12CD0000 {
|
||||
compatible = "samsung,s3c2440-i2c";
|
||||
reg = <0x12CD0000 0x100>;
|
||||
interrupts = <0 63 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
amba {
|
||||
@ -157,13 +149,13 @@
|
||||
interrupts = <0 35 0>;
|
||||
};
|
||||
|
||||
mdma0: pdma@10800000 {
|
||||
mdma0: mdma@10800000 {
|
||||
compatible = "arm,pl330", "arm,primecell";
|
||||
reg = <0x10800000 0x1000>;
|
||||
interrupts = <0 33 0>;
|
||||
};
|
||||
|
||||
mdma1: pdma@11C10000 {
|
||||
mdma1: mdma@11C10000 {
|
||||
compatible = "arm,pl330", "arm,primecell";
|
||||
reg = <0x11C10000 0x1000>;
|
||||
interrupts = <0 124 0>;
|
||||
@ -242,6 +234,12 @@
|
||||
#gpio-cells = <4>;
|
||||
};
|
||||
|
||||
gpc4: gpio-controller@114002E0 {
|
||||
compatible = "samsung,exynos4-gpio";
|
||||
reg = <0x114002E0 0x20>;
|
||||
#gpio-cells = <4>;
|
||||
};
|
||||
|
||||
gpd0: gpio-controller@11400160 {
|
||||
compatible = "samsung,exynos4-gpio";
|
||||
reg = <0x11400160 0x20>;
|
||||
@ -388,19 +386,19 @@
|
||||
|
||||
gpv2: gpio-controller@10D10040 {
|
||||
compatible = "samsung,exynos4-gpio";
|
||||
reg = <0x10D10040 0x20>;
|
||||
reg = <0x10D10060 0x20>;
|
||||
#gpio-cells = <4>;
|
||||
};
|
||||
|
||||
gpv3: gpio-controller@10D10060 {
|
||||
compatible = "samsung,exynos4-gpio";
|
||||
reg = <0x10D10060 0x20>;
|
||||
reg = <0x10D10080 0x20>;
|
||||
#gpio-cells = <4>;
|
||||
};
|
||||
|
||||
gpv4: gpio-controller@10D10080 {
|
||||
compatible = "samsung,exynos4-gpio";
|
||||
reg = <0x10D10080 0x20>;
|
||||
reg = <0x10D100C0 0x20>;
|
||||
#gpio-cells = <4>;
|
||||
};
|
||||
|
||||
|
43
arch/arm/boot/dts/imx23-evk.dts
Normal file
43
arch/arm/boot/dts/imx23-evk.dts
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "imx23.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX23 Evaluation Kit";
|
||||
compatible = "fsl,imx23-evk", "fsl,imx23";
|
||||
|
||||
memory {
|
||||
reg = <0x40000000 0x08000000>;
|
||||
};
|
||||
|
||||
apb@80000000 {
|
||||
apbh@80000000 {
|
||||
ssp0: ssp@80010000 {
|
||||
compatible = "fsl,imx23-mmc";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_8bit_pins_a &mmc0_pins_fixup>;
|
||||
bus-width = <8>;
|
||||
wp-gpios = <&gpio1 30 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
apbx@80040000 {
|
||||
duart: serial@80070000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&duart_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
295
arch/arm/boot/dts/imx23.dtsi
Normal file
295
arch/arm/boot/dts/imx23.dtsi
Normal file
@ -0,0 +1,295 @@
|
||||
/*
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/include/ "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&icoll>;
|
||||
|
||||
aliases {
|
||||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
};
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
compatible = "arm,arm926ejs";
|
||||
};
|
||||
};
|
||||
|
||||
apb@80000000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80000000 0x80000>;
|
||||
ranges;
|
||||
|
||||
apbh@80000000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80000000 0x40000>;
|
||||
ranges;
|
||||
|
||||
icoll: interrupt-controller@80000000 {
|
||||
compatible = "fsl,imx23-icoll", "fsl,mxs-icoll";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x80000000 0x2000>;
|
||||
};
|
||||
|
||||
dma-apbh@80004000 {
|
||||
compatible = "fsl,imx23-dma-apbh";
|
||||
reg = <0x80004000 2000>;
|
||||
};
|
||||
|
||||
ecc@80008000 {
|
||||
reg = <0x80008000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
bch@8000a000 {
|
||||
reg = <0x8000a000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpmi@8000c000 {
|
||||
reg = <0x8000c000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp0: ssp@80010000 {
|
||||
reg = <0x80010000 2000>;
|
||||
interrupts = <15 14>;
|
||||
fsl,ssp-dma-channel = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
etm@80014000 {
|
||||
reg = <0x80014000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl@80018000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx23-pinctrl", "simple-bus";
|
||||
reg = <0x80018000 2000>;
|
||||
|
||||
gpio0: gpio@0 {
|
||||
compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <16>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio1: gpio@1 {
|
||||
compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <17>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: gpio@2 {
|
||||
compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <18>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
duart_pins_a: duart@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x11a2 0x11b2>;
|
||||
fsl,drive-strength = <0>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <0>;
|
||||
};
|
||||
|
||||
mmc0_8bit_pins_a: mmc0-8bit@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x2020 0x2030 0x2040
|
||||
0x2050 0x0082 0x0092 0x00a2
|
||||
0x00b2 0x2000 0x2010 0x2060>;
|
||||
fsl,drive-strength = <1>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
|
||||
mmc0_pins_fixup: mmc0-pins-fixup {
|
||||
fsl,pinmux-ids = <0x2010 0x2060>;
|
||||
fsl,pull-up = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
digctl@8001c000 {
|
||||
reg = <0x8001c000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
emi@80020000 {
|
||||
reg = <0x80020000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma-apbx@80024000 {
|
||||
compatible = "fsl,imx23-dma-apbx";
|
||||
reg = <0x80024000 2000>;
|
||||
};
|
||||
|
||||
dcp@80028000 {
|
||||
reg = <0x80028000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pxp@8002a000 {
|
||||
reg = <0x8002a000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocotp@8002c000 {
|
||||
reg = <0x8002c000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
axi-ahb@8002e000 {
|
||||
reg = <0x8002e000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lcdif@80030000 {
|
||||
reg = <0x80030000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp1: ssp@80034000 {
|
||||
reg = <0x80034000 2000>;
|
||||
interrupts = <2 20>;
|
||||
fsl,ssp-dma-channel = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tvenc@80038000 {
|
||||
reg = <0x80038000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
apbx@80040000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80040000 0x40000>;
|
||||
ranges;
|
||||
|
||||
clkctl@80040000 {
|
||||
reg = <0x80040000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif0: saif@80042000 {
|
||||
reg = <0x80042000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
power@80044000 {
|
||||
reg = <0x80044000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif1: saif@80046000 {
|
||||
reg = <0x80046000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
audio-out@80048000 {
|
||||
reg = <0x80048000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
audio-in@8004c000 {
|
||||
reg = <0x8004c000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lradc@80050000 {
|
||||
reg = <0x80050000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spdif@80054000 {
|
||||
reg = <0x80054000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@80058000 {
|
||||
reg = <0x80058000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc@8005c000 {
|
||||
reg = <0x8005c000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm@80064000 {
|
||||
reg = <0x80064000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timrot@80068000 {
|
||||
reg = <0x80068000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart0: serial@8006c000 {
|
||||
reg = <0x8006c000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart1: serial@8006e000 {
|
||||
reg = <0x8006e000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
duart: serial@80070000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x80070000 0x2000>;
|
||||
interrupts = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbphy@8007c000 {
|
||||
reg = <0x8007c000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ahb@80080000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80080000 0x80000>;
|
||||
ranges;
|
||||
|
||||
usbctrl@80080000 {
|
||||
reg = <0x80080000 0x10000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
@ -27,22 +27,22 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart@1000a000 {
|
||||
serial@1000a000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart@1000b000 {
|
||||
serial@1000b000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart@1000c000 {
|
||||
serial@1000c000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
fec@1002b000 {
|
||||
ethernet@1002b000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -59,28 +59,28 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: uart@1000a000 {
|
||||
uart1: serial@1000a000 {
|
||||
compatible = "fsl,imx27-uart", "fsl,imx21-uart";
|
||||
reg = <0x1000a000 0x1000>;
|
||||
interrupts = <20>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: uart@1000b000 {
|
||||
uart2: serial@1000b000 {
|
||||
compatible = "fsl,imx27-uart", "fsl,imx21-uart";
|
||||
reg = <0x1000b000 0x1000>;
|
||||
interrupts = <19>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: uart@1000c000 {
|
||||
uart3: serial@1000c000 {
|
||||
compatible = "fsl,imx27-uart", "fsl,imx21-uart";
|
||||
reg = <0x1000c000 0x1000>;
|
||||
interrupts = <18>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: uart@1000d000 {
|
||||
uart4: serial@1000d000 {
|
||||
compatible = "fsl,imx27-uart", "fsl,imx21-uart";
|
||||
reg = <0x1000d000 0x1000>;
|
||||
interrupts = <17>;
|
||||
@ -183,14 +183,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart5: uart@1001b000 {
|
||||
uart5: serial@1001b000 {
|
||||
compatible = "fsl,imx27-uart", "fsl,imx21-uart";
|
||||
reg = <0x1001b000 0x1000>;
|
||||
interrupts = <49>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart6: uart@1001c000 {
|
||||
uart6: serial@1001c000 {
|
||||
compatible = "fsl,imx27-uart", "fsl,imx21-uart";
|
||||
reg = <0x1001c000 0x1000>;
|
||||
interrupts = <48>;
|
||||
@ -206,7 +206,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
fec: fec@1002b000 {
|
||||
fec: ethernet@1002b000 {
|
||||
compatible = "fsl,imx27-fec";
|
||||
reg = <0x1002b000 0x4000>;
|
||||
interrupts = <50>;
|
||||
|
114
arch/arm/boot/dts/imx28-evk.dts
Normal file
114
arch/arm/boot/dts/imx28-evk.dts
Normal file
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "imx28.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX28 Evaluation Kit";
|
||||
compatible = "fsl,imx28-evk", "fsl,imx28";
|
||||
|
||||
memory {
|
||||
reg = <0x40000000 0x08000000>;
|
||||
};
|
||||
|
||||
apb@80000000 {
|
||||
apbh@80000000 {
|
||||
ssp0: ssp@80010000 {
|
||||
compatible = "fsl,imx28-mmc";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_8bit_pins_a
|
||||
&mmc0_cd_cfg &mmc0_sck_cfg>;
|
||||
bus-width = <8>;
|
||||
wp-gpios = <&gpio2 12 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssp1: ssp@80012000 {
|
||||
compatible = "fsl,imx28-mmc";
|
||||
bus-width = <8>;
|
||||
wp-gpios = <&gpio0 28 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
apbx@80040000 {
|
||||
saif0: saif@80042000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&saif0_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
saif1: saif@80046000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&saif1_pins_a>;
|
||||
fsl,saif-master = <&saif0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@80058000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins_a>;
|
||||
status = "okay";
|
||||
|
||||
sgtl5000: codec@0a {
|
||||
compatible = "fsl,sgtl5000";
|
||||
reg = <0x0a>;
|
||||
VDDA-supply = <®_3p3v>;
|
||||
VDDIO-supply = <®_3p3v>;
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
duart: serial@80074000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&duart_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ahb@80080000 {
|
||||
mac0: ethernet@800f0000 {
|
||||
phy-mode = "rmii";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mac0_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
mac1: ethernet@800f4000 {
|
||||
phy-mode = "rmii";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mac1_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
|
||||
reg_3p3v: 3p3v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "3P3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx28-evk-sgtl5000",
|
||||
"fsl,mxs-audio-sgtl5000";
|
||||
model = "imx28-evk-sgtl5000";
|
||||
saif-controllers = <&saif0 &saif1>;
|
||||
audio-codec = <&sgtl5000>;
|
||||
};
|
||||
};
|
497
arch/arm/boot/dts/imx28.dtsi
Normal file
497
arch/arm/boot/dts/imx28.dtsi
Normal file
@ -0,0 +1,497 @@
|
||||
/*
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/include/ "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&icoll>;
|
||||
|
||||
aliases {
|
||||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
gpio3 = &gpio3;
|
||||
gpio4 = &gpio4;
|
||||
saif0 = &saif0;
|
||||
saif1 = &saif1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
compatible = "arm,arm926ejs";
|
||||
};
|
||||
};
|
||||
|
||||
apb@80000000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80000000 0x80000>;
|
||||
ranges;
|
||||
|
||||
apbh@80000000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80000000 0x3c900>;
|
||||
ranges;
|
||||
|
||||
icoll: interrupt-controller@80000000 {
|
||||
compatible = "fsl,imx28-icoll", "fsl,mxs-icoll";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x80000000 0x2000>;
|
||||
};
|
||||
|
||||
hsadc@80002000 {
|
||||
reg = <0x80002000 2000>;
|
||||
interrupts = <13 87>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma-apbh@80004000 {
|
||||
compatible = "fsl,imx28-dma-apbh";
|
||||
reg = <0x80004000 2000>;
|
||||
};
|
||||
|
||||
perfmon@80006000 {
|
||||
reg = <0x80006000 800>;
|
||||
interrupts = <27>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
bch@8000a000 {
|
||||
reg = <0x8000a000 2000>;
|
||||
interrupts = <41>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpmi@8000c000 {
|
||||
reg = <0x8000c000 2000>;
|
||||
interrupts = <42 88>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp0: ssp@80010000 {
|
||||
reg = <0x80010000 2000>;
|
||||
interrupts = <96 82>;
|
||||
fsl,ssp-dma-channel = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp1: ssp@80012000 {
|
||||
reg = <0x80012000 2000>;
|
||||
interrupts = <97 83>;
|
||||
fsl,ssp-dma-channel = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp2: ssp@80014000 {
|
||||
reg = <0x80014000 2000>;
|
||||
interrupts = <98 84>;
|
||||
fsl,ssp-dma-channel = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssp3: ssp@80016000 {
|
||||
reg = <0x80016000 2000>;
|
||||
interrupts = <99 85>;
|
||||
fsl,ssp-dma-channel = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl@80018000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-pinctrl", "simple-bus";
|
||||
reg = <0x80018000 2000>;
|
||||
|
||||
gpio0: gpio@0 {
|
||||
compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <127>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio1: gpio@1 {
|
||||
compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <126>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio2: gpio@2 {
|
||||
compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <125>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio3: gpio@3 {
|
||||
compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <124>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
gpio4: gpio@4 {
|
||||
compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
|
||||
interrupts = <123>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
duart_pins_a: duart@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x3102 0x3112>;
|
||||
fsl,drive-strength = <0>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <0>;
|
||||
};
|
||||
|
||||
mac0_pins_a: mac0@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x4000 0x4010 0x4020
|
||||
0x4030 0x4040 0x4060 0x4070
|
||||
0x4080 0x4100>;
|
||||
fsl,drive-strength = <1>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
|
||||
mac1_pins_a: mac1@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x40f1 0x4091 0x40a1
|
||||
0x40e1 0x40b1 0x40c1>;
|
||||
fsl,drive-strength = <1>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
|
||||
mmc0_8bit_pins_a: mmc0-8bit@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x2000 0x2010 0x2020
|
||||
0x2030 0x2040 0x2050 0x2060
|
||||
0x2070 0x2080 0x2090 0x20a0>;
|
||||
fsl,drive-strength = <1>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
|
||||
mmc0_cd_cfg: mmc0-cd-cfg {
|
||||
fsl,pinmux-ids = <0x2090>;
|
||||
fsl,pull-up = <0>;
|
||||
};
|
||||
|
||||
mmc0_sck_cfg: mmc0-sck-cfg {
|
||||
fsl,pinmux-ids = <0x20a0>;
|
||||
fsl,drive-strength = <2>;
|
||||
fsl,pull-up = <0>;
|
||||
};
|
||||
|
||||
i2c0_pins_a: i2c0@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x3180 0x3190>;
|
||||
fsl,drive-strength = <1>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
|
||||
saif0_pins_a: saif0@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids =
|
||||
<0x3140 0x3150 0x3160 0x3170>;
|
||||
fsl,drive-strength = <2>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
|
||||
saif1_pins_a: saif1@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <0x31a0>;
|
||||
fsl,drive-strength = <2>;
|
||||
fsl,voltage = <1>;
|
||||
fsl,pull-up = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
digctl@8001c000 {
|
||||
reg = <0x8001c000 2000>;
|
||||
interrupts = <89>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
etm@80022000 {
|
||||
reg = <0x80022000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma-apbx@80024000 {
|
||||
compatible = "fsl,imx28-dma-apbx";
|
||||
reg = <0x80024000 2000>;
|
||||
};
|
||||
|
||||
dcp@80028000 {
|
||||
reg = <0x80028000 2000>;
|
||||
interrupts = <52 53 54>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pxp@8002a000 {
|
||||
reg = <0x8002a000 2000>;
|
||||
interrupts = <39>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocotp@8002c000 {
|
||||
reg = <0x8002c000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
axi-ahb@8002e000 {
|
||||
reg = <0x8002e000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lcdif@80030000 {
|
||||
reg = <0x80030000 2000>;
|
||||
interrupts = <38 86>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can0: can@80032000 {
|
||||
reg = <0x80032000 2000>;
|
||||
interrupts = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can1: can@80034000 {
|
||||
reg = <0x80034000 2000>;
|
||||
interrupts = <9>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simdbg@8003c000 {
|
||||
reg = <0x8003c000 200>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simgpmisel@8003c200 {
|
||||
reg = <0x8003c200 100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simsspsel@8003c300 {
|
||||
reg = <0x8003c300 100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simmemsel@8003c400 {
|
||||
reg = <0x8003c400 100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpiomon@8003c500 {
|
||||
reg = <0x8003c500 100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
simenet@8003c700 {
|
||||
reg = <0x8003c700 100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
armjtag@8003c800 {
|
||||
reg = <0x8003c800 100>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
apbx@80040000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80040000 0x40000>;
|
||||
ranges;
|
||||
|
||||
clkctl@80040000 {
|
||||
reg = <0x80040000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif0: saif@80042000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80042000 2000>;
|
||||
interrupts = <59 80>;
|
||||
fsl,saif-dma-channel = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
power@80044000 {
|
||||
reg = <0x80044000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saif1: saif@80046000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80046000 2000>;
|
||||
interrupts = <58 81>;
|
||||
fsl,saif-dma-channel = <5>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lradc@80050000 {
|
||||
reg = <0x80050000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spdif@80054000 {
|
||||
reg = <0x80054000 2000>;
|
||||
interrupts = <45 66>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc@80056000 {
|
||||
reg = <0x80056000 2000>;
|
||||
interrupts = <28 29>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@80058000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-i2c";
|
||||
reg = <0x80058000 2000>;
|
||||
interrupts = <111 68>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@8005a000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx28-i2c";
|
||||
reg = <0x8005a000 2000>;
|
||||
interrupts = <110 69>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm@80064000 {
|
||||
reg = <0x80064000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timrot@80068000 {
|
||||
reg = <0x80068000 2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart0: serial@8006a000 {
|
||||
reg = <0x8006a000 0x2000>;
|
||||
interrupts = <112 70 71>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart1: serial@8006c000 {
|
||||
reg = <0x8006c000 0x2000>;
|
||||
interrupts = <113 72 73>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart2: serial@8006e000 {
|
||||
reg = <0x8006e000 0x2000>;
|
||||
interrupts = <114 74 75>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart3: serial@80070000 {
|
||||
reg = <0x80070000 0x2000>;
|
||||
interrupts = <115 76 77>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
auart4: serial@80072000 {
|
||||
reg = <0x80072000 0x2000>;
|
||||
interrupts = <116 78 79>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
duart: serial@80074000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x80074000 0x1000>;
|
||||
interrupts = <47>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbphy0: usbphy@8007c000 {
|
||||
reg = <0x8007c000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbphy1: usbphy@8007e000 {
|
||||
reg = <0x8007e000 0x2000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ahb@80080000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x80080000 0x80000>;
|
||||
ranges;
|
||||
|
||||
usbctrl0: usbctrl@80080000 {
|
||||
reg = <0x80080000 0x10000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbctrl1: usbctrl@80090000 {
|
||||
reg = <0x80090000 0x10000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dflpt@800c0000 {
|
||||
reg = <0x800c0000 0x10000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mac0: ethernet@800f0000 {
|
||||
compatible = "fsl,imx28-fec";
|
||||
reg = <0x800f0000 0x4000>;
|
||||
interrupts = <101>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mac1: ethernet@800f4000 {
|
||||
compatible = "fsl,imx28-fec";
|
||||
reg = <0x800f4000 0x4000>;
|
||||
interrupts = <102>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
switch@800f8000 {
|
||||
reg = <0x800f8000 0x8000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
@ -17,10 +17,6 @@
|
||||
model = "Freescale i.MX51 Babbage Board";
|
||||
compatible = "fsl,imx51-babbage", "fsl,imx51";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x90000000 0x20000000>;
|
||||
};
|
||||
@ -40,7 +36,7 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart3: uart@7000c000 {
|
||||
uart3: serial@7000c000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
@ -166,6 +162,11 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ssi2: ssi@70014000 {
|
||||
fsl,mode = "i2s-slave";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
wdog@73f98000 { /* WDOG1 */
|
||||
@ -177,12 +178,12 @@
|
||||
reg = <0x73fa8000 0x4000>;
|
||||
};
|
||||
|
||||
uart1: uart@73fbc000 {
|
||||
uart1: serial@73fbc000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart2: uart@73fc0000 {
|
||||
uart2: serial@73fc0000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@ -195,13 +196,20 @@
|
||||
i2c@83fc4000 { /* I2C2 */
|
||||
status = "okay";
|
||||
|
||||
codec: sgtl5000@0a {
|
||||
sgtl5000: codec@0a {
|
||||
compatible = "fsl,sgtl5000";
|
||||
reg = <0x0a>;
|
||||
clock-frequency = <26000000>;
|
||||
VDDA-supply = <&vdig_reg>;
|
||||
VDDIO-supply = <&vvideo_reg>;
|
||||
};
|
||||
};
|
||||
|
||||
fec@83fec000 {
|
||||
audmux@83fd0000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ethernet@83fec000 {
|
||||
phy-mode = "mii";
|
||||
status = "okay";
|
||||
};
|
||||
@ -218,4 +226,18 @@
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx51-babbage-sgtl5000",
|
||||
"fsl,imx-audio-sgtl5000";
|
||||
model = "imx51-babbage-sgtl5000";
|
||||
ssi-controller = <&ssi2>;
|
||||
audio-codec = <&sgtl5000>;
|
||||
audio-routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias",
|
||||
"Headphone Jack", "HP_OUT";
|
||||
mux-int-port = <2>;
|
||||
mux-ext-port = <3>;
|
||||
};
|
||||
};
|
||||
|
@ -86,7 +86,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: uart@7000c000 {
|
||||
uart3: serial@7000c000 {
|
||||
compatible = "fsl,imx51-uart", "fsl,imx21-uart";
|
||||
reg = <0x7000c000 0x4000>;
|
||||
interrupts = <33>;
|
||||
@ -102,6 +102,15 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi2: ssi@70014000 {
|
||||
compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
|
||||
reg = <0x70014000 0x4000>;
|
||||
interrupts = <30>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <25 24 23 22>; /* TX0 RX0 TX1 RX1 */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
esdhc@70020000 { /* ESDHC3 */
|
||||
compatible = "fsl,imx51-esdhc";
|
||||
reg = <0x70020000 0x4000>;
|
||||
@ -171,14 +180,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: uart@73fbc000 {
|
||||
uart1: serial@73fbc000 {
|
||||
compatible = "fsl,imx51-uart", "fsl,imx21-uart";
|
||||
reg = <0x73fbc000 0x4000>;
|
||||
interrupts = <31>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: uart@73fc0000 {
|
||||
uart2: serial@73fc0000 {
|
||||
compatible = "fsl,imx51-uart", "fsl,imx21-uart";
|
||||
reg = <0x73fc0000 0x4000>;
|
||||
interrupts = <32>;
|
||||
@ -235,7 +244,31 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
fec@83fec000 {
|
||||
ssi1: ssi@83fcc000 {
|
||||
compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
|
||||
reg = <0x83fcc000 0x4000>;
|
||||
interrupts = <29>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <29 28 27 26>; /* TX0 RX0 TX1 RX1 */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
audmux@83fd0000 {
|
||||
compatible = "fsl,imx51-audmux", "fsl,imx31-audmux";
|
||||
reg = <0x83fd0000 0x4000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi3: ssi@83fe8000 {
|
||||
compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
|
||||
reg = <0x83fe8000 0x4000>;
|
||||
interrupts = <96>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <47 46 37 35>; /* TX0 RX0 TX1 RX1 */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ethernet@83fec000 {
|
||||
compatible = "fsl,imx51-fec", "fsl,imx27-fec";
|
||||
reg = <0x83fec000 0x4000>;
|
||||
interrupts = <87>;
|
||||
|
@ -17,10 +17,6 @@
|
||||
model = "Freescale i.MX53 Automotive Reference Design Board";
|
||||
compatible = "fsl,imx53-ard", "fsl,imx53";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x70000000 0x40000000>;
|
||||
};
|
||||
@ -44,7 +40,7 @@
|
||||
reg = <0x53fa8000 0x4000>;
|
||||
};
|
||||
|
||||
uart1: uart@53fbc000 {
|
||||
uart1: serial@53fbc000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -17,10 +17,6 @@
|
||||
model = "Freescale i.MX53 Evaluation Kit";
|
||||
compatible = "fsl,imx53-evk", "fsl,imx53";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x70000000 0x80000000>;
|
||||
};
|
||||
@ -75,7 +71,7 @@
|
||||
reg = <0x53fa8000 0x4000>;
|
||||
};
|
||||
|
||||
uart1: uart@53fbc000 {
|
||||
uart1: serial@53fbc000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@ -99,7 +95,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
fec@63fec000 {
|
||||
ethernet@63fec000 {
|
||||
phy-mode = "rmii";
|
||||
phy-reset-gpios = <&gpio7 6 0>;
|
||||
status = "okay";
|
||||
|
@ -17,10 +17,6 @@
|
||||
model = "Freescale i.MX53 Quick Start Board";
|
||||
compatible = "fsl,imx53-qsb", "fsl,imx53";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x70000000 0x40000000>;
|
||||
};
|
||||
@ -33,6 +29,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssi2: ssi@50014000 {
|
||||
fsl,mode = "i2s-slave";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
esdhc@50020000 { /* ESDHC3 */
|
||||
cd-gpios = <&gpio3 11 0>;
|
||||
wp-gpios = <&gpio3 12 0>;
|
||||
@ -49,7 +50,7 @@
|
||||
reg = <0x53fa8000 0x4000>;
|
||||
};
|
||||
|
||||
uart1: uart@53fbc000 {
|
||||
uart1: serial@53fbc000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@ -62,9 +63,11 @@
|
||||
i2c@63fc4000 { /* I2C2 */
|
||||
status = "okay";
|
||||
|
||||
codec: sgtl5000@0a {
|
||||
sgtl5000: codec@0a {
|
||||
compatible = "fsl,sgtl5000";
|
||||
reg = <0x0a>;
|
||||
VDDA-supply = <®_3p2v>;
|
||||
VDDIO-supply = <®_3p2v>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -77,12 +80,88 @@
|
||||
};
|
||||
|
||||
pmic: dialog@48 {
|
||||
compatible = "dialog,da9053", "dialog,da9052";
|
||||
compatible = "dlg,da9053-aa", "dlg,da9052";
|
||||
reg = <0x48>;
|
||||
|
||||
regulators {
|
||||
buck0 {
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2075000>;
|
||||
};
|
||||
|
||||
buck1 {
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <2075000>;
|
||||
};
|
||||
|
||||
buck2 {
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
|
||||
buck3 {
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
|
||||
ldo4 {
|
||||
regulator-min-microvolt = <600000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
ldo5 {
|
||||
regulator-min-microvolt = <600000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
ldo6 {
|
||||
regulator-min-microvolt = <1725000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo7 {
|
||||
regulator-min-microvolt = <1725000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo8 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
};
|
||||
|
||||
ldo9 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
};
|
||||
|
||||
ldo10 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
};
|
||||
|
||||
ldo11 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
};
|
||||
|
||||
ldo12 {
|
||||
regulator-min-microvolt = <1250000>;
|
||||
regulator-max-microvolt = <3650000>;
|
||||
};
|
||||
|
||||
ldo13 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fec@63fec000 {
|
||||
audmux@63fd0000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ethernet@63fec000 {
|
||||
phy-mode = "rmii";
|
||||
phy-reset-gpios = <&gpio7 6 0>;
|
||||
status = "okay";
|
||||
@ -122,4 +201,30 @@
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
|
||||
reg_3p2v: 3p2v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "3P2V";
|
||||
regulator-min-microvolt = <3200000>;
|
||||
regulator-max-microvolt = <3200000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx53-qsb-sgtl5000",
|
||||
"fsl,imx-audio-sgtl5000";
|
||||
model = "imx53-qsb-sgtl5000";
|
||||
ssi-controller = <&ssi2>;
|
||||
audio-codec = <&sgtl5000>;
|
||||
audio-routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias",
|
||||
"Headphone Jack", "HP_OUT";
|
||||
mux-int-port = <2>;
|
||||
mux-ext-port = <5>;
|
||||
};
|
||||
};
|
||||
|
@ -17,10 +17,6 @@
|
||||
model = "Freescale i.MX53 Smart Mobile Reference Design Board";
|
||||
compatible = "fsl,imx53-smd", "fsl,imx53";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x70000000 0x40000000>;
|
||||
};
|
||||
@ -35,11 +31,11 @@
|
||||
};
|
||||
|
||||
esdhc@50008000 { /* ESDHC2 */
|
||||
fsl,card-wired;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart3: uart@5000c000 {
|
||||
uart3: serial@5000c000 {
|
||||
fsl,uart-has-rtscts;
|
||||
status = "okay";
|
||||
};
|
||||
@ -76,7 +72,7 @@
|
||||
};
|
||||
|
||||
esdhc@50020000 { /* ESDHC3 */
|
||||
fsl,card-wired;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@ -90,11 +86,11 @@
|
||||
reg = <0x53fa8000 0x4000>;
|
||||
};
|
||||
|
||||
uart1: uart@53fbc000 {
|
||||
uart1: serial@53fbc000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart2: uart@53fc0000 {
|
||||
uart2: serial@53fc0000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@ -142,7 +138,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
fec@63fec000 {
|
||||
ethernet@63fec000 {
|
||||
phy-mode = "rmii";
|
||||
phy-reset-gpios = <&gpio7 6 0>;
|
||||
status = "okay";
|
||||
|
@ -88,7 +88,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: uart@5000c000 {
|
||||
uart3: serial@5000c000 {
|
||||
compatible = "fsl,imx53-uart", "fsl,imx21-uart";
|
||||
reg = <0x5000c000 0x4000>;
|
||||
interrupts = <33>;
|
||||
@ -104,6 +104,15 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi2: ssi@50014000 {
|
||||
compatible = "fsl,imx53-ssi", "fsl,imx21-ssi";
|
||||
reg = <0x50014000 0x4000>;
|
||||
interrupts = <30>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <25 24 23 22>; /* TX0 RX0 TX1 RX1 */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
esdhc@50020000 { /* ESDHC3 */
|
||||
compatible = "fsl,imx53-esdhc";
|
||||
reg = <0x50020000 0x4000>;
|
||||
@ -173,14 +182,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: uart@53fbc000 {
|
||||
uart1: serial@53fbc000 {
|
||||
compatible = "fsl,imx53-uart", "fsl,imx21-uart";
|
||||
reg = <0x53fbc000 0x4000>;
|
||||
interrupts = <31>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: uart@53fc0000 {
|
||||
uart2: serial@53fc0000 {
|
||||
compatible = "fsl,imx53-uart", "fsl,imx21-uart";
|
||||
reg = <0x53fc0000 0x4000>;
|
||||
interrupts = <32>;
|
||||
@ -226,7 +235,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: uart@53ff0000 {
|
||||
uart4: serial@53ff0000 {
|
||||
compatible = "fsl,imx53-uart", "fsl,imx21-uart";
|
||||
reg = <0x53ff0000 0x4000>;
|
||||
interrupts = <13>;
|
||||
@ -241,7 +250,7 @@
|
||||
reg = <0x60000000 0x10000000>;
|
||||
ranges;
|
||||
|
||||
uart5: uart@63f90000 {
|
||||
uart5: serial@63f90000 {
|
||||
compatible = "fsl,imx53-uart", "fsl,imx21-uart";
|
||||
reg = <0x63f90000 0x4000>;
|
||||
interrupts = <86>;
|
||||
@ -290,7 +299,31 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
fec@63fec000 {
|
||||
ssi1: ssi@63fcc000 {
|
||||
compatible = "fsl,imx53-ssi", "fsl,imx21-ssi";
|
||||
reg = <0x63fcc000 0x4000>;
|
||||
interrupts = <29>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <29 28 27 26>; /* TX0 RX0 TX1 RX1 */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
audmux@63fd0000 {
|
||||
compatible = "fsl,imx53-audmux", "fsl,imx31-audmux";
|
||||
reg = <0x63fd0000 0x4000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi3: ssi@63fe8000 {
|
||||
compatible = "fsl,imx53-ssi", "fsl,imx21-ssi";
|
||||
reg = <0x63fe8000 0x4000>;
|
||||
interrupts = <96>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <47 46 45 44>; /* TX0 RX0 TX1 RX1 */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ethernet@63fec000 {
|
||||
compatible = "fsl,imx53-fec", "fsl,imx25-fec";
|
||||
reg = <0x63fec000 0x4000>;
|
||||
interrupts = <87>;
|
||||
|
@ -17,19 +17,14 @@
|
||||
model = "Freescale i.MX6 Quad Armadillo2 Board";
|
||||
compatible = "fsl,imx6q-arm2", "fsl,imx6q";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttymxc0,115200 root=/dev/mmcblk3p3 rootwait";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x10000000 0x80000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
aips-bus@02100000 { /* AIPS2 */
|
||||
enet@02188000 {
|
||||
ethernet@02188000 {
|
||||
phy-mode = "rgmii";
|
||||
local-mac-address = [00 04 9F 01 1B 61];
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -37,16 +32,20 @@
|
||||
cd-gpios = <&gpio6 11 0>;
|
||||
wp-gpios = <&gpio6 14 0>;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc3_1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usdhc@0219c000 { /* uSDHC4 */
|
||||
fsl,card-wired;
|
||||
non-removable;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc4_1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart4: uart@021f0000 {
|
||||
uart4: serial@021f0000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -22,8 +22,30 @@
|
||||
};
|
||||
|
||||
soc {
|
||||
aips-bus@02000000 { /* AIPS1 */
|
||||
spba-bus@02000000 {
|
||||
ecspi@02008000 { /* eCSPI1 */
|
||||
fsl,spi-num-chipselects = <1>;
|
||||
cs-gpios = <&gpio3 19 0>;
|
||||
status = "okay";
|
||||
|
||||
flash: m25p80@0 {
|
||||
compatible = "sst,sst25vf016b";
|
||||
spi-max-frequency = <20000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
ssi1: ssi@02028000 {
|
||||
fsl,mode = "i2s-slave";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
aips-bus@02100000 { /* AIPS2 */
|
||||
enet@02188000 {
|
||||
ethernet@02188000 {
|
||||
phy-mode = "rgmii";
|
||||
phy-reset-gpios = <&gpio3 23 0>;
|
||||
status = "okay";
|
||||
@ -43,13 +65,23 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart2: uart@021e8000 {
|
||||
audmux@021d8000 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_audmux_1>;
|
||||
};
|
||||
|
||||
uart2: serial@021e8000 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_serial2_1>;
|
||||
};
|
||||
|
||||
i2c@021a0000 { /* I2C1 */
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c1_1>;
|
||||
|
||||
codec: sgtl5000@0a {
|
||||
compatible = "fsl,sgtl5000";
|
||||
@ -80,4 +112,18 @@
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx6q-sabrelite-sgtl5000",
|
||||
"fsl,imx-audio-sgtl5000";
|
||||
model = "imx6q-sabrelite-sgtl5000";
|
||||
ssi-controller = <&ssi1>;
|
||||
audio-codec = <&codec>;
|
||||
audio-routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias",
|
||||
"Headphone Jack", "HP_OUT";
|
||||
mux-int-port = <1>;
|
||||
mux-ext-port = <4>;
|
||||
};
|
||||
};
|
||||
|
53
arch/arm/boot/dts/imx6q-sabresd.dts
Normal file
53
arch/arm/boot/dts/imx6q-sabresd.dts
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
* Copyright 2011 Linaro Ltd.
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "imx6q.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX6Q SABRE Smart Device Board";
|
||||
compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
|
||||
|
||||
memory {
|
||||
reg = <0x10000000 0x40000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
|
||||
aips-bus@02000000 { /* AIPS1 */
|
||||
spba-bus@02000000 {
|
||||
uart1: serial@02020000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
aips-bus@02100000 { /* AIPS2 */
|
||||
ethernet@02188000 {
|
||||
phy-mode = "rgmii";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usdhc@02194000 { /* uSDHC2 */
|
||||
cd-gpios = <&gpio2 2 0>;
|
||||
wp-gpios = <&gpio2 3 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usdhc@02198000 { /* uSDHC3 */
|
||||
cd-gpios = <&gpio2 0 0>;
|
||||
wp-gpios = <&gpio2 1 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -165,7 +165,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: uart@02020000 {
|
||||
uart1: serial@02020000 {
|
||||
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x02020000 0x4000>;
|
||||
interrupts = <0 26 0x04>;
|
||||
@ -177,19 +177,31 @@
|
||||
interrupts = <0 51 0x04>;
|
||||
};
|
||||
|
||||
ssi@02028000 { /* SSI1 */
|
||||
ssi1: ssi@02028000 {
|
||||
compatible = "fsl,imx6q-ssi","fsl,imx21-ssi";
|
||||
reg = <0x02028000 0x4000>;
|
||||
interrupts = <0 46 0x04>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <38 37>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi@0202c000 { /* SSI2 */
|
||||
ssi2: ssi@0202c000 {
|
||||
compatible = "fsl,imx6q-ssi","fsl,imx21-ssi";
|
||||
reg = <0x0202c000 0x4000>;
|
||||
interrupts = <0 47 0x04>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <42 41>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi@02030000 { /* SSI3 */
|
||||
ssi3: ssi@02030000 {
|
||||
compatible = "fsl,imx6q-ssi","fsl,imx21-ssi";
|
||||
reg = <0x02030000 0x4000>;
|
||||
interrupts = <0 48 0x04>;
|
||||
fsl,fifo-depth = <15>;
|
||||
fsl,ssi-dma-events = <46 45>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
asrc@02034000 {
|
||||
@ -346,6 +358,90 @@
|
||||
compatible = "fsl,imx6q-anatop";
|
||||
reg = <0x020c8000 0x1000>;
|
||||
interrupts = <0 49 0x04 0 54 0x04 0 127 0x04>;
|
||||
|
||||
regulator-1p1@110 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vdd1p1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1375000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x110>;
|
||||
anatop-vol-bit-shift = <8>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <4>;
|
||||
anatop-min-voltage = <800000>;
|
||||
anatop-max-voltage = <1375000>;
|
||||
};
|
||||
|
||||
regulator-3p0@120 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vdd3p0";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <3150000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x120>;
|
||||
anatop-vol-bit-shift = <8>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <0>;
|
||||
anatop-min-voltage = <2625000>;
|
||||
anatop-max-voltage = <3400000>;
|
||||
};
|
||||
|
||||
regulator-2p5@130 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vdd2p5";
|
||||
regulator-min-microvolt = <2000000>;
|
||||
regulator-max-microvolt = <2750000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x130>;
|
||||
anatop-vol-bit-shift = <8>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <0>;
|
||||
anatop-min-voltage = <2000000>;
|
||||
anatop-max-voltage = <2750000>;
|
||||
};
|
||||
|
||||
regulator-vddcore@140 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "cpu";
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x140>;
|
||||
anatop-vol-bit-shift = <0>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <1>;
|
||||
anatop-min-voltage = <725000>;
|
||||
anatop-max-voltage = <1450000>;
|
||||
};
|
||||
|
||||
regulator-vddpu@140 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vddpu";
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x140>;
|
||||
anatop-vol-bit-shift = <9>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <1>;
|
||||
anatop-min-voltage = <725000>;
|
||||
anatop-max-voltage = <1450000>;
|
||||
};
|
||||
|
||||
regulator-vddsoc@140 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vddsoc";
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x140>;
|
||||
anatop-vol-bit-shift = <18>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <1>;
|
||||
anatop-min-voltage = <725000>;
|
||||
anatop-max-voltage = <1450000>;
|
||||
};
|
||||
};
|
||||
|
||||
usbphy@020c9000 { /* USBPHY1 */
|
||||
@ -386,7 +482,62 @@
|
||||
};
|
||||
|
||||
iomuxc@020e0000 {
|
||||
compatible = "fsl,imx6q-iomuxc";
|
||||
reg = <0x020e0000 0x4000>;
|
||||
|
||||
/* shared pinctrl settings */
|
||||
audmux {
|
||||
pinctrl_audmux_1: audmux-1 {
|
||||
fsl,pins = <18 0x80000000 /* MX6Q_PAD_SD2_DAT0__AUDMUX_AUD4_RXD */
|
||||
1586 0x80000000 /* MX6Q_PAD_SD2_DAT3__AUDMUX_AUD4_TXC */
|
||||
11 0x80000000 /* MX6Q_PAD_SD2_DAT2__AUDMUX_AUD4_TXD */
|
||||
3 0x80000000>; /* MX6Q_PAD_SD2_DAT1__AUDMUX_AUD4_TXFS */
|
||||
};
|
||||
};
|
||||
|
||||
i2c1 {
|
||||
pinctrl_i2c1_1: i2c1grp-1 {
|
||||
fsl,pins = <137 0x4001b8b1 /* MX6Q_PAD_EIM_D21__I2C1_SCL */
|
||||
196 0x4001b8b1>; /* MX6Q_PAD_EIM_D28__I2C1_SDA */
|
||||
};
|
||||
};
|
||||
|
||||
serial2 {
|
||||
pinctrl_serial2_1: serial2grp-1 {
|
||||
fsl,pins = <183 0x1b0b1 /* MX6Q_PAD_EIM_D26__UART2_TXD */
|
||||
191 0x1b0b1>; /* MX6Q_PAD_EIM_D27__UART2_RXD */
|
||||
};
|
||||
};
|
||||
|
||||
usdhc3 {
|
||||
pinctrl_usdhc3_1: usdhc3grp-1 {
|
||||
fsl,pins = <1273 0x17059 /* MX6Q_PAD_SD3_CMD__USDHC3_CMD */
|
||||
1281 0x10059 /* MX6Q_PAD_SD3_CLK__USDHC3_CLK */
|
||||
1289 0x17059 /* MX6Q_PAD_SD3_DAT0__USDHC3_DAT0 */
|
||||
1297 0x17059 /* MX6Q_PAD_SD3_DAT1__USDHC3_DAT1 */
|
||||
1305 0x17059 /* MX6Q_PAD_SD3_DAT2__USDHC3_DAT2 */
|
||||
1312 0x17059 /* MX6Q_PAD_SD3_DAT3__USDHC3_DAT3 */
|
||||
1265 0x17059 /* MX6Q_PAD_SD3_DAT4__USDHC3_DAT4 */
|
||||
1257 0x17059 /* MX6Q_PAD_SD3_DAT5__USDHC3_DAT5 */
|
||||
1249 0x17059 /* MX6Q_PAD_SD3_DAT6__USDHC3_DAT6 */
|
||||
1241 0x17059>; /* MX6Q_PAD_SD3_DAT7__USDHC3_DAT7 */
|
||||
};
|
||||
};
|
||||
|
||||
usdhc4 {
|
||||
pinctrl_usdhc4_1: usdhc4grp-1 {
|
||||
fsl,pins = <1386 0x17059 /* MX6Q_PAD_SD4_CMD__USDHC4_CMD */
|
||||
1392 0x10059 /* MX6Q_PAD_SD4_CLK__USDHC4_CLK */
|
||||
1462 0x17059 /* MX6Q_PAD_SD4_DAT0__USDHC4_DAT0 */
|
||||
1470 0x17059 /* MX6Q_PAD_SD4_DAT1__USDHC4_DAT1 */
|
||||
1478 0x17059 /* MX6Q_PAD_SD4_DAT2__USDHC4_DAT2 */
|
||||
1486 0x17059 /* MX6Q_PAD_SD4_DAT3__USDHC4_DAT3 */
|
||||
1493 0x17059 /* MX6Q_PAD_SD4_DAT4__USDHC4_DAT4 */
|
||||
1501 0x17059 /* MX6Q_PAD_SD4_DAT5__USDHC4_DAT5 */
|
||||
1509 0x17059 /* MX6Q_PAD_SD4_DAT6__USDHC4_DAT6 */
|
||||
1517 0x17059>; /* MX6Q_PAD_SD4_DAT7__USDHC4_DAT7 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dcic@020e4000 { /* DCIC1 */
|
||||
@ -422,7 +573,7 @@
|
||||
reg = <0x0217c000 0x4000>;
|
||||
};
|
||||
|
||||
enet@02188000 {
|
||||
ethernet@02188000 {
|
||||
compatible = "fsl,imx6q-fec";
|
||||
reg = <0x02188000 0x4000>;
|
||||
interrupts = <0 118 0x04 0 119 0x04>;
|
||||
@ -527,7 +678,9 @@
|
||||
};
|
||||
|
||||
audmux@021d8000 {
|
||||
compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
|
||||
reg = <0x021d8000 0x4000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mipi@021dc000 { /* MIPI-CSI */
|
||||
@ -543,28 +696,28 @@
|
||||
interrupts = <0 18 0x04>;
|
||||
};
|
||||
|
||||
uart2: uart@021e8000 {
|
||||
uart2: serial@021e8000 {
|
||||
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x021e8000 0x4000>;
|
||||
interrupts = <0 27 0x04>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: uart@021ec000 {
|
||||
uart3: serial@021ec000 {
|
||||
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x021ec000 0x4000>;
|
||||
interrupts = <0 28 0x04>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: uart@021f0000 {
|
||||
uart4: serial@021f0000 {
|
||||
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x021f0000 0x4000>;
|
||||
interrupts = <0 29 0x04>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart5: uart@021f4000 {
|
||||
uart5: serial@021f4000 {
|
||||
compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x021f4000 0x4000>;
|
||||
interrupts = <0 30 0x04>;
|
||||
|
@ -57,7 +57,7 @@
|
||||
&mmc1 {
|
||||
vmmc-supply = <&vmmc1>;
|
||||
vmmc_aux-supply = <&vsim>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
|
@ -70,7 +70,7 @@
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <&vmmc>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
@ -87,5 +87,5 @@
|
||||
|
||||
&mmc5 {
|
||||
ti,non-removable;
|
||||
ti,bus-width = <4>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
@ -137,12 +137,12 @@
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <&vmmc>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
vmmc-supply = <&vaux1>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
ti,non-removable;
|
||||
};
|
||||
|
||||
@ -155,6 +155,6 @@
|
||||
};
|
||||
|
||||
&mmc5 {
|
||||
ti,bus-width = <4>;
|
||||
bus-width = <4>;
|
||||
ti,non-removable;
|
||||
};
|
||||
|
292
arch/arm/boot/dts/spear1310-evb.dts
Normal file
292
arch/arm/boot/dts/spear1310-evb.dts
Normal file
@ -0,0 +1,292 @@
|
||||
/*
|
||||
* DTS file for SPEAr1310 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "spear1310.dtsi"
|
||||
|
||||
/ {
|
||||
model = "ST SPEAr1310 Evaluation Board";
|
||||
compatible = "st,spear1310-evb", "st,spear1310";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
memory {
|
||||
reg = <0 0x40000000>;
|
||||
};
|
||||
|
||||
ahb {
|
||||
pinmux@e0700000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
state_default: pinmux {
|
||||
i2c0-pmx {
|
||||
st,pins = "i2c0_grp";
|
||||
st,function = "i2c0";
|
||||
};
|
||||
i2s1 {
|
||||
st,pins = "i2s1_grp";
|
||||
st,function = "i2s1";
|
||||
};
|
||||
gpio {
|
||||
st,pins = "arm_gpio_grp";
|
||||
st,function = "arm_gpio";
|
||||
};
|
||||
eth {
|
||||
st,pins = "gmii_grp";
|
||||
st,function = "gmii";
|
||||
};
|
||||
ssp0 {
|
||||
st,pins = "ssp0_grp";
|
||||
st,function = "ssp0";
|
||||
};
|
||||
kbd {
|
||||
st,pins = "keyboard_6x6_grp";
|
||||
st,function = "keyboard";
|
||||
};
|
||||
sdhci {
|
||||
st,pins = "sdhci_grp";
|
||||
st,function = "sdhci";
|
||||
};
|
||||
smi-pmx {
|
||||
st,pins = "smi_2_chips_grp";
|
||||
st,function = "smi";
|
||||
};
|
||||
uart0 {
|
||||
st,pins = "uart0_grp";
|
||||
st,function = "uart0";
|
||||
};
|
||||
rs485 {
|
||||
st,pins = "rs485_0_1_tdm_0_1_grp";
|
||||
st,function = "rs485_0_1_tdm_0_1";
|
||||
};
|
||||
i2c1_2 {
|
||||
st,pins = "i2c_1_2_grp";
|
||||
st,function = "i2c_1_2";
|
||||
};
|
||||
pci {
|
||||
st,pins = "pcie0_grp","pcie1_grp",
|
||||
"pcie2_grp";
|
||||
st,function = "pci";
|
||||
};
|
||||
smii {
|
||||
st,pins = "smii_0_1_2_grp";
|
||||
st,function = "smii_0_1_2";
|
||||
};
|
||||
nand {
|
||||
st,pins = "nand_8bit_grp",
|
||||
"nand_16bit_grp";
|
||||
st,function = "nand";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ahci@b1000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
cf@b2800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
dma@ea800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
dma@eb000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
fsmc: flash@b0000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gmac0: eth@e2000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@b3000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
smi: flash@ea000000 {
|
||||
status = "okay";
|
||||
clock-rate=<50000000>;
|
||||
|
||||
flash@e6000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xe6000000 0x800000>;
|
||||
st,smi-fast-mode;
|
||||
|
||||
partition@0 {
|
||||
label = "xloader";
|
||||
reg = <0x0 0x10000>;
|
||||
};
|
||||
partition@10000 {
|
||||
label = "u-boot";
|
||||
reg = <0x10000 0x40000>;
|
||||
};
|
||||
partition@50000 {
|
||||
label = "linux";
|
||||
reg = <0x50000 0x2c0000>;
|
||||
};
|
||||
partition@310000 {
|
||||
label = "rootfs";
|
||||
reg = <0x310000 0x4f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@e0100000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ehci@e4800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ehci@e5800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ohci@e4000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ohci@e5000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
apb {
|
||||
adc@e0080000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gpio0: gpio@e0600000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gpio1: gpio@e0680000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@e0280000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@5cd00000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
kbd@e0300000 {
|
||||
linux,keymap = < 0x00000001
|
||||
0x00010002
|
||||
0x00020003
|
||||
0x00030004
|
||||
0x00040005
|
||||
0x00050006
|
||||
0x00060007
|
||||
0x00070008
|
||||
0x00080009
|
||||
0x0100000a
|
||||
0x0101000c
|
||||
0x0102000d
|
||||
0x0103000e
|
||||
0x0104000f
|
||||
0x01050010
|
||||
0x01060011
|
||||
0x01070012
|
||||
0x01080013
|
||||
0x02000014
|
||||
0x02010015
|
||||
0x02020016
|
||||
0x02030017
|
||||
0x02040018
|
||||
0x02050019
|
||||
0x0206001a
|
||||
0x0207001b
|
||||
0x0208001c
|
||||
0x0300001d
|
||||
0x0301001e
|
||||
0x0302001f
|
||||
0x03030020
|
||||
0x03040021
|
||||
0x03050022
|
||||
0x03060023
|
||||
0x03070024
|
||||
0x03080025
|
||||
0x04000026
|
||||
0x04010027
|
||||
0x04020028
|
||||
0x04030029
|
||||
0x0404002a
|
||||
0x0405002b
|
||||
0x0406002c
|
||||
0x0407002d
|
||||
0x0408002e
|
||||
0x0500002f
|
||||
0x05010030
|
||||
0x05020031
|
||||
0x05030032
|
||||
0x05040033
|
||||
0x05050034
|
||||
0x05060035
|
||||
0x05070036
|
||||
0x05080037
|
||||
0x06000038
|
||||
0x06010039
|
||||
0x0602003a
|
||||
0x0603003b
|
||||
0x0604003c
|
||||
0x0605003d
|
||||
0x0606003e
|
||||
0x0607003f
|
||||
0x06080040
|
||||
0x07000041
|
||||
0x07010042
|
||||
0x07020043
|
||||
0x07030044
|
||||
0x07040045
|
||||
0x07050046
|
||||
0x07060047
|
||||
0x07070048
|
||||
0x07080049
|
||||
0x0800004a
|
||||
0x0801004b
|
||||
0x0802004c
|
||||
0x0803004d
|
||||
0x0804004e
|
||||
0x0805004f
|
||||
0x08060050
|
||||
0x08070051
|
||||
0x08080052 >;
|
||||
autorepeat;
|
||||
st,mode = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
rtc@e0580000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@e0000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
wdt@ec800620 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
184
arch/arm/boot/dts/spear1310.dtsi
Normal file
184
arch/arm/boot/dts/spear1310.dtsi
Normal file
@ -0,0 +1,184 @@
|
||||
/*
|
||||
* DTS file for all SPEAr1310 SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/include/ "spear13xx.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "st,spear1310";
|
||||
|
||||
ahb {
|
||||
ahci@b1000000 {
|
||||
compatible = "snps,spear-ahci";
|
||||
reg = <0xb1000000 0x10000>;
|
||||
interrupts = <0 68 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ahci@b1800000 {
|
||||
compatible = "snps,spear-ahci";
|
||||
reg = <0xb1800000 0x10000>;
|
||||
interrupts = <0 69 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ahci@b4000000 {
|
||||
compatible = "snps,spear-ahci";
|
||||
reg = <0xb4000000 0x10000>;
|
||||
interrupts = <0 70 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac1: eth@5c400000 {
|
||||
compatible = "st,spear600-gmac";
|
||||
reg = <0x5c400000 0x8000>;
|
||||
interrupts = <0 95 0x4>;
|
||||
interrupt-names = "macirq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac2: eth@5c500000 {
|
||||
compatible = "st,spear600-gmac";
|
||||
reg = <0x5c500000 0x8000>;
|
||||
interrupts = <0 96 0x4>;
|
||||
interrupt-names = "macirq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac3: eth@5c600000 {
|
||||
compatible = "st,spear600-gmac";
|
||||
reg = <0x5c600000 0x8000>;
|
||||
interrupts = <0 97 0x4>;
|
||||
interrupt-names = "macirq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac4: eth@5c700000 {
|
||||
compatible = "st,spear600-gmac";
|
||||
reg = <0x5c700000 0x8000>;
|
||||
interrupts = <0 98 0x4>;
|
||||
interrupt-names = "macirq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@5d400000 {
|
||||
compatible = "arm,pl022", "arm,primecell";
|
||||
reg = <0x5d400000 0x1000>;
|
||||
interrupts = <0 99 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
apb {
|
||||
i2c1: i2c@5cd00000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5cd00000 0x1000>;
|
||||
interrupts = <0 87 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@5ce00000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5ce00000 0x1000>;
|
||||
interrupts = <0 88 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c@5cf00000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5cf00000 0x1000>;
|
||||
interrupts = <0 89 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c4: i2c@5d000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5d000000 0x1000>;
|
||||
interrupts = <0 90 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c5: i2c@5d100000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5d100000 0x1000>;
|
||||
interrupts = <0 91 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c6: i2c@5d200000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5d200000 0x1000>;
|
||||
interrupts = <0 92 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c7: i2c@5d300000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x5d300000 0x1000>;
|
||||
interrupts = <0 93 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@5c800000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x5c800000 0x1000>;
|
||||
interrupts = <0 82 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@5c900000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x5c900000 0x1000>;
|
||||
interrupts = <0 83 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@5ca00000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x5ca00000 0x1000>;
|
||||
interrupts = <0 84 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@5cb00000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x5cb00000 0x1000>;
|
||||
interrupts = <0 85 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@5cc00000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0x5cc00000 0x1000>;
|
||||
interrupts = <0 86 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
thermal@e07008c4 {
|
||||
st,thermal-flags = <0x7000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
308
arch/arm/boot/dts/spear1340-evb.dts
Normal file
308
arch/arm/boot/dts/spear1340-evb.dts
Normal file
@ -0,0 +1,308 @@
|
||||
/*
|
||||
* DTS file for SPEAr1340 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "spear1340.dtsi"
|
||||
|
||||
/ {
|
||||
model = "ST SPEAr1340 Evaluation Board";
|
||||
compatible = "st,spear1340-evb", "st,spear1340";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
memory {
|
||||
reg = <0 0x40000000>;
|
||||
};
|
||||
|
||||
ahb {
|
||||
pinmux@e0700000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
state_default: pinmux {
|
||||
pads_as_gpio {
|
||||
st,pins = "pads_as_gpio_grp";
|
||||
st,function = "pads_as_gpio";
|
||||
};
|
||||
fsmc {
|
||||
st,pins = "fsmc_8bit_grp";
|
||||
st,function = "fsmc";
|
||||
};
|
||||
kbd {
|
||||
st,pins = "keyboard_row_col_grp",
|
||||
"keyboard_col5_grp";
|
||||
st,function = "keyboard";
|
||||
};
|
||||
uart0 {
|
||||
st,pins = "uart0_grp", "uart0_enh_grp";
|
||||
st,function = "uart0";
|
||||
};
|
||||
i2c0-pmx {
|
||||
st,pins = "i2c0_grp";
|
||||
st,function = "i2c0";
|
||||
};
|
||||
i2c1-pmx {
|
||||
st,pins = "i2c1_grp";
|
||||
st,function = "i2c1";
|
||||
};
|
||||
spdif-in {
|
||||
st,pins = "spdif_in_grp";
|
||||
st,function = "spdif_in";
|
||||
};
|
||||
spdif-out {
|
||||
st,pins = "spdif_out_grp";
|
||||
st,function = "spdif_out";
|
||||
};
|
||||
ssp0 {
|
||||
st,pins = "ssp0_grp", "ssp0_cs1_grp",
|
||||
"ssp0_cs3_grp";
|
||||
st,function = "ssp0";
|
||||
};
|
||||
pwm {
|
||||
st,pins = "pwm2_grp", "pwm3_grp";
|
||||
st,function = "pwm";
|
||||
};
|
||||
smi-pmx {
|
||||
st,pins = "smi_grp";
|
||||
st,function = "smi";
|
||||
};
|
||||
i2s {
|
||||
st,pins = "i2s_in_grp", "i2s_out_grp";
|
||||
st,function = "i2s";
|
||||
};
|
||||
gmac {
|
||||
st,pins = "gmii_grp", "rgmii_grp";
|
||||
st,function = "gmac";
|
||||
};
|
||||
cam3 {
|
||||
st,pins = "cam3_grp";
|
||||
st,function = "cam3";
|
||||
};
|
||||
cec0 {
|
||||
st,pins = "cec0_grp";
|
||||
st,function = "cec0";
|
||||
};
|
||||
cec1 {
|
||||
st,pins = "cec1_grp";
|
||||
st,function = "cec1";
|
||||
};
|
||||
sdhci {
|
||||
st,pins = "sdhci_grp";
|
||||
st,function = "sdhci";
|
||||
};
|
||||
clcd {
|
||||
st,pins = "clcd_grp";
|
||||
st,function = "clcd";
|
||||
};
|
||||
sata {
|
||||
st,pins = "sata_grp";
|
||||
st,function = "sata";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dma@ea800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
dma@eb000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
fsmc: flash@b0000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gmac0: eth@e2000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@b3000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
smi: flash@ea000000 {
|
||||
status = "okay";
|
||||
clock-rate=<50000000>;
|
||||
|
||||
flash@e6000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xe6000000 0x800000>;
|
||||
st,smi-fast-mode;
|
||||
|
||||
partition@0 {
|
||||
label = "xloader";
|
||||
reg = <0x0 0x10000>;
|
||||
};
|
||||
partition@10000 {
|
||||
label = "u-boot";
|
||||
reg = <0x10000 0x40000>;
|
||||
};
|
||||
partition@50000 {
|
||||
label = "linux";
|
||||
reg = <0x50000 0x2c0000>;
|
||||
};
|
||||
partition@310000 {
|
||||
label = "rootfs";
|
||||
reg = <0x310000 0x4f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@e0100000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ehci@e4800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ehci@e5800000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ohci@e4000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ohci@e5000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
apb {
|
||||
adc@e0080000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gpio0: gpio@e0600000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gpio1: gpio@e0680000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@e0280000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@b4000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
kbd@e0300000 {
|
||||
linux,keymap = < 0x00000001
|
||||
0x00010002
|
||||
0x00020003
|
||||
0x00030004
|
||||
0x00040005
|
||||
0x00050006
|
||||
0x00060007
|
||||
0x00070008
|
||||
0x00080009
|
||||
0x0100000a
|
||||
0x0101000c
|
||||
0x0102000d
|
||||
0x0103000e
|
||||
0x0104000f
|
||||
0x01050010
|
||||
0x01060011
|
||||
0x01070012
|
||||
0x01080013
|
||||
0x02000014
|
||||
0x02010015
|
||||
0x02020016
|
||||
0x02030017
|
||||
0x02040018
|
||||
0x02050019
|
||||
0x0206001a
|
||||
0x0207001b
|
||||
0x0208001c
|
||||
0x0300001d
|
||||
0x0301001e
|
||||
0x0302001f
|
||||
0x03030020
|
||||
0x03040021
|
||||
0x03050022
|
||||
0x03060023
|
||||
0x03070024
|
||||
0x03080025
|
||||
0x04000026
|
||||
0x04010027
|
||||
0x04020028
|
||||
0x04030029
|
||||
0x0404002a
|
||||
0x0405002b
|
||||
0x0406002c
|
||||
0x0407002d
|
||||
0x0408002e
|
||||
0x0500002f
|
||||
0x05010030
|
||||
0x05020031
|
||||
0x05030032
|
||||
0x05040033
|
||||
0x05050034
|
||||
0x05060035
|
||||
0x05070036
|
||||
0x05080037
|
||||
0x06000038
|
||||
0x06010039
|
||||
0x0602003a
|
||||
0x0603003b
|
||||
0x0604003c
|
||||
0x0605003d
|
||||
0x0606003e
|
||||
0x0607003f
|
||||
0x06080040
|
||||
0x07000041
|
||||
0x07010042
|
||||
0x07020043
|
||||
0x07030044
|
||||
0x07040045
|
||||
0x07050046
|
||||
0x07060047
|
||||
0x07070048
|
||||
0x07080049
|
||||
0x0800004a
|
||||
0x0801004b
|
||||
0x0802004c
|
||||
0x0803004d
|
||||
0x0804004e
|
||||
0x0805004f
|
||||
0x08060050
|
||||
0x08070051
|
||||
0x08080052 >;
|
||||
autorepeat;
|
||||
st,mode = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
rtc@e0580000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@e0000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@b4100000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
wdt@ec800620 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
56
arch/arm/boot/dts/spear1340.dtsi
Normal file
56
arch/arm/boot/dts/spear1340.dtsi
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* DTS file for all SPEAr1340 SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/include/ "spear13xx.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "st,spear1340";
|
||||
|
||||
ahb {
|
||||
ahci@b1000000 {
|
||||
compatible = "snps,spear-ahci";
|
||||
reg = <0xb1000000 0x10000>;
|
||||
interrupts = <0 72 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@5d400000 {
|
||||
compatible = "arm,pl022", "arm,primecell";
|
||||
reg = <0x5d400000 0x1000>;
|
||||
interrupts = <0 99 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
apb {
|
||||
i2c1: i2c@b4000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0xb4000000 0x1000>;
|
||||
interrupts = <0 104 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@b4100000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0xb4100000 0x1000>;
|
||||
interrupts = <0 105 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
thermal@e07008c4 {
|
||||
st,thermal-flags = <0x2a00>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
262
arch/arm/boot/dts/spear13xx.dtsi
Normal file
262
arch/arm/boot/dts/spear13xx.dtsi
Normal file
@ -0,0 +1,262 @@
|
||||
/*
|
||||
* DTS file for all SPEAr13xx SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
/include/ "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a9";
|
||||
reg = <0>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
|
||||
cpu@1 {
|
||||
compatible = "arm,cortex-a9";
|
||||
reg = <1>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
};
|
||||
|
||||
gic: interrupt-controller@ec801000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
reg = < 0xec801000 0x1000 >,
|
||||
< 0xec800100 0x0100 >;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts = <0 8 0x04
|
||||
0 9 0x04>;
|
||||
};
|
||||
|
||||
L2: l2-cache {
|
||||
compatible = "arm,pl310-cache";
|
||||
reg = <0xed000000 0x1000>;
|
||||
cache-unified;
|
||||
cache-level = <2>;
|
||||
};
|
||||
|
||||
memory {
|
||||
name = "memory";
|
||||
device_type = "memory";
|
||||
reg = <0 0x40000000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyAMA0,115200";
|
||||
};
|
||||
|
||||
ahb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x50000000 0x50000000 0x10000000
|
||||
0xb0000000 0xb0000000 0x10000000
|
||||
0xe0000000 0xe0000000 0x10000000>;
|
||||
|
||||
sdhci@b3000000 {
|
||||
compatible = "st,sdhci-spear";
|
||||
reg = <0xb3000000 0x100>;
|
||||
interrupts = <0 28 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
cf@b2800000 {
|
||||
compatible = "arasan,cf-spear1340";
|
||||
reg = <0xb2800000 0x100>;
|
||||
interrupts = <0 29 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma@ea800000 {
|
||||
compatible = "snps,dma-spear1340";
|
||||
reg = <0xea800000 0x1000>;
|
||||
interrupts = <0 19 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma@eb000000 {
|
||||
compatible = "snps,dma-spear1340";
|
||||
reg = <0xeb000000 0x1000>;
|
||||
interrupts = <0 59 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
fsmc: flash@b0000000 {
|
||||
compatible = "st,spear600-fsmc-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xb0000000 0x1000 /* FSMC Register */
|
||||
0xb0800000 0x0010>; /* NAND Base */
|
||||
reg-names = "fsmc_regs", "nand_data";
|
||||
interrupts = <0 20 0x4
|
||||
0 21 0x4
|
||||
0 22 0x4
|
||||
0 23 0x4>;
|
||||
st,ale-off = <0x20000>;
|
||||
st,cle-off = <0x10000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac0: eth@e2000000 {
|
||||
compatible = "st,spear600-gmac";
|
||||
reg = <0xe2000000 0x8000>;
|
||||
interrupts = <0 23 0x4
|
||||
0 24 0x4>;
|
||||
interrupt-names = "macirq", "eth_wake_irq";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
smi: flash@ea000000 {
|
||||
compatible = "st,spear600-smi";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xea000000 0x1000>;
|
||||
interrupts = <0 30 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi0: spi@e0100000 {
|
||||
compatible = "arm,pl022", "arm,primecell";
|
||||
reg = <0xe0100000 0x1000>;
|
||||
interrupts = <0 31 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehci@e4800000 {
|
||||
compatible = "st,spear600-ehci", "usb-ehci";
|
||||
reg = <0xe4800000 0x1000>;
|
||||
interrupts = <0 64 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehci@e5800000 {
|
||||
compatible = "st,spear600-ehci", "usb-ehci";
|
||||
reg = <0xe5800000 0x1000>;
|
||||
interrupts = <0 66 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci@e4000000 {
|
||||
compatible = "st,spear600-ohci", "usb-ohci";
|
||||
reg = <0xe4000000 0x1000>;
|
||||
interrupts = <0 65 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci@e5000000 {
|
||||
compatible = "st,spear600-ohci", "usb-ohci";
|
||||
reg = <0xe5000000 0x1000>;
|
||||
interrupts = <0 67 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
apb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x50000000 0x50000000 0x10000000
|
||||
0xb0000000 0xb0000000 0x10000000
|
||||
0xe0000000 0xe0000000 0x10000000>;
|
||||
|
||||
gpio0: gpio@e0600000 {
|
||||
compatible = "arm,pl061", "arm,primecell";
|
||||
reg = <0xe0600000 0x1000>;
|
||||
interrupts = <0 24 0x4>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpio1: gpio@e0680000 {
|
||||
compatible = "arm,pl061", "arm,primecell";
|
||||
reg = <0xe0680000 0x1000>;
|
||||
interrupts = <0 25 0x4>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
kbd@e0300000 {
|
||||
compatible = "st,spear300-kbd";
|
||||
reg = <0xe0300000 0x1000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@e0280000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0xe0280000 0x1000>;
|
||||
interrupts = <0 41 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rtc@e0580000 {
|
||||
compatible = "st,spear-rtc";
|
||||
reg = <0xe0580000 0x1000>;
|
||||
interrupts = <0 36 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@e0000000 {
|
||||
compatible = "arm,pl011", "arm,primecell";
|
||||
reg = <0xe0000000 0x1000>;
|
||||
interrupts = <0 36 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
adc@e0080000 {
|
||||
compatible = "st,spear600-adc";
|
||||
reg = <0xe0080000 0x1000>;
|
||||
interrupts = <0 44 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timer@e0380000 {
|
||||
compatible = "st,spear-timer";
|
||||
reg = <0xe0380000 0x400>;
|
||||
interrupts = <0 37 0x4>;
|
||||
};
|
||||
|
||||
timer@ec800600 {
|
||||
compatible = "arm,cortex-a9-twd-timer";
|
||||
reg = <0xec800600 0x20>;
|
||||
interrupts = <1 13 0x301>;
|
||||
};
|
||||
|
||||
wdt@ec800620 {
|
||||
compatible = "arm,cortex-a9-twd-wdt";
|
||||
reg = <0xec800620 0x20>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
thermal@e07008c4 {
|
||||
compatible = "st,thermal-spear1340";
|
||||
reg = <0xe07008c4 0x4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -87,6 +87,31 @@
|
||||
|
||||
smi: flash@fc000000 {
|
||||
status = "okay";
|
||||
clock-rate=<50000000>;
|
||||
|
||||
flash@f8000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xf8000000 0x800000>;
|
||||
st,smi-fast-mode;
|
||||
|
||||
partition@0 {
|
||||
label = "xloader";
|
||||
reg = <0x0 0x10000>;
|
||||
};
|
||||
partition@10000 {
|
||||
label = "u-boot";
|
||||
reg = <0x10000 0x40000>;
|
||||
};
|
||||
partition@50000 {
|
||||
label = "linux";
|
||||
reg = <0x50000 0x2c0000>;
|
||||
};
|
||||
partition@310000 {
|
||||
label = "rootfs";
|
||||
reg = <0x310000 0x4f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@d0100000 {
|
||||
|
@ -103,11 +103,27 @@
|
||||
clock-rate=<50000000>;
|
||||
|
||||
flash@f8000000 {
|
||||
label = "m25p64";
|
||||
reg = <0xf8000000 0x800000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xf8000000 0x800000>;
|
||||
st,smi-fast-mode;
|
||||
|
||||
partition@0 {
|
||||
label = "xloader";
|
||||
reg = <0x0 0x10000>;
|
||||
};
|
||||
partition@10000 {
|
||||
label = "u-boot";
|
||||
reg = <0x10000 0x40000>;
|
||||
};
|
||||
partition@50000 {
|
||||
label = "linux";
|
||||
reg = <0x50000 0x2c0000>;
|
||||
};
|
||||
partition@310000 {
|
||||
label = "rootfs";
|
||||
reg = <0x310000 0x4f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -110,6 +110,31 @@
|
||||
|
||||
smi: flash@fc000000 {
|
||||
status = "okay";
|
||||
clock-rate=<50000000>;
|
||||
|
||||
flash@f8000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xf8000000 0x800000>;
|
||||
st,smi-fast-mode;
|
||||
|
||||
partition@0 {
|
||||
label = "xloader";
|
||||
reg = <0x0 0x10000>;
|
||||
};
|
||||
partition@10000 {
|
||||
label = "u-boot";
|
||||
reg = <0x10000 0x40000>;
|
||||
};
|
||||
partition@50000 {
|
||||
label = "linux";
|
||||
reg = <0x50000 0x2c0000>;
|
||||
};
|
||||
partition@310000 {
|
||||
label = "rootfs";
|
||||
reg = <0x310000 0x4f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@d0100000 {
|
||||
|
@ -139,6 +139,12 @@
|
||||
interrupts = <12>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timer@f0000000 {
|
||||
compatible = "st,spear-timer";
|
||||
reg = <0xf0000000 0x400>;
|
||||
interrupts = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -33,6 +33,35 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
smi: flash@fc000000 {
|
||||
status = "okay";
|
||||
clock-rate=<50000000>;
|
||||
|
||||
flash@f8000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xf8000000 0x800000>;
|
||||
st,smi-fast-mode;
|
||||
|
||||
partition@0 {
|
||||
label = "xloader";
|
||||
reg = <0x0 0x10000>;
|
||||
};
|
||||
partition@10000 {
|
||||
label = "u-boot";
|
||||
reg = <0x10000 0x40000>;
|
||||
};
|
||||
partition@50000 {
|
||||
label = "linux";
|
||||
reg = <0x50000 0x2c0000>;
|
||||
};
|
||||
partition@310000 {
|
||||
label = "rootfs";
|
||||
reg = <0x310000 0x4f0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
apb {
|
||||
serial@d0000000 {
|
||||
status = "okay";
|
||||
|
@ -177,6 +177,12 @@
|
||||
interrupts = <28>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timer@f0000000 {
|
||||
compatible = "st,spear-timer";
|
||||
reg = <0xf0000000 0x400>;
|
||||
interrupts = <16>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -7,10 +7,10 @@
|
||||
compatible = "nvidia,cardhu", "nvidia,tegra30";
|
||||
|
||||
memory {
|
||||
reg = < 0x80000000 0x40000000 >;
|
||||
reg = <0x80000000 0x40000000>;
|
||||
};
|
||||
|
||||
pinmux@70000000 {
|
||||
pinmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
@ -51,64 +51,122 @@
|
||||
nvidia,pull = <2>;
|
||||
nvidia,tristate = <0>;
|
||||
};
|
||||
dap2_fs_pa2 {
|
||||
nvidia,pins = "dap2_fs_pa2",
|
||||
"dap2_sclk_pa3",
|
||||
"dap2_din_pa4",
|
||||
"dap2_dout_pa5";
|
||||
nvidia,function = "i2s1";
|
||||
nvidia,pull = <0>;
|
||||
nvidia,tristate = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
clock-frequency = < 408000000 >;
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
status = "disable";
|
||||
status = "okay";
|
||||
clock-frequency = <408000000>;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
|
||||
/* ALS and Proximity sensor */
|
||||
isl29028@44 {
|
||||
compatible = "isil,isl29028";
|
||||
reg = <0x44>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <88 0x04>; /*gpio PL0 */
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7000c700 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
|
||||
wm8903: wm8903@1a {
|
||||
compatible = "wlf,wm8903";
|
||||
reg = <0x1a>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <179 0x04>; /* gpio PW3 */
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
micdet-cfg = <0>;
|
||||
micdet-delay = <100>;
|
||||
gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
|
||||
};
|
||||
|
||||
tps62361 {
|
||||
compatible = "ti,tps62361";
|
||||
reg = <0x60>;
|
||||
|
||||
regulator-name = "tps62361-vout";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
ti,vsel0-state-high;
|
||||
ti,vsel1-state-high;
|
||||
};
|
||||
};
|
||||
|
||||
ahub {
|
||||
i2s@70080400 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
sdhci@78000000 {
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
power-gpios = <&gpio 31 0>; /* gpio PD7 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@78000200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@78000400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@78000400 {
|
||||
sdhci@78000600 {
|
||||
status = "okay";
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "nvidia,tegra-audio-wm8903-cardhu",
|
||||
"nvidia,tegra-audio-wm8903";
|
||||
nvidia,model = "NVIDIA Tegra Cardhu";
|
||||
|
||||
nvidia,audio-routing =
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Int Spk", "ROP",
|
||||
"Int Spk", "RON",
|
||||
"Int Spk", "LOP",
|
||||
"Int Spk", "LON",
|
||||
"Mic Jack", "MICBIAS",
|
||||
"IN1L", "Mic Jack";
|
||||
|
||||
nvidia,i2s-controller = <&tegra_i2s1>;
|
||||
nvidia,audio-codec = <&wm8903>;
|
||||
|
||||
nvidia,spkr-en-gpios = <&wm8903 2 0>;
|
||||
nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
|
||||
};
|
||||
};
|
||||
|
@ -6,11 +6,11 @@
|
||||
model = "NVIDIA Tegra2 Harmony evaluation board";
|
||||
compatible = "nvidia,harmony", "nvidia,tegra20";
|
||||
|
||||
memory@0 {
|
||||
reg = < 0x00000000 0x40000000 >;
|
||||
memory {
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
pinmux@70000000 {
|
||||
pinmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
@ -167,28 +167,28 @@
|
||||
};
|
||||
conf_ata {
|
||||
nvidia,pins = "ata", "atb", "atc", "atd", "ate",
|
||||
"cdev1", "dap1", "dtb", "gma", "gmb",
|
||||
"gmc", "gmd", "gme", "gpu7", "gpv",
|
||||
"i2cp", "pta", "rm", "slxa", "slxk",
|
||||
"spia", "spib";
|
||||
"cdev1", "cdev2", "dap1", "dtb", "gma",
|
||||
"gmb", "gmc", "gmd", "gme", "gpu7",
|
||||
"gpv", "i2cp", "pta", "rm", "slxa",
|
||||
"slxk", "spia", "spib", "uac";
|
||||
nvidia,pull = <0>;
|
||||
nvidia,tristate = <0>;
|
||||
};
|
||||
conf_cdev2 {
|
||||
nvidia,pins = "cdev2", "csus", "spid", "spif";
|
||||
nvidia,pull = <1>;
|
||||
nvidia,tristate = <1>;
|
||||
};
|
||||
conf_ck32 {
|
||||
nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
|
||||
"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
|
||||
nvidia,pull = <0>;
|
||||
};
|
||||
conf_csus {
|
||||
nvidia,pins = "csus", "spid", "spif";
|
||||
nvidia,pull = <1>;
|
||||
nvidia,tristate = <1>;
|
||||
};
|
||||
conf_crtp {
|
||||
nvidia,pins = "crtp", "dap2", "dap3", "dap4",
|
||||
"dtc", "dte", "dtf", "gpu", "sdio1",
|
||||
"slxc", "slxd", "spdi", "spdo", "spig",
|
||||
"uac", "uda";
|
||||
"uda";
|
||||
nvidia,pull = <0>;
|
||||
nvidia,tristate = <1>;
|
||||
};
|
||||
@ -234,42 +234,81 @@
|
||||
};
|
||||
};
|
||||
|
||||
pmc@7000f400 {
|
||||
nvidia,invert-interrupt;
|
||||
i2s@70002800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
status = "okay";
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
wm8903: wm8903@1a {
|
||||
compatible = "wlf,wm8903";
|
||||
reg = <0x1a>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = < 187 0x04 >;
|
||||
interrupts = <187 0x04>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
micdet-cfg = <0>;
|
||||
micdet-delay = <100>;
|
||||
gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
|
||||
gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2s@70002a00 {
|
||||
status = "disable";
|
||||
pmc {
|
||||
nvidia,invert-interrupt;
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
status = "okay";
|
||||
nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 58 0>; /* gpio PH2 */
|
||||
wp-gpios = <&gpio 59 0>; /* gpio PH3 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
sound {
|
||||
@ -295,45 +334,4 @@
|
||||
nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
|
||||
nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
clock-frequency = < 216000000 >;
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
cd-gpios = <&gpio 58 0>; /* gpio PH2 */
|
||||
wp-gpios = <&gpio 59 0>; /* gpio PH3 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
support-8bit;
|
||||
};
|
||||
};
|
||||
|
@ -6,11 +6,11 @@
|
||||
model = "Toshiba AC100 / Dynabook AZ";
|
||||
compatible = "compal,paz00", "nvidia,tegra20";
|
||||
|
||||
memory@0 {
|
||||
memory {
|
||||
reg = <0x00000000 0x20000000>;
|
||||
};
|
||||
|
||||
pinmux@70000000 {
|
||||
pinmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
@ -159,18 +159,14 @@
|
||||
};
|
||||
conf_ata {
|
||||
nvidia,pins = "ata", "atb", "atc", "atd", "ate",
|
||||
"cdev1", "dap1", "dap2", "dtf", "gma",
|
||||
"gmb", "gmc", "gmd", "gme", "gpu",
|
||||
"gpu7", "gpv", "i2cp", "pta", "rm",
|
||||
"sdio1", "slxk", "spdo", "uac", "uda";
|
||||
"cdev1", "cdev2", "dap1", "dap2", "dtf",
|
||||
"gma", "gmb", "gmc", "gmd", "gme",
|
||||
"gpu", "gpu7", "gpv", "i2cp", "pta",
|
||||
"rm", "sdio1", "slxk", "spdo", "uac",
|
||||
"uda";
|
||||
nvidia,pull = <0>;
|
||||
nvidia,tristate = <0>;
|
||||
};
|
||||
conf_cdev2 {
|
||||
nvidia,pins = "cdev2";
|
||||
nvidia,pull = <1>;
|
||||
nvidia,tristate = <0>;
|
||||
};
|
||||
conf_ck32 {
|
||||
nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
|
||||
"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
|
||||
@ -230,7 +226,22 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2s@70002800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
status = "okay";
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
status = "okay";
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
alc5632: alc5632@1e {
|
||||
@ -242,25 +253,23 @@
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
nvec@7000c500 {
|
||||
nvec {
|
||||
compatible = "nvidia,nvec";
|
||||
reg = <0x7000c500 0x100>;
|
||||
interrupts = <0 92 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,nvec";
|
||||
reg = <0x7000C500 0x100>;
|
||||
interrupts = <0 92 0x04>;
|
||||
clock-frequency = <80000>;
|
||||
request-gpios = <&gpio 170 0>;
|
||||
request-gpios = <&gpio 170 0>; /* gpio PV2 */
|
||||
slave-addr = <138>;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
adt7461@4c {
|
||||
@ -269,8 +278,52 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2s@70002a00 {
|
||||
status = "disable";
|
||||
usb@c5000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
status = "okay";
|
||||
nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 173 0>; /* gpio PV5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 169 0>; /* gpio PV1 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
status = "okay";
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
power {
|
||||
label = "Power";
|
||||
gpios = <&gpio 79 1>; /* gpio PJ7, active low */
|
||||
linux,code = <116>; /* KEY_POWER */
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wifi {
|
||||
label = "wifi-led";
|
||||
gpios = <&gpio 24 0>; /* gpio PD0 */
|
||||
linux,default-trigger = "rfkill0";
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
@ -292,63 +345,4 @@
|
||||
nvidia,i2s-controller = <&tegra_i2s1>;
|
||||
nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
cd-gpios = <&gpio 173 0>; /* gpio PV5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 169 0>; /* gpio PV1 */
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
support-8bit;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
power {
|
||||
label = "Power";
|
||||
gpios = <&gpio 79 1>; /* gpio PJ7, active low */
|
||||
linux,code = <116>; /* KEY_POWER */
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wifi {
|
||||
label = "wifi-led";
|
||||
gpios = <&gpio 24 0>;
|
||||
linux,default-trigger = "rfkill0";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -7,11 +7,10 @@
|
||||
compatible = "nvidia,seaboard", "nvidia,tegra20";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = < 0x00000000 0x40000000 >;
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
pinmux@70000000 {
|
||||
pinmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
@ -100,7 +99,7 @@
|
||||
};
|
||||
hdint {
|
||||
nvidia,pins = "hdint", "lpw0", "lpw2", "lsc1",
|
||||
"lsck", "lsda", "pta";
|
||||
"lsck", "lsda";
|
||||
nvidia,function = "hdmi";
|
||||
};
|
||||
i2cp {
|
||||
@ -134,6 +133,10 @@
|
||||
nvidia,pins = "pmc";
|
||||
nvidia,function = "pwr_on";
|
||||
};
|
||||
pta {
|
||||
nvidia,pins = "pta";
|
||||
nvidia,function = "i2c2";
|
||||
};
|
||||
rm {
|
||||
nvidia,pins = "rm";
|
||||
nvidia,function = "i2c1";
|
||||
@ -254,43 +257,168 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2s@70002800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
status = "okay";
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
wm8903: wm8903@1a {
|
||||
compatible = "wlf,wm8903";
|
||||
reg = <0x1a>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = < 187 0x04 >;
|
||||
interrupts = <187 0x04>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
micdet-cfg = <0>;
|
||||
micdet-delay = <100>;
|
||||
gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
|
||||
gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
|
||||
};
|
||||
|
||||
/* ALS and proximity sensor */
|
||||
isl29018@44 {
|
||||
compatible = "isil,isl29018";
|
||||
reg = <0x44>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <202 0x04>; /* GPIO PZ2 */
|
||||
};
|
||||
|
||||
gyrometer@68 {
|
||||
compatible = "invn,mpu3050";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <204 0x04>; /* gpio PZ4 */
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
clock-frequency = <400000>;
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
|
||||
smart-battery@b {
|
||||
compatible = "ti,bq20z75", "smart-battery-1.1";
|
||||
reg = <0xb>;
|
||||
ti,i2c-retry-count = <2>;
|
||||
ti,poll-retry-count = <10>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
adt7461@4c {
|
||||
compatible = "adt7461";
|
||||
temperature-sensor@4c {
|
||||
compatible = "nct1008";
|
||||
reg = <0x4c>;
|
||||
};
|
||||
|
||||
magnetometer@c {
|
||||
compatible = "ak8975";
|
||||
reg = <0xc>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <109 0x04>; /* gpio PN5 */
|
||||
};
|
||||
};
|
||||
|
||||
i2s@70002a00 {
|
||||
status = "disable";
|
||||
emc {
|
||||
emc-table@190000 {
|
||||
reg = <190000>;
|
||||
compatible = "nvidia,tegra20-emc-table";
|
||||
clock-frequency = <190000>;
|
||||
nvidia,emc-registers = <0x0000000c 0x00000026
|
||||
0x00000009 0x00000003 0x00000004 0x00000004
|
||||
0x00000002 0x0000000c 0x00000003 0x00000003
|
||||
0x00000002 0x00000001 0x00000004 0x00000005
|
||||
0x00000004 0x00000009 0x0000000d 0x0000059f
|
||||
0x00000000 0x00000003 0x00000003 0x00000003
|
||||
0x00000003 0x00000001 0x0000000b 0x000000c8
|
||||
0x00000003 0x00000007 0x00000004 0x0000000f
|
||||
0x00000002 0x00000000 0x00000000 0x00000002
|
||||
0x00000000 0x00000000 0x00000083 0xa06204ae
|
||||
0x007dc010 0x00000000 0x00000000 0x00000000
|
||||
0x00000000 0x00000000 0x00000000 0x00000000>;
|
||||
};
|
||||
|
||||
emc-table@380000 {
|
||||
reg = <380000>;
|
||||
compatible = "nvidia,tegra20-emc-table";
|
||||
clock-frequency = <380000>;
|
||||
nvidia,emc-registers = <0x00000017 0x0000004b
|
||||
0x00000012 0x00000006 0x00000004 0x00000005
|
||||
0x00000003 0x0000000c 0x00000006 0x00000006
|
||||
0x00000003 0x00000001 0x00000004 0x00000005
|
||||
0x00000004 0x00000009 0x0000000d 0x00000b5f
|
||||
0x00000000 0x00000003 0x00000003 0x00000006
|
||||
0x00000006 0x00000001 0x00000011 0x000000c8
|
||||
0x00000003 0x0000000e 0x00000007 0x0000000f
|
||||
0x00000002 0x00000000 0x00000000 0x00000002
|
||||
0x00000000 0x00000000 0x00000083 0xe044048b
|
||||
0x007d8010 0x00000000 0x00000000 0x00000000
|
||||
0x00000000 0x00000000 0x00000000 0x00000000>;
|
||||
};
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
status = "okay";
|
||||
nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
|
||||
dr_mode = "otg";
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
status = "okay";
|
||||
nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
status = "okay";
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
power {
|
||||
label = "Power";
|
||||
gpios = <&gpio 170 1>; /* gpio PV2, active low */
|
||||
linux,code = <116>; /* KEY_POWER */
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
|
||||
lid {
|
||||
label = "Lid";
|
||||
gpios = <&gpio 23 0>; /* gpio PC7 */
|
||||
linux,input-type = <5>; /* EV_SW */
|
||||
linux,code = <0>; /* SW_LID */
|
||||
debounce-interval = <1>;
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
@ -314,105 +442,4 @@
|
||||
nvidia,spkr-en-gpios = <&wm8903 2 0>;
|
||||
nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
clock-frequency = < 216000000 >;
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
support-8bit;
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
|
||||
dr_mode = "otg";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
power {
|
||||
label = "Power";
|
||||
gpios = <&gpio 170 1>; /* gpio PV2, active low */
|
||||
linux,code = <116>; /* KEY_POWER */
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
|
||||
lid {
|
||||
label = "Lid";
|
||||
gpios = <&gpio 23 0>; /* gpio PC7 */
|
||||
linux,input-type = <5>; /* EV_SW */
|
||||
linux,code = <0>; /* SW_LID */
|
||||
debounce-interval = <1>;
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
emc@7000f400 {
|
||||
emc-table@190000 {
|
||||
reg = < 190000 >;
|
||||
compatible = "nvidia,tegra20-emc-table";
|
||||
clock-frequency = < 190000 >;
|
||||
nvidia,emc-registers = < 0x0000000c 0x00000026
|
||||
0x00000009 0x00000003 0x00000004 0x00000004
|
||||
0x00000002 0x0000000c 0x00000003 0x00000003
|
||||
0x00000002 0x00000001 0x00000004 0x00000005
|
||||
0x00000004 0x00000009 0x0000000d 0x0000059f
|
||||
0x00000000 0x00000003 0x00000003 0x00000003
|
||||
0x00000003 0x00000001 0x0000000b 0x000000c8
|
||||
0x00000003 0x00000007 0x00000004 0x0000000f
|
||||
0x00000002 0x00000000 0x00000000 0x00000002
|
||||
0x00000000 0x00000000 0x00000083 0xa06204ae
|
||||
0x007dc010 0x00000000 0x00000000 0x00000000
|
||||
0x00000000 0x00000000 0x00000000 0x00000000 >;
|
||||
};
|
||||
|
||||
emc-table@380000 {
|
||||
reg = < 380000 >;
|
||||
compatible = "nvidia,tegra20-emc-table";
|
||||
clock-frequency = < 380000 >;
|
||||
nvidia,emc-registers = < 0x00000017 0x0000004b
|
||||
0x00000012 0x00000006 0x00000004 0x00000005
|
||||
0x00000003 0x0000000c 0x00000006 0x00000006
|
||||
0x00000003 0x00000001 0x00000004 0x00000005
|
||||
0x00000004 0x00000009 0x0000000d 0x00000b5f
|
||||
0x00000000 0x00000003 0x00000003 0x00000006
|
||||
0x00000006 0x00000001 0x00000011 0x000000c8
|
||||
0x00000003 0x0000000e 0x00000007 0x0000000f
|
||||
0x00000002 0x00000000 0x00000000 0x00000002
|
||||
0x00000000 0x00000000 0x00000083 0xe044048b
|
||||
0x007d8010 0x00000000 0x00000000 0x00000000
|
||||
0x00000000 0x00000000 0x00000000 0x00000000 >;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -6,11 +6,11 @@
|
||||
model = "Compulab TrimSlice board";
|
||||
compatible = "compulab,trimslice", "nvidia,tegra20";
|
||||
|
||||
memory@0 {
|
||||
reg = < 0x00000000 0x40000000 >;
|
||||
memory {
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
pinmux@70000000 {
|
||||
pinmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
@ -182,23 +182,23 @@
|
||||
nvidia,tristate = <1>;
|
||||
};
|
||||
conf_atb {
|
||||
nvidia,pins = "atb", "cdev1", "dap1", "gma",
|
||||
"gmc", "gmd", "gpu", "gpu7", "gpv",
|
||||
"sdio1", "slxa", "slxk", "uac";
|
||||
nvidia,pins = "atb", "cdev1", "cdev2", "dap1",
|
||||
"gma", "gmc", "gmd", "gpu", "gpu7",
|
||||
"gpv", "sdio1", "slxa", "slxk", "uac";
|
||||
nvidia,pull = <0>;
|
||||
nvidia,tristate = <0>;
|
||||
};
|
||||
conf_cdev2 {
|
||||
nvidia,pins = "cdev2", "csus", "spia", "spib",
|
||||
"spid", "spif";
|
||||
nvidia,pull = <1>;
|
||||
nvidia,tristate = <1>;
|
||||
};
|
||||
conf_ck32 {
|
||||
nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
|
||||
"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
|
||||
nvidia,pull = <0>;
|
||||
};
|
||||
conf_csus {
|
||||
nvidia,pins = "csus", "spia", "spib",
|
||||
"spid", "spif";
|
||||
nvidia,pull = <1>;
|
||||
nvidia,tristate = <1>;
|
||||
};
|
||||
conf_ddc {
|
||||
nvidia,pins = "ddc", "dtf", "rm", "sdc", "sdd";
|
||||
nvidia,pull = <2>;
|
||||
@ -240,68 +240,67 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2s@70002800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
status = "okay";
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
codec: codec@1a {
|
||||
compatible = "ti,tlv320aic23";
|
||||
reg = <0x1a>;
|
||||
};
|
||||
|
||||
rtc@56 {
|
||||
compatible = "emmicro,em3027";
|
||||
reg = <0x56>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
status = "disable";
|
||||
usb@c5000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2s@70002800 {
|
||||
status = "disable";
|
||||
usb@c5004000 {
|
||||
nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
|
||||
};
|
||||
|
||||
i2s@70002a00 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
das@70000c00 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
clock-frequency = < 216000000 >;
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
status = "disable";
|
||||
usb@c5008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
status = "disable";
|
||||
status = "okay";
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
cd-gpios = <&gpio 121 0>;
|
||||
wp-gpios = <&gpio 122 0>;
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 121 0>; /* gpio PP1 */
|
||||
wp-gpios = <&gpio 122 0>; /* gpio PP2 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "nvidia,tegra-audio-trimslice";
|
||||
nvidia,i2s-controller = <&tegra_i2s1>;
|
||||
nvidia,audio-codec = <&codec>;
|
||||
};
|
||||
};
|
||||
|
@ -7,10 +7,10 @@
|
||||
compatible = "nvidia,ventana", "nvidia,tegra20";
|
||||
|
||||
memory {
|
||||
reg = < 0x00000000 0x40000000 >;
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
pinmux@70000000 {
|
||||
pinmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&state_default>;
|
||||
|
||||
@ -240,38 +240,82 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2s@70002800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
status = "okay";
|
||||
clock-frequency = <216000000>;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
wm8903: wm8903@1a {
|
||||
compatible = "wlf,wm8903";
|
||||
reg = <0x1a>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = < 187 0x04 >;
|
||||
interrupts = <187 0x04>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
micdet-cfg = <0>;
|
||||
micdet-delay = <100>;
|
||||
gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >;
|
||||
gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
|
||||
};
|
||||
|
||||
/* ALS and proximity sensor */
|
||||
isl29018@44 {
|
||||
compatible = "isil,isl29018";
|
||||
reg = <0x44>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <202 0x04>; /*gpio PZ2 */
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
i2s@70002a00 {
|
||||
status = "disable";
|
||||
usb@c5000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
status = "okay";
|
||||
nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
status = "okay";
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
status = "okay";
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
sound {
|
||||
@ -294,45 +338,7 @@
|
||||
|
||||
nvidia,spkr-en-gpios = <&wm8903 2 0>;
|
||||
nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
|
||||
nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
|
||||
nvidia,int-mic-en-gpios = <&gpio 184 0>; /* gpio PX0 */
|
||||
nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
clock-frequency = < 216000000 >;
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
support-8bit;
|
||||
};
|
||||
};
|
||||
|
@ -4,17 +4,237 @@
|
||||
compatible = "nvidia,tegra20";
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
pmc@7000f400 {
|
||||
intc: interrupt-controller {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
reg = <0x50041000 0x1000
|
||||
0x50040100 0x0100>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
};
|
||||
|
||||
apbdma: dma {
|
||||
compatible = "nvidia,tegra20-apbdma";
|
||||
reg = <0x6000a000 0x1200>;
|
||||
interrupts = <0 104 0x04
|
||||
0 105 0x04
|
||||
0 106 0x04
|
||||
0 107 0x04
|
||||
0 108 0x04
|
||||
0 109 0x04
|
||||
0 110 0x04
|
||||
0 111 0x04
|
||||
0 112 0x04
|
||||
0 113 0x04
|
||||
0 114 0x04
|
||||
0 115 0x04
|
||||
0 116 0x04
|
||||
0 117 0x04
|
||||
0 118 0x04
|
||||
0 119 0x04>;
|
||||
};
|
||||
|
||||
ahb {
|
||||
compatible = "nvidia,tegra20-ahb";
|
||||
reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */
|
||||
};
|
||||
|
||||
gpio: gpio {
|
||||
compatible = "nvidia,tegra20-gpio";
|
||||
reg = <0x6000d000 0x1000>;
|
||||
interrupts = <0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
pinmux: pinmux {
|
||||
compatible = "nvidia,tegra20-pinmux";
|
||||
reg = <0x70000014 0x10 /* Tri-state registers */
|
||||
0x70000080 0x20 /* Mux registers */
|
||||
0x700000a0 0x14 /* Pull-up/down registers */
|
||||
0x70000868 0xa8>; /* Pad control registers */
|
||||
};
|
||||
|
||||
das {
|
||||
compatible = "nvidia,tegra20-das";
|
||||
reg = <0x70000c00 0x80>;
|
||||
};
|
||||
|
||||
tegra_i2s1: i2s@70002800 {
|
||||
compatible = "nvidia,tegra20-i2s";
|
||||
reg = <0x70002800 0x200>;
|
||||
interrupts = <0 13 0x04>;
|
||||
nvidia,dma-request-selector = <&apbdma 2>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
tegra_i2s2: i2s@70002a00 {
|
||||
compatible = "nvidia,tegra20-i2s";
|
||||
reg = <0x70002a00 0x200>;
|
||||
interrupts = <0 3 0x04>;
|
||||
nvidia,dma-request-selector = <&apbdma 1>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006000 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 36 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006040 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 37 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 46 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 90 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006400 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 91 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
compatible = "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c000 0x100>;
|
||||
interrupts = <0 38 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
compatible = "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c400 0x100>;
|
||||
interrupts = <0 84 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
compatible = "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c500 0x100>;
|
||||
interrupts = <0 92 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
compatible = "nvidia,tegra20-i2c-dvc";
|
||||
reg = <0x7000d000 0x200>;
|
||||
interrupts = <0 53 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
pmc {
|
||||
compatible = "nvidia,tegra20-pmc";
|
||||
reg = <0x7000e400 0x400>;
|
||||
};
|
||||
|
||||
intc: interrupt-controller@50041000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
reg = < 0x50041000 0x1000 >,
|
||||
< 0x50040100 0x0100 >;
|
||||
mc {
|
||||
compatible = "nvidia,tegra20-mc";
|
||||
reg = <0x7000f000 0x024
|
||||
0x7000f03c 0x3c4>;
|
||||
interrupts = <0 77 0x04>;
|
||||
};
|
||||
|
||||
gart {
|
||||
compatible = "nvidia,tegra20-gart";
|
||||
reg = <0x7000f024 0x00000018 /* controller registers */
|
||||
0x58000000 0x02000000>; /* GART aperture */
|
||||
};
|
||||
|
||||
emc {
|
||||
compatible = "nvidia,tegra20-emc";
|
||||
reg = <0x7000f400 0x200>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
compatible = "nvidia,tegra20-ehci", "usb-ehci";
|
||||
reg = <0xc5000000 0x4000>;
|
||||
interrupts = <0 20 0x04>;
|
||||
phy_type = "utmi";
|
||||
nvidia,has-legacy-mode;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
compatible = "nvidia,tegra20-ehci", "usb-ehci";
|
||||
reg = <0xc5004000 0x4000>;
|
||||
interrupts = <0 21 0x04>;
|
||||
phy_type = "ulpi";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
compatible = "nvidia,tegra20-ehci", "usb-ehci";
|
||||
reg = <0xc5008000 0x4000>;
|
||||
interrupts = <0 97 0x04>;
|
||||
phy_type = "utmi";
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000000 0x200>;
|
||||
interrupts = <0 14 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000200 0x200>;
|
||||
interrupts = <0 15 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000400 0x200>;
|
||||
interrupts = <0 19 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000600 0x200>;
|
||||
interrupts = <0 31 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
pmu {
|
||||
@ -22,189 +242,4 @@
|
||||
interrupts = <0 56 0x04
|
||||
0 57 0x04>;
|
||||
};
|
||||
|
||||
apbdma: dma@6000a000 {
|
||||
compatible = "nvidia,tegra20-apbdma";
|
||||
reg = <0x6000a000 0x1200>;
|
||||
interrupts = < 0 104 0x04
|
||||
0 105 0x04
|
||||
0 106 0x04
|
||||
0 107 0x04
|
||||
0 108 0x04
|
||||
0 109 0x04
|
||||
0 110 0x04
|
||||
0 111 0x04
|
||||
0 112 0x04
|
||||
0 113 0x04
|
||||
0 114 0x04
|
||||
0 115 0x04
|
||||
0 116 0x04
|
||||
0 117 0x04
|
||||
0 118 0x04
|
||||
0 119 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra20-i2c";
|
||||
reg = <0x7000C000 0x100>;
|
||||
interrupts = < 0 38 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra20-i2c";
|
||||
reg = <0x7000C400 0x100>;
|
||||
interrupts = < 0 84 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra20-i2c";
|
||||
reg = <0x7000C500 0x100>;
|
||||
interrupts = < 0 92 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra20-i2c-dvc";
|
||||
reg = <0x7000D000 0x200>;
|
||||
interrupts = < 0 53 0x04 >;
|
||||
};
|
||||
|
||||
tegra_i2s1: i2s@70002800 {
|
||||
compatible = "nvidia,tegra20-i2s";
|
||||
reg = <0x70002800 0x200>;
|
||||
interrupts = < 0 13 0x04 >;
|
||||
nvidia,dma-request-selector = < &apbdma 2 >;
|
||||
};
|
||||
|
||||
tegra_i2s2: i2s@70002a00 {
|
||||
compatible = "nvidia,tegra20-i2s";
|
||||
reg = <0x70002a00 0x200>;
|
||||
interrupts = < 0 3 0x04 >;
|
||||
nvidia,dma-request-selector = < &apbdma 1 >;
|
||||
};
|
||||
|
||||
das@70000c00 {
|
||||
compatible = "nvidia,tegra20-das";
|
||||
reg = <0x70000c00 0x80>;
|
||||
};
|
||||
|
||||
gpio: gpio@6000d000 {
|
||||
compatible = "nvidia,tegra20-gpio";
|
||||
reg = < 0x6000d000 0x1000 >;
|
||||
interrupts = < 0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04 >;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
pinmux: pinmux@70000000 {
|
||||
compatible = "nvidia,tegra20-pinmux";
|
||||
reg = < 0x70000014 0x10 /* Tri-state registers */
|
||||
0x70000080 0x20 /* Mux registers */
|
||||
0x700000a0 0x14 /* Pull-up/down registers */
|
||||
0x70000868 0xa8 >; /* Pad control registers */
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006000 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 36 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006040 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 37 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 46 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 90 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
compatible = "nvidia,tegra20-uart";
|
||||
reg = <0x70006400 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 91 0x04 >;
|
||||
};
|
||||
|
||||
emc@7000f400 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra20-emc";
|
||||
reg = <0x7000f400 0x200>;
|
||||
};
|
||||
|
||||
sdhci@c8000000 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000000 0x200>;
|
||||
interrupts = < 0 14 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000200 0x200>;
|
||||
interrupts = < 0 15 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000400 0x200>;
|
||||
interrupts = < 0 19 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
compatible = "nvidia,tegra20-sdhci";
|
||||
reg = <0xc8000600 0x200>;
|
||||
interrupts = < 0 31 0x04 >;
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
compatible = "nvidia,tegra20-ehci", "usb-ehci";
|
||||
reg = <0xc5000000 0x4000>;
|
||||
interrupts = < 0 20 0x04 >;
|
||||
phy_type = "utmi";
|
||||
nvidia,has-legacy-mode;
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
compatible = "nvidia,tegra20-ehci", "usb-ehci";
|
||||
reg = <0xc5004000 0x4000>;
|
||||
interrupts = < 0 21 0x04 >;
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
compatible = "nvidia,tegra20-ehci", "usb-ehci";
|
||||
reg = <0xc5008000 0x4000>;
|
||||
interrupts = < 0 97 0x04 >;
|
||||
phy_type = "utmi";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -4,17 +4,261 @@
|
||||
compatible = "nvidia,tegra30";
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
pmc@7000f400 {
|
||||
intc: interrupt-controller {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
reg = <0x50041000 0x1000
|
||||
0x50040100 0x0100>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
};
|
||||
|
||||
apbdma: dma {
|
||||
compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
|
||||
reg = <0x6000a000 0x1400>;
|
||||
interrupts = <0 104 0x04
|
||||
0 105 0x04
|
||||
0 106 0x04
|
||||
0 107 0x04
|
||||
0 108 0x04
|
||||
0 109 0x04
|
||||
0 110 0x04
|
||||
0 111 0x04
|
||||
0 112 0x04
|
||||
0 113 0x04
|
||||
0 114 0x04
|
||||
0 115 0x04
|
||||
0 116 0x04
|
||||
0 117 0x04
|
||||
0 118 0x04
|
||||
0 119 0x04
|
||||
0 128 0x04
|
||||
0 129 0x04
|
||||
0 130 0x04
|
||||
0 131 0x04
|
||||
0 132 0x04
|
||||
0 133 0x04
|
||||
0 134 0x04
|
||||
0 135 0x04
|
||||
0 136 0x04
|
||||
0 137 0x04
|
||||
0 138 0x04
|
||||
0 139 0x04
|
||||
0 140 0x04
|
||||
0 141 0x04
|
||||
0 142 0x04
|
||||
0 143 0x04>;
|
||||
};
|
||||
|
||||
ahb: ahb {
|
||||
compatible = "nvidia,tegra30-ahb";
|
||||
reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */
|
||||
};
|
||||
|
||||
gpio: gpio {
|
||||
compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio";
|
||||
reg = <0x6000d000 0x1000>;
|
||||
interrupts = <0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04
|
||||
0 125 0x04>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
pinmux: pinmux {
|
||||
compatible = "nvidia,tegra30-pinmux";
|
||||
reg = <0x70000868 0xd0 /* Pad control registers */
|
||||
0x70003000 0x3e0>; /* Mux registers */
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006000 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 36 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006040 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 37 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 46 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 90 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006400 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 91 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c000 0x100>;
|
||||
interrupts = <0 38 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c400 0x100>;
|
||||
interrupts = <0 84 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c500 0x100>;
|
||||
interrupts = <0 92 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000c700 {
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c700 0x100>;
|
||||
interrupts = <0 120 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000d000 0x100>;
|
||||
interrupts = <0 53 0x04>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
pmc {
|
||||
compatible = "nvidia,tegra20-pmc", "nvidia,tegra30-pmc";
|
||||
reg = <0x7000e400 0x400>;
|
||||
};
|
||||
|
||||
intc: interrupt-controller@50041000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
reg = < 0x50041000 0x1000 >,
|
||||
< 0x50040100 0x0100 >;
|
||||
mc {
|
||||
compatible = "nvidia,tegra30-mc";
|
||||
reg = <0x7000f000 0x010
|
||||
0x7000f03c 0x1b4
|
||||
0x7000f200 0x028
|
||||
0x7000f284 0x17c>;
|
||||
interrupts = <0 77 0x04>;
|
||||
};
|
||||
|
||||
smmu {
|
||||
compatible = "nvidia,tegra30-smmu";
|
||||
reg = <0x7000f010 0x02c
|
||||
0x7000f1f0 0x010
|
||||
0x7000f228 0x05c>;
|
||||
nvidia,#asids = <4>; /* # of ASIDs */
|
||||
dma-window = <0 0x40000000>; /* IOVA start & length */
|
||||
nvidia,ahb = <&ahb>;
|
||||
};
|
||||
|
||||
ahub {
|
||||
compatible = "nvidia,tegra30-ahub";
|
||||
reg = <0x70080000 0x200
|
||||
0x70080200 0x100>;
|
||||
interrupts = <0 103 0x04>;
|
||||
nvidia,dma-request-selector = <&apbdma 1>;
|
||||
|
||||
ranges;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
tegra_i2s0: i2s@70080300 {
|
||||
compatible = "nvidia,tegra30-i2s";
|
||||
reg = <0x70080300 0x100>;
|
||||
nvidia,ahub-cif-ids = <4 4>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
tegra_i2s1: i2s@70080400 {
|
||||
compatible = "nvidia,tegra30-i2s";
|
||||
reg = <0x70080400 0x100>;
|
||||
nvidia,ahub-cif-ids = <5 5>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
tegra_i2s2: i2s@70080500 {
|
||||
compatible = "nvidia,tegra30-i2s";
|
||||
reg = <0x70080500 0x100>;
|
||||
nvidia,ahub-cif-ids = <6 6>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
tegra_i2s3: i2s@70080600 {
|
||||
compatible = "nvidia,tegra30-i2s";
|
||||
reg = <0x70080600 0x100>;
|
||||
nvidia,ahub-cif-ids = <7 7>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
tegra_i2s4: i2s@70080700 {
|
||||
compatible = "nvidia,tegra30-i2s";
|
||||
reg = <0x70080700 0x100>;
|
||||
nvidia,ahub-cif-ids = <8 8>;
|
||||
status = "disable";
|
||||
};
|
||||
};
|
||||
|
||||
sdhci@78000000 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000000 0x200>;
|
||||
interrupts = <0 14 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@78000200 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000200 0x200>;
|
||||
interrupts = <0 15 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@78000400 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000400 0x200>;
|
||||
interrupts = <0 19 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
sdhci@78000600 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000600 0x200>;
|
||||
interrupts = <0 31 0x04>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
pmu {
|
||||
@ -24,163 +268,4 @@
|
||||
0 146 0x04
|
||||
0 147 0x04>;
|
||||
};
|
||||
|
||||
apbdma: dma@6000a000 {
|
||||
compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
|
||||
reg = <0x6000a000 0x1400>;
|
||||
interrupts = < 0 104 0x04
|
||||
0 105 0x04
|
||||
0 106 0x04
|
||||
0 107 0x04
|
||||
0 108 0x04
|
||||
0 109 0x04
|
||||
0 110 0x04
|
||||
0 111 0x04
|
||||
0 112 0x04
|
||||
0 113 0x04
|
||||
0 114 0x04
|
||||
0 115 0x04
|
||||
0 116 0x04
|
||||
0 117 0x04
|
||||
0 118 0x04
|
||||
0 119 0x04
|
||||
0 128 0x04
|
||||
0 129 0x04
|
||||
0 130 0x04
|
||||
0 131 0x04
|
||||
0 132 0x04
|
||||
0 133 0x04
|
||||
0 134 0x04
|
||||
0 135 0x04
|
||||
0 136 0x04
|
||||
0 137 0x04
|
||||
0 138 0x04
|
||||
0 139 0x04
|
||||
0 140 0x04
|
||||
0 141 0x04
|
||||
0 142 0x04
|
||||
0 143 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000C000 0x100>;
|
||||
interrupts = < 0 38 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c400 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000C400 0x100>;
|
||||
interrupts = < 0 84 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c500 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000C500 0x100>;
|
||||
interrupts = < 0 92 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000c700 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000c700 0x100>;
|
||||
interrupts = < 0 120 0x04 >;
|
||||
};
|
||||
|
||||
i2c@7000d000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
|
||||
reg = <0x7000D000 0x100>;
|
||||
interrupts = < 0 53 0x04 >;
|
||||
};
|
||||
|
||||
gpio: gpio@6000d000 {
|
||||
compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio";
|
||||
reg = < 0x6000d000 0x1000 >;
|
||||
interrupts = < 0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04
|
||||
0 125 0x04 >;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
serial@70006000 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006000 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 36 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006040 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006040 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 37 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006200 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 46 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006300 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 90 0x04 >;
|
||||
};
|
||||
|
||||
serial@70006400 {
|
||||
compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x70006400 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = < 0 91 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@78000000 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000000 0x200>;
|
||||
interrupts = < 0 14 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@78000200 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000200 0x200>;
|
||||
interrupts = < 0 15 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@78000400 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000400 0x200>;
|
||||
interrupts = < 0 19 0x04 >;
|
||||
};
|
||||
|
||||
sdhci@78000600 {
|
||||
compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
|
||||
reg = <0x78000600 0x200>;
|
||||
interrupts = < 0 31 0x04 >;
|
||||
};
|
||||
|
||||
pinmux: pinmux@70000000 {
|
||||
compatible = "nvidia,tegra30-pinmux";
|
||||
reg = < 0x70000868 0xd0 /* Pad control registers */
|
||||
0x70003000 0x3e0 >; /* Mux registers */
|
||||
};
|
||||
};
|
||||
|
@ -173,7 +173,8 @@ find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_
|
||||
read_lock_irqsave(&device_info->lock, flags);
|
||||
|
||||
list_for_each_entry(b, &device_info->safe_buffers, node)
|
||||
if (b->safe_dma_addr == safe_dma_addr) {
|
||||
if (b->safe_dma_addr <= safe_dma_addr &&
|
||||
b->safe_dma_addr + b->size > safe_dma_addr) {
|
||||
rb = b;
|
||||
break;
|
||||
}
|
||||
@ -254,7 +255,7 @@ static inline dma_addr_t map_single(struct device *dev, void *ptr, size_t size,
|
||||
if (buf == NULL) {
|
||||
dev_err(dev, "%s: unable to map unsafe buffer %p!\n",
|
||||
__func__, ptr);
|
||||
return ~0;
|
||||
return DMA_ERROR_CODE;
|
||||
}
|
||||
|
||||
dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
|
||||
@ -307,8 +308,9 @@ static inline void unmap_single(struct device *dev, struct safe_buffer *buf,
|
||||
* substitute the safe buffer for the unsafe one.
|
||||
* (basically move the buffer from an unsafe area to a safe one)
|
||||
*/
|
||||
dma_addr_t __dma_map_page(struct device *dev, struct page *page,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||
static dma_addr_t dmabounce_map_page(struct device *dev, struct page *page,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir,
|
||||
struct dma_attrs *attrs)
|
||||
{
|
||||
dma_addr_t dma_addr;
|
||||
int ret;
|
||||
@ -320,21 +322,20 @@ dma_addr_t __dma_map_page(struct device *dev, struct page *page,
|
||||
|
||||
ret = needs_bounce(dev, dma_addr, size);
|
||||
if (ret < 0)
|
||||
return ~0;
|
||||
return DMA_ERROR_CODE;
|
||||
|
||||
if (ret == 0) {
|
||||
__dma_page_cpu_to_dev(page, offset, size, dir);
|
||||
arm_dma_ops.sync_single_for_device(dev, dma_addr, size, dir);
|
||||
return dma_addr;
|
||||
}
|
||||
|
||||
if (PageHighMem(page)) {
|
||||
dev_err(dev, "DMA buffer bouncing of HIGHMEM pages is not supported\n");
|
||||
return ~0;
|
||||
return DMA_ERROR_CODE;
|
||||
}
|
||||
|
||||
return map_single(dev, page_address(page) + offset, size, dir);
|
||||
}
|
||||
EXPORT_SYMBOL(__dma_map_page);
|
||||
|
||||
/*
|
||||
* see if a mapped address was really a "safe" buffer and if so, copy
|
||||
@ -342,8 +343,8 @@ EXPORT_SYMBOL(__dma_map_page);
|
||||
* the safe buffer. (basically return things back to the way they
|
||||
* should be)
|
||||
*/
|
||||
void __dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
static void dmabounce_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
|
||||
enum dma_data_direction dir, struct dma_attrs *attrs)
|
||||
{
|
||||
struct safe_buffer *buf;
|
||||
|
||||
@ -352,19 +353,18 @@ void __dma_unmap_page(struct device *dev, dma_addr_t dma_addr, size_t size,
|
||||
|
||||
buf = find_safe_buffer_dev(dev, dma_addr, __func__);
|
||||
if (!buf) {
|
||||
__dma_page_dev_to_cpu(pfn_to_page(dma_to_pfn(dev, dma_addr)),
|
||||
dma_addr & ~PAGE_MASK, size, dir);
|
||||
arm_dma_ops.sync_single_for_cpu(dev, dma_addr, size, dir);
|
||||
return;
|
||||
}
|
||||
|
||||
unmap_single(dev, buf, size, dir);
|
||||
}
|
||||
EXPORT_SYMBOL(__dma_unmap_page);
|
||||
|
||||
int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
|
||||
unsigned long off, size_t sz, enum dma_data_direction dir)
|
||||
static int __dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
|
||||
size_t sz, enum dma_data_direction dir)
|
||||
{
|
||||
struct safe_buffer *buf;
|
||||
unsigned long off;
|
||||
|
||||
dev_dbg(dev, "%s(dma=%#x,off=%#lx,sz=%zx,dir=%x)\n",
|
||||
__func__, addr, off, sz, dir);
|
||||
@ -373,6 +373,8 @@ int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
|
||||
if (!buf)
|
||||
return 1;
|
||||
|
||||
off = addr - buf->safe_dma_addr;
|
||||
|
||||
BUG_ON(buf->direction != dir);
|
||||
|
||||
dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
|
||||
@ -388,12 +390,21 @@ int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(dmabounce_sync_for_cpu);
|
||||
|
||||
int dmabounce_sync_for_device(struct device *dev, dma_addr_t addr,
|
||||
unsigned long off, size_t sz, enum dma_data_direction dir)
|
||||
static void dmabounce_sync_for_cpu(struct device *dev,
|
||||
dma_addr_t handle, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
if (!__dmabounce_sync_for_cpu(dev, handle, size, dir))
|
||||
return;
|
||||
|
||||
arm_dma_ops.sync_single_for_cpu(dev, handle, size, dir);
|
||||
}
|
||||
|
||||
static int __dmabounce_sync_for_device(struct device *dev, dma_addr_t addr,
|
||||
size_t sz, enum dma_data_direction dir)
|
||||
{
|
||||
struct safe_buffer *buf;
|
||||
unsigned long off;
|
||||
|
||||
dev_dbg(dev, "%s(dma=%#x,off=%#lx,sz=%zx,dir=%x)\n",
|
||||
__func__, addr, off, sz, dir);
|
||||
@ -402,6 +413,8 @@ int dmabounce_sync_for_device(struct device *dev, dma_addr_t addr,
|
||||
if (!buf)
|
||||
return 1;
|
||||
|
||||
off = addr - buf->safe_dma_addr;
|
||||
|
||||
BUG_ON(buf->direction != dir);
|
||||
|
||||
dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
|
||||
@ -417,7 +430,38 @@ int dmabounce_sync_for_device(struct device *dev, dma_addr_t addr,
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(dmabounce_sync_for_device);
|
||||
|
||||
static void dmabounce_sync_for_device(struct device *dev,
|
||||
dma_addr_t handle, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
if (!__dmabounce_sync_for_device(dev, handle, size, dir))
|
||||
return;
|
||||
|
||||
arm_dma_ops.sync_single_for_device(dev, handle, size, dir);
|
||||
}
|
||||
|
||||
static int dmabounce_set_mask(struct device *dev, u64 dma_mask)
|
||||
{
|
||||
if (dev->archdata.dmabounce)
|
||||
return 0;
|
||||
|
||||
return arm_dma_ops.set_dma_mask(dev, dma_mask);
|
||||
}
|
||||
|
||||
static struct dma_map_ops dmabounce_ops = {
|
||||
.alloc = arm_dma_alloc,
|
||||
.free = arm_dma_free,
|
||||
.mmap = arm_dma_mmap,
|
||||
.map_page = dmabounce_map_page,
|
||||
.unmap_page = dmabounce_unmap_page,
|
||||
.sync_single_for_cpu = dmabounce_sync_for_cpu,
|
||||
.sync_single_for_device = dmabounce_sync_for_device,
|
||||
.map_sg = arm_dma_map_sg,
|
||||
.unmap_sg = arm_dma_unmap_sg,
|
||||
.sync_sg_for_cpu = arm_dma_sync_sg_for_cpu,
|
||||
.sync_sg_for_device = arm_dma_sync_sg_for_device,
|
||||
.set_dma_mask = dmabounce_set_mask,
|
||||
};
|
||||
|
||||
static int dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev,
|
||||
const char *name, unsigned long size)
|
||||
@ -479,6 +523,7 @@ int dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size,
|
||||
#endif
|
||||
|
||||
dev->archdata.dmabounce = device_info;
|
||||
set_dma_ops(dev, &dmabounce_ops);
|
||||
|
||||
dev_info(dev, "dmabounce: registered device\n");
|
||||
|
||||
@ -497,6 +542,7 @@ void dmabounce_unregister_dev(struct device *dev)
|
||||
struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
|
||||
|
||||
dev->archdata.dmabounce = NULL;
|
||||
set_dma_ops(dev, NULL);
|
||||
|
||||
if (!device_info) {
|
||||
dev_warn(dev,
|
||||
|
@ -33,6 +33,7 @@ CONFIG_MACH_IMX27LITE=y
|
||||
CONFIG_MACH_PCA100=y
|
||||
CONFIG_MACH_MXT_TD60=y
|
||||
CONFIG_MACH_IMX27IPCAM=y
|
||||
CONFIG_MACH_IMX27_DT=y
|
||||
CONFIG_MXC_IRQ_PRIOR=y
|
||||
CONFIG_MXC_PWM=y
|
||||
CONFIG_NO_HZ=y
|
||||
|
@ -64,6 +64,12 @@ CONFIG_IPV6=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_DATAFLASH=y
|
||||
CONFIG_MTD_M25P80=y
|
||||
CONFIG_MTD_SST25L=y
|
||||
# CONFIG_STANDALONE is not set
|
||||
CONFIG_CONNECTOR=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
|
@ -22,6 +22,7 @@ CONFIG_BLK_DEV_INTEGRITY=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_ARCH_MXS=y
|
||||
CONFIG_MACH_MXS_DT=y
|
||||
CONFIG_MACH_MX23EVK=y
|
||||
CONFIG_MACH_MX28EVK=y
|
||||
CONFIG_MACH_STMP378X_DEVB=y
|
||||
|
69
arch/arm/configs/prima2_defconfig
Normal file
69
arch/arm/configs/prima2_defconfig
Normal file
@ -0,0 +1,69 @@
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_BSD_DISKLABEL=y
|
||||
CONFIG_SOLARIS_X86_PARTITION=y
|
||||
CONFIG_ARCH_PRIMA2=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_PM_RUNTIME=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_SERIAL_SIRFSOC=y
|
||||
CONFIG_SERIAL_SIRFSOC_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_SIRF=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_SIRF=y
|
||||
CONFIG_SPI_SPIDEV=y
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_FILE_STORAGE=m
|
||||
CONFIG_USB_MASS_STORAGE=m
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DMADEVICES_DEBUG=y
|
||||
CONFIG_DMADEVICES_VDEBUG=y
|
||||
CONFIG_SIRF_DMA=y
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_ROMFS_FS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_SECTION_MISMATCH=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_DEBUG_RT_MUTEXES=y
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_DEBUG_MUTEXES=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_CRC_CCITT=y
|
95
arch/arm/configs/spear13xx_defconfig
Normal file
95
arch/arm/configs/spear13xx_defconfig
Normal file
@ -0,0 +1,95 @@
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_PLAT_SPEAR=y
|
||||
CONFIG_ARCH_SPEAR13XX=y
|
||||
CONFIG_MACH_SPEAR1310=y
|
||||
CONFIG_MACH_SPEAR1340=y
|
||||
# CONFIG_SWP_EMULATE is not set
|
||||
CONFIG_SMP=y
|
||||
# CONFIG_SMP_ON_UP is not set
|
||||
# CONFIG_ARM_CPU_TOPOLOGY is not set
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_NAND_FSMC=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
CONFIG_ATA=y
|
||||
# CONFIG_SATA_PMP is not set
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
CONFIG_PATA_ARASAN_CF=y
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||
# CONFIG_NET_VENDOR_CIRRUS is not set
|
||||
# CONFIG_NET_VENDOR_FARADAY is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MICREL is not set
|
||||
# CONFIG_NET_VENDOR_NATSEMI is not set
|
||||
# CONFIG_NET_VENDOR_SEEQ is not set
|
||||
# CONFIG_NET_VENDOR_SMSC is not set
|
||||
CONFIG_STMMAC_ETH=y
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_INPUT_FF_MEMLESS=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
CONFIG_KEYBOARD_SPEAR=y
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_RAW_DRIVER=y
|
||||
CONFIG_MAX_RAW_DEVS=8192
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_PL022=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_MPCORE_WATCHDOG=y
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEVICE_CLASS is not set
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_SPEAR=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DW_DMAC=y
|
||||
CONFIG_DMATEST=m
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_SECURITY=y
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_EXT3_FS_SECURITY=y
|
||||
CONFIG_AUTOFS4_FS=m
|
||||
CONFIG_MSDOS_FS=m
|
||||
CONFIG_VFAT_FS=m
|
||||
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_NLS_DEFAULT="utf8"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=m
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_DEBUG_INFO=y
|
@ -14,6 +14,9 @@ CONFIG_BINFMT_MISC=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_NAND_FSMC=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
@ -73,6 +76,7 @@ CONFIG_MSDOS_FS=m
|
||||
CONFIG_VFAT_FS=m
|
||||
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_NLS_DEFAULT="utf8"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=m
|
||||
|
@ -8,11 +8,13 @@ CONFIG_MODVERSIONS=y
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_PLAT_SPEAR=y
|
||||
CONFIG_ARCH_SPEAR6XX=y
|
||||
CONFIG_BOARD_SPEAR600_DT=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_NAND_FSMC=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
@ -64,6 +66,7 @@ CONFIG_MSDOS_FS=m
|
||||
CONFIG_VFAT_FS=m
|
||||
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_NLS_DEFAULT="utf8"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=m
|
||||
|
@ -45,6 +45,7 @@ CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_PM_RUNTIME=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
@ -91,6 +92,8 @@ CONFIG_USB_NET_SMSC75XX=y
|
||||
CONFIG_USB_NET_SMSC95XX=y
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_MPU3050=y
|
||||
# CONFIG_VT is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_DEVKMEM is not set
|
||||
@ -103,12 +106,15 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_TEGRA=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_TEGRA=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_BATTERY_SBS=y
|
||||
CONFIG_SENSORS_LM90=y
|
||||
CONFIG_MFD_TPS6586X=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_TPS62360=y
|
||||
CONFIG_REGULATOR_TPS6586X=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
@ -133,16 +139,19 @@ CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_EM3027=y
|
||||
CONFIG_RTC_DRV_TEGRA=y
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_SENSORS_ISL29018=y
|
||||
CONFIG_SENSORS_ISL29028=y
|
||||
CONFIG_SENSORS_AK8975=y
|
||||
CONFIG_MFD_NVEC=y
|
||||
CONFIG_KEYBOARD_NVEC=y
|
||||
CONFIG_SERIO_NVEC_PS2=y
|
||||
CONFIG_TEGRA_IOMMU_GART=y
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||
|
@ -7,12 +7,16 @@
|
||||
#define ASMARM_DEVICE_H
|
||||
|
||||
struct dev_archdata {
|
||||
struct dma_map_ops *dma_ops;
|
||||
#ifdef CONFIG_DMABOUNCE
|
||||
struct dmabounce_device_info *dmabounce;
|
||||
#endif
|
||||
#ifdef CONFIG_IOMMU_API
|
||||
void *iommu; /* private IOMMU data */
|
||||
#endif
|
||||
#ifdef CONFIG_ARM_DMA_USE_IOMMU
|
||||
struct dma_iommu_mapping *mapping;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct omap_device;
|
||||
|
15
arch/arm/include/asm/dma-contiguous.h
Normal file
15
arch/arm/include/asm/dma-contiguous.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef ASMARM_DMA_CONTIGUOUS_H
|
||||
#define ASMARM_DMA_CONTIGUOUS_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifdef CONFIG_CMA
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm-generic/dma-contiguous.h>
|
||||
|
||||
void dma_contiguous_early_fixup(phys_addr_t base, unsigned long size);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
34
arch/arm/include/asm/dma-iommu.h
Normal file
34
arch/arm/include/asm/dma-iommu.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef ASMARM_DMA_IOMMU_H
|
||||
#define ASMARM_DMA_IOMMU_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/mm_types.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/dma-debug.h>
|
||||
#include <linux/kmemcheck.h>
|
||||
|
||||
struct dma_iommu_mapping {
|
||||
/* iommu specific data */
|
||||
struct iommu_domain *domain;
|
||||
|
||||
void *bitmap;
|
||||
size_t bits;
|
||||
unsigned int order;
|
||||
dma_addr_t base;
|
||||
|
||||
spinlock_t lock;
|
||||
struct kref kref;
|
||||
};
|
||||
|
||||
struct dma_iommu_mapping *
|
||||
arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size,
|
||||
int order);
|
||||
|
||||
void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping);
|
||||
|
||||
int arm_iommu_attach_device(struct device *dev,
|
||||
struct dma_iommu_mapping *mapping);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif
|
@ -5,11 +5,35 @@
|
||||
|
||||
#include <linux/mm_types.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/dma-attrs.h>
|
||||
#include <linux/dma-debug.h>
|
||||
|
||||
#include <asm-generic/dma-coherent.h>
|
||||
#include <asm/memory.h>
|
||||
|
||||
#define DMA_ERROR_CODE (~0)
|
||||
extern struct dma_map_ops arm_dma_ops;
|
||||
|
||||
static inline struct dma_map_ops *get_dma_ops(struct device *dev)
|
||||
{
|
||||
if (dev && dev->archdata.dma_ops)
|
||||
return dev->archdata.dma_ops;
|
||||
return &arm_dma_ops;
|
||||
}
|
||||
|
||||
static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops)
|
||||
{
|
||||
BUG_ON(!dev);
|
||||
dev->archdata.dma_ops = ops;
|
||||
}
|
||||
|
||||
#include <asm-generic/dma-mapping-common.h>
|
||||
|
||||
static inline int dma_set_mask(struct device *dev, u64 mask)
|
||||
{
|
||||
return get_dma_ops(dev)->set_dma_mask(dev, mask);
|
||||
}
|
||||
|
||||
#ifdef __arch_page_to_dma
|
||||
#error Please update to __arch_pfn_to_dma
|
||||
#endif
|
||||
@ -61,69 +85,12 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The DMA API is built upon the notion of "buffer ownership". A buffer
|
||||
* is either exclusively owned by the CPU (and therefore may be accessed
|
||||
* by it) or exclusively owned by the DMA device. These helper functions
|
||||
* represent the transitions between these two ownership states.
|
||||
*
|
||||
* Note, however, that on later ARMs, this notion does not work due to
|
||||
* speculative prefetches. We model our approach on the assumption that
|
||||
* the CPU does do speculative prefetches, which means we clean caches
|
||||
* before transfers and delay cache invalidation until transfer completion.
|
||||
*
|
||||
* Private support functions: these are not part of the API and are
|
||||
* liable to change. Drivers must not use these.
|
||||
*/
|
||||
static inline void __dma_single_cpu_to_dev(const void *kaddr, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
extern void ___dma_single_cpu_to_dev(const void *, size_t,
|
||||
enum dma_data_direction);
|
||||
|
||||
if (!arch_is_coherent())
|
||||
___dma_single_cpu_to_dev(kaddr, size, dir);
|
||||
}
|
||||
|
||||
static inline void __dma_single_dev_to_cpu(const void *kaddr, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
extern void ___dma_single_dev_to_cpu(const void *, size_t,
|
||||
enum dma_data_direction);
|
||||
|
||||
if (!arch_is_coherent())
|
||||
___dma_single_dev_to_cpu(kaddr, size, dir);
|
||||
}
|
||||
|
||||
static inline void __dma_page_cpu_to_dev(struct page *page, unsigned long off,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
extern void ___dma_page_cpu_to_dev(struct page *, unsigned long,
|
||||
size_t, enum dma_data_direction);
|
||||
|
||||
if (!arch_is_coherent())
|
||||
___dma_page_cpu_to_dev(page, off, size, dir);
|
||||
}
|
||||
|
||||
static inline void __dma_page_dev_to_cpu(struct page *page, unsigned long off,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
extern void ___dma_page_dev_to_cpu(struct page *, unsigned long,
|
||||
size_t, enum dma_data_direction);
|
||||
|
||||
if (!arch_is_coherent())
|
||||
___dma_page_dev_to_cpu(page, off, size, dir);
|
||||
}
|
||||
|
||||
extern int dma_supported(struct device *, u64);
|
||||
extern int dma_set_mask(struct device *, u64);
|
||||
|
||||
/*
|
||||
* DMA errors are defined by all-bits-set in the DMA address.
|
||||
*/
|
||||
static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
|
||||
{
|
||||
return dma_addr == ~0;
|
||||
return dma_addr == DMA_ERROR_CODE;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -141,69 +108,118 @@ static inline void dma_free_noncoherent(struct device *dev, size_t size,
|
||||
{
|
||||
}
|
||||
|
||||
extern int dma_supported(struct device *dev, u64 mask);
|
||||
|
||||
/**
|
||||
* dma_alloc_coherent - allocate consistent memory for DMA
|
||||
* arm_dma_alloc - allocate consistent memory for DMA
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @size: required memory size
|
||||
* @handle: bus-specific DMA address
|
||||
* @attrs: optinal attributes that specific mapping properties
|
||||
*
|
||||
* Allocate some uncached, unbuffered memory for a device for
|
||||
* performing DMA. This function allocates pages, and will
|
||||
* return the CPU-viewed address, and sets @handle to be the
|
||||
* device-viewed address.
|
||||
* Allocate some memory for a device for performing DMA. This function
|
||||
* allocates pages, and will return the CPU-viewed address, and sets @handle
|
||||
* to be the device-viewed address.
|
||||
*/
|
||||
extern void *dma_alloc_coherent(struct device *, size_t, dma_addr_t *, gfp_t);
|
||||
extern void *arm_dma_alloc(struct device *dev, size_t size, dma_addr_t *handle,
|
||||
gfp_t gfp, struct dma_attrs *attrs);
|
||||
|
||||
#define dma_alloc_coherent(d, s, h, f) dma_alloc_attrs(d, s, h, f, NULL)
|
||||
|
||||
static inline void *dma_alloc_attrs(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, gfp_t flag,
|
||||
struct dma_attrs *attrs)
|
||||
{
|
||||
struct dma_map_ops *ops = get_dma_ops(dev);
|
||||
void *cpu_addr;
|
||||
BUG_ON(!ops);
|
||||
|
||||
cpu_addr = ops->alloc(dev, size, dma_handle, flag, attrs);
|
||||
debug_dma_alloc_coherent(dev, size, *dma_handle, cpu_addr);
|
||||
return cpu_addr;
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_free_coherent - free memory allocated by dma_alloc_coherent
|
||||
* arm_dma_free - free memory allocated by arm_dma_alloc
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @size: size of memory originally requested in dma_alloc_coherent
|
||||
* @cpu_addr: CPU-view address returned from dma_alloc_coherent
|
||||
* @handle: device-view address returned from dma_alloc_coherent
|
||||
* @attrs: optinal attributes that specific mapping properties
|
||||
*
|
||||
* Free (and unmap) a DMA buffer previously allocated by
|
||||
* dma_alloc_coherent().
|
||||
* arm_dma_alloc().
|
||||
*
|
||||
* References to memory and mappings associated with cpu_addr/handle
|
||||
* during and after this call executing are illegal.
|
||||
*/
|
||||
extern void dma_free_coherent(struct device *, size_t, void *, dma_addr_t);
|
||||
extern void arm_dma_free(struct device *dev, size_t size, void *cpu_addr,
|
||||
dma_addr_t handle, struct dma_attrs *attrs);
|
||||
|
||||
#define dma_free_coherent(d, s, c, h) dma_free_attrs(d, s, c, h, NULL)
|
||||
|
||||
static inline void dma_free_attrs(struct device *dev, size_t size,
|
||||
void *cpu_addr, dma_addr_t dma_handle,
|
||||
struct dma_attrs *attrs)
|
||||
{
|
||||
struct dma_map_ops *ops = get_dma_ops(dev);
|
||||
BUG_ON(!ops);
|
||||
|
||||
debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
|
||||
ops->free(dev, size, cpu_addr, dma_handle, attrs);
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_mmap_coherent - map a coherent DMA allocation into user space
|
||||
* arm_dma_mmap - map a coherent DMA allocation into user space
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @vma: vm_area_struct describing requested user mapping
|
||||
* @cpu_addr: kernel CPU-view address returned from dma_alloc_coherent
|
||||
* @handle: device-view address returned from dma_alloc_coherent
|
||||
* @size: size of memory originally requested in dma_alloc_coherent
|
||||
* @attrs: optinal attributes that specific mapping properties
|
||||
*
|
||||
* Map a coherent DMA buffer previously allocated by dma_alloc_coherent
|
||||
* into user space. The coherent DMA buffer must not be freed by the
|
||||
* driver until the user space mapping has been released.
|
||||
*/
|
||||
int dma_mmap_coherent(struct device *, struct vm_area_struct *,
|
||||
void *, dma_addr_t, size_t);
|
||||
extern int arm_dma_mmap(struct device *dev, struct vm_area_struct *vma,
|
||||
void *cpu_addr, dma_addr_t dma_addr, size_t size,
|
||||
struct dma_attrs *attrs);
|
||||
|
||||
#define dma_mmap_coherent(d, v, c, h, s) dma_mmap_attrs(d, v, c, h, s, NULL)
|
||||
|
||||
/**
|
||||
* dma_alloc_writecombine - allocate writecombining memory for DMA
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @size: required memory size
|
||||
* @handle: bus-specific DMA address
|
||||
*
|
||||
* Allocate some uncached, buffered memory for a device for
|
||||
* performing DMA. This function allocates pages, and will
|
||||
* return the CPU-viewed address, and sets @handle to be the
|
||||
* device-viewed address.
|
||||
*/
|
||||
extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *,
|
||||
gfp_t);
|
||||
static inline int dma_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
|
||||
void *cpu_addr, dma_addr_t dma_addr,
|
||||
size_t size, struct dma_attrs *attrs)
|
||||
{
|
||||
struct dma_map_ops *ops = get_dma_ops(dev);
|
||||
BUG_ON(!ops);
|
||||
return ops->mmap(dev, vma, cpu_addr, dma_addr, size, attrs);
|
||||
}
|
||||
|
||||
#define dma_free_writecombine(dev,size,cpu_addr,handle) \
|
||||
dma_free_coherent(dev,size,cpu_addr,handle)
|
||||
static inline void *dma_alloc_writecombine(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
DEFINE_DMA_ATTRS(attrs);
|
||||
dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
|
||||
return dma_alloc_attrs(dev, size, dma_handle, flag, &attrs);
|
||||
}
|
||||
|
||||
int dma_mmap_writecombine(struct device *, struct vm_area_struct *,
|
||||
void *, dma_addr_t, size_t);
|
||||
static inline void dma_free_writecombine(struct device *dev, size_t size,
|
||||
void *cpu_addr, dma_addr_t dma_handle)
|
||||
{
|
||||
DEFINE_DMA_ATTRS(attrs);
|
||||
dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
|
||||
return dma_free_attrs(dev, size, cpu_addr, dma_handle, &attrs);
|
||||
}
|
||||
|
||||
static inline int dma_mmap_writecombine(struct device *dev, struct vm_area_struct *vma,
|
||||
void *cpu_addr, dma_addr_t dma_addr, size_t size)
|
||||
{
|
||||
DEFINE_DMA_ATTRS(attrs);
|
||||
dma_set_attr(DMA_ATTR_WRITE_COMBINE, &attrs);
|
||||
return dma_mmap_attrs(dev, vma, cpu_addr, dma_addr, size, &attrs);
|
||||
}
|
||||
|
||||
/*
|
||||
* This can be called during boot to increase the size of the consistent
|
||||
@ -212,8 +228,6 @@ int dma_mmap_writecombine(struct device *, struct vm_area_struct *,
|
||||
*/
|
||||
extern void __init init_consistent_dma_size(unsigned long size);
|
||||
|
||||
|
||||
#ifdef CONFIG_DMABOUNCE
|
||||
/*
|
||||
* For SA-1111, IXP425, and ADI systems the dma-mapping functions are "magic"
|
||||
* and utilize bounce buffers as needed to work around limited DMA windows.
|
||||
@ -253,222 +267,19 @@ extern int dmabounce_register_dev(struct device *, unsigned long,
|
||||
*/
|
||||
extern void dmabounce_unregister_dev(struct device *);
|
||||
|
||||
/*
|
||||
* The DMA API, implemented by dmabounce.c. See below for descriptions.
|
||||
*/
|
||||
extern dma_addr_t __dma_map_page(struct device *, struct page *,
|
||||
unsigned long, size_t, enum dma_data_direction);
|
||||
extern void __dma_unmap_page(struct device *, dma_addr_t, size_t,
|
||||
enum dma_data_direction);
|
||||
|
||||
/*
|
||||
* Private functions
|
||||
*/
|
||||
int dmabounce_sync_for_cpu(struct device *, dma_addr_t, unsigned long,
|
||||
size_t, enum dma_data_direction);
|
||||
int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long,
|
||||
size_t, enum dma_data_direction);
|
||||
#else
|
||||
static inline int dmabounce_sync_for_cpu(struct device *d, dma_addr_t addr,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline int dmabounce_sync_for_device(struct device *d, dma_addr_t addr,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static inline dma_addr_t __dma_map_page(struct device *dev, struct page *page,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
__dma_page_cpu_to_dev(page, offset, size, dir);
|
||||
return pfn_to_dma(dev, page_to_pfn(page)) + offset;
|
||||
}
|
||||
|
||||
static inline void __dma_unmap_page(struct device *dev, dma_addr_t handle,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
__dma_page_dev_to_cpu(pfn_to_page(dma_to_pfn(dev, handle)),
|
||||
handle & ~PAGE_MASK, size, dir);
|
||||
}
|
||||
#endif /* CONFIG_DMABOUNCE */
|
||||
|
||||
/**
|
||||
* dma_map_single - map a single buffer for streaming DMA
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @cpu_addr: CPU direct mapped address of buffer
|
||||
* @size: size of buffer to map
|
||||
* @dir: DMA transfer direction
|
||||
*
|
||||
* Ensure that any data held in the cache is appropriately discarded
|
||||
* or written back.
|
||||
*
|
||||
* The device owns this memory once this call has completed. The CPU
|
||||
* can regain ownership by calling dma_unmap_single() or
|
||||
* dma_sync_single_for_cpu().
|
||||
*/
|
||||
static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
unsigned long offset;
|
||||
struct page *page;
|
||||
dma_addr_t addr;
|
||||
|
||||
BUG_ON(!virt_addr_valid(cpu_addr));
|
||||
BUG_ON(!virt_addr_valid(cpu_addr + size - 1));
|
||||
BUG_ON(!valid_dma_direction(dir));
|
||||
|
||||
page = virt_to_page(cpu_addr);
|
||||
offset = (unsigned long)cpu_addr & ~PAGE_MASK;
|
||||
addr = __dma_map_page(dev, page, offset, size, dir);
|
||||
debug_dma_map_page(dev, page, offset, size, dir, addr, true);
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_map_page - map a portion of a page for streaming DMA
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @page: page that buffer resides in
|
||||
* @offset: offset into page for start of buffer
|
||||
* @size: size of buffer to map
|
||||
* @dir: DMA transfer direction
|
||||
*
|
||||
* Ensure that any data held in the cache is appropriately discarded
|
||||
* or written back.
|
||||
*
|
||||
* The device owns this memory once this call has completed. The CPU
|
||||
* can regain ownership by calling dma_unmap_page().
|
||||
*/
|
||||
static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
|
||||
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
dma_addr_t addr;
|
||||
|
||||
BUG_ON(!valid_dma_direction(dir));
|
||||
|
||||
addr = __dma_map_page(dev, page, offset, size, dir);
|
||||
debug_dma_map_page(dev, page, offset, size, dir, addr, false);
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_unmap_single - unmap a single buffer previously mapped
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @handle: DMA address of buffer
|
||||
* @size: size of buffer (same as passed to dma_map_single)
|
||||
* @dir: DMA transfer direction (same as passed to dma_map_single)
|
||||
*
|
||||
* Unmap a single streaming mode DMA translation. The handle and size
|
||||
* must match what was provided in the previous dma_map_single() call.
|
||||
* All other usages are undefined.
|
||||
*
|
||||
* After this call, reads by the CPU to the buffer are guaranteed to see
|
||||
* whatever the device wrote there.
|
||||
*/
|
||||
static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
debug_dma_unmap_page(dev, handle, size, dir, true);
|
||||
__dma_unmap_page(dev, handle, size, dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_unmap_page - unmap a buffer previously mapped through dma_map_page()
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @handle: DMA address of buffer
|
||||
* @size: size of buffer (same as passed to dma_map_page)
|
||||
* @dir: DMA transfer direction (same as passed to dma_map_page)
|
||||
*
|
||||
* Unmap a page streaming mode DMA translation. The handle and size
|
||||
* must match what was provided in the previous dma_map_page() call.
|
||||
* All other usages are undefined.
|
||||
*
|
||||
* After this call, reads by the CPU to the buffer are guaranteed to see
|
||||
* whatever the device wrote there.
|
||||
*/
|
||||
static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,
|
||||
size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
debug_dma_unmap_page(dev, handle, size, dir, false);
|
||||
__dma_unmap_page(dev, handle, size, dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_sync_single_range_for_cpu
|
||||
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
|
||||
* @handle: DMA address of buffer
|
||||
* @offset: offset of region to start sync
|
||||
* @size: size of region to sync
|
||||
* @dir: DMA transfer direction (same as passed to dma_map_single)
|
||||
*
|
||||
* Make physical memory consistent for a single streaming mode DMA
|
||||
* translation after a transfer.
|
||||
*
|
||||
* If you perform a dma_map_single() but wish to interrogate the
|
||||
* buffer using the cpu, yet do not wish to teardown the PCI dma
|
||||
* mapping, you must call this function before doing so. At the
|
||||
* next point you give the PCI dma address back to the card, you
|
||||
* must first the perform a dma_sync_for_device, and then the
|
||||
* device again owns the buffer.
|
||||
*/
|
||||
static inline void dma_sync_single_range_for_cpu(struct device *dev,
|
||||
dma_addr_t handle, unsigned long offset, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
BUG_ON(!valid_dma_direction(dir));
|
||||
|
||||
debug_dma_sync_single_for_cpu(dev, handle + offset, size, dir);
|
||||
|
||||
if (!dmabounce_sync_for_cpu(dev, handle, offset, size, dir))
|
||||
return;
|
||||
|
||||
__dma_single_dev_to_cpu(dma_to_virt(dev, handle) + offset, size, dir);
|
||||
}
|
||||
|
||||
static inline void dma_sync_single_range_for_device(struct device *dev,
|
||||
dma_addr_t handle, unsigned long offset, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
{
|
||||
BUG_ON(!valid_dma_direction(dir));
|
||||
|
||||
debug_dma_sync_single_for_device(dev, handle + offset, size, dir);
|
||||
|
||||
if (!dmabounce_sync_for_device(dev, handle, offset, size, dir))
|
||||
return;
|
||||
|
||||
__dma_single_cpu_to_dev(dma_to_virt(dev, handle) + offset, size, dir);
|
||||
}
|
||||
|
||||
static inline void dma_sync_single_for_cpu(struct device *dev,
|
||||
dma_addr_t handle, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
dma_sync_single_range_for_cpu(dev, handle, 0, size, dir);
|
||||
}
|
||||
|
||||
static inline void dma_sync_single_for_device(struct device *dev,
|
||||
dma_addr_t handle, size_t size, enum dma_data_direction dir)
|
||||
{
|
||||
dma_sync_single_range_for_device(dev, handle, 0, size, dir);
|
||||
}
|
||||
|
||||
/*
|
||||
* The scatter list versions of the above methods.
|
||||
*/
|
||||
extern int dma_map_sg(struct device *, struct scatterlist *, int,
|
||||
extern int arm_dma_map_sg(struct device *, struct scatterlist *, int,
|
||||
enum dma_data_direction, struct dma_attrs *attrs);
|
||||
extern void arm_dma_unmap_sg(struct device *, struct scatterlist *, int,
|
||||
enum dma_data_direction, struct dma_attrs *attrs);
|
||||
extern void arm_dma_sync_sg_for_cpu(struct device *, struct scatterlist *, int,
|
||||
enum dma_data_direction);
|
||||
extern void dma_unmap_sg(struct device *, struct scatterlist *, int,
|
||||
extern void arm_dma_sync_sg_for_device(struct device *, struct scatterlist *, int,
|
||||
enum dma_data_direction);
|
||||
extern void dma_sync_sg_for_cpu(struct device *, struct scatterlist *, int,
|
||||
enum dma_data_direction);
|
||||
extern void dma_sync_sg_for_device(struct device *, struct scatterlist *, int,
|
||||
enum dma_data_direction);
|
||||
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif
|
||||
|
@ -102,6 +102,8 @@
|
||||
#define PL080_WIDTH_16BIT (0x1)
|
||||
#define PL080_WIDTH_32BIT (0x2)
|
||||
|
||||
#define PL080N_CONFIG_ITPROT (1 << 20)
|
||||
#define PL080N_CONFIG_SECPROT (1 << 19)
|
||||
#define PL080_CONFIG_HALT (1 << 18)
|
||||
#define PL080_CONFIG_ACTIVE (1 << 17) /* RO */
|
||||
#define PL080_CONFIG_LOCK (1 << 16)
|
||||
|
@ -43,6 +43,7 @@ struct machine_desc {
|
||||
void (*init_irq)(void);
|
||||
struct sys_timer *timer; /* system tick timer */
|
||||
void (*init_machine)(void);
|
||||
void (*init_late)(void);
|
||||
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
||||
void (*handle_irq)(struct pt_regs *);
|
||||
#endif
|
||||
|
@ -30,6 +30,7 @@ struct map_desc {
|
||||
#define MT_MEMORY_DTCM 12
|
||||
#define MT_MEMORY_ITCM 13
|
||||
#define MT_MEMORY_SO 14
|
||||
#define MT_MEMORY_DMA_READY 15
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
extern void iotable_init(struct map_desc *, int);
|
||||
|
@ -81,6 +81,7 @@ __setup("fpe=", fpe_setup);
|
||||
extern void paging_init(struct machine_desc *desc);
|
||||
extern void sanity_check_meminfo(void);
|
||||
extern void reboot_setup(char *str);
|
||||
extern void setup_dma_zone(struct machine_desc *desc);
|
||||
|
||||
unsigned int processor_id;
|
||||
EXPORT_SYMBOL(processor_id);
|
||||
@ -800,6 +801,14 @@ static int __init customize_machine(void)
|
||||
}
|
||||
arch_initcall(customize_machine);
|
||||
|
||||
static int __init init_machine_late(void)
|
||||
{
|
||||
if (machine_desc->init_late)
|
||||
machine_desc->init_late();
|
||||
return 0;
|
||||
}
|
||||
late_initcall(init_machine_late);
|
||||
|
||||
#ifdef CONFIG_KEXEC
|
||||
static inline unsigned long long get_total_mem(void)
|
||||
{
|
||||
@ -939,12 +948,8 @@ void __init setup_arch(char **cmdline_p)
|
||||
machine_desc = mdesc;
|
||||
machine_name = mdesc->name;
|
||||
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
if (mdesc->dma_zone_size) {
|
||||
extern unsigned long arm_dma_zone_size;
|
||||
arm_dma_zone_size = mdesc->dma_zone_size;
|
||||
}
|
||||
#endif
|
||||
setup_dma_zone(mdesc);
|
||||
|
||||
if (mdesc->restart_mode)
|
||||
reboot_setup(&mdesc->restart_mode);
|
||||
|
||||
|
@ -436,7 +436,6 @@ void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)
|
||||
atslave->dma_dev = &at_hdmac_device.dev;
|
||||
atslave->cfg = ATC_FIFOCFG_HALFFIFO
|
||||
| ATC_SRC_H2SEL_HW | ATC_DST_H2SEL_HW;
|
||||
atslave->ctrla = ATC_SCSIZE_16 | ATC_DCSIZE_16;
|
||||
if (mmc_id == 0) /* MCI0 */
|
||||
atslave->cfg |= ATC_SRC_PER(AT_DMA_ID_MCI0)
|
||||
| ATC_DST_PER(AT_DMA_ID_MCI0);
|
||||
|
@ -26,18 +26,11 @@ struct at_dma_platform_data {
|
||||
/**
|
||||
* struct at_dma_slave - Controller-specific information about a slave
|
||||
* @dma_dev: required DMA master device
|
||||
* @tx_reg: physical address of data register used for
|
||||
* memory-to-peripheral transfers
|
||||
* @rx_reg: physical address of data register used for
|
||||
* peripheral-to-memory transfers
|
||||
* @reg_width: peripheral register width
|
||||
* @cfg: Platform-specific initializer for the CFG register
|
||||
* @ctrla: Platform-specific initializer for the CTRLA register
|
||||
*/
|
||||
struct at_dma_slave {
|
||||
struct device *dma_dev;
|
||||
u32 cfg;
|
||||
u32 ctrla;
|
||||
};
|
||||
|
||||
|
||||
@ -64,24 +57,5 @@ struct at_dma_slave {
|
||||
#define ATC_FIFOCFG_HALFFIFO (0x1 << 28)
|
||||
#define ATC_FIFOCFG_ENOUGHSPACE (0x2 << 28)
|
||||
|
||||
/* Platform-configurable bits in CTRLA */
|
||||
#define ATC_SCSIZE_MASK (0x7 << 16) /* Source Chunk Transfer Size */
|
||||
#define ATC_SCSIZE_1 (0x0 << 16)
|
||||
#define ATC_SCSIZE_4 (0x1 << 16)
|
||||
#define ATC_SCSIZE_8 (0x2 << 16)
|
||||
#define ATC_SCSIZE_16 (0x3 << 16)
|
||||
#define ATC_SCSIZE_32 (0x4 << 16)
|
||||
#define ATC_SCSIZE_64 (0x5 << 16)
|
||||
#define ATC_SCSIZE_128 (0x6 << 16)
|
||||
#define ATC_SCSIZE_256 (0x7 << 16)
|
||||
#define ATC_DCSIZE_MASK (0x7 << 20) /* Destination Chunk Transfer Size */
|
||||
#define ATC_DCSIZE_1 (0x0 << 20)
|
||||
#define ATC_DCSIZE_4 (0x1 << 20)
|
||||
#define ATC_DCSIZE_8 (0x2 << 20)
|
||||
#define ATC_DCSIZE_16 (0x3 << 20)
|
||||
#define ATC_DCSIZE_32 (0x4 << 20)
|
||||
#define ATC_DCSIZE_64 (0x5 << 20)
|
||||
#define ATC_DCSIZE_128 (0x6 << 20)
|
||||
#define ATC_DCSIZE_256 (0x7 << 20)
|
||||
|
||||
#endif /* AT_HDMAC_H */
|
||||
|
@ -681,6 +681,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM")
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_machine = da830_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
.restart = da8xx_restart,
|
||||
MACHINE_END
|
||||
|
@ -1411,6 +1411,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_machine = da850_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
.restart = da8xx_restart,
|
||||
MACHINE_END
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user