Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 340080
b: refs/heads/master
c: a33ee3e
h: refs/heads/master
v: v3
  • Loading branch information
Olof Johansson committed Nov 21, 2012
1 parent a5038d7 commit ba6f07f
Show file tree
Hide file tree
Showing 641 changed files with 9,479 additions and 10,824 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 52530343331dc111e0899bfc976f21ace5b5c95c
refs/heads/master: a33ee3e6949e244f9166a7f7e764886432304ecd
19 changes: 19 additions & 0 deletions trunk/Documentation/arm/sunxi/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
ARM Allwinner SoCs
==================

This document lists all the ARM Allwinner SoCs that are currently
supported in mainline by the Linux kernel. This document will also
provide links to documentation and or datasheet for these SoCs.

SunXi family
------------

Flavors:
Allwinner A10 (sun4i)
Datasheet : http://dl.linux-sunxi.org/A10/A10%20Datasheet%20-%20v1.21%20%282012-04-06%29.pdf

Allwinner A13 (sun5i)
Datasheet : http://dl.linux-sunxi.org/A13/A13%20Datasheet%20-%20v1.12%20%282012-03-29%29.pdf

Core: Cortex A8
Linux kernel mach directory: arch/arm/mach-sunxi
12 changes: 6 additions & 6 deletions trunk/Documentation/arm64/memory.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@ Start End Size Use
-----------------------------------------------------------------------
0000000000000000 0000007fffffffff 512GB user

ffffff8000000000 ffffffbbfffcffff ~240GB vmalloc
ffffff8000000000 ffffffbbfffeffff ~240GB vmalloc

ffffffbbfffd0000 ffffffbcfffdffff 64KB [guard page]
ffffffbbffff0000 ffffffbbffffffff 64KB [guard page]

ffffffbbfffe0000 ffffffbcfffeffff 64KB PCI I/O space
ffffffbc00000000 ffffffbdffffffff 8GB vmemmap

ffffffbbffff0000 ffffffbcffffffff 64KB [guard page]
ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap]

ffffffbc00000000 ffffffbdffffffff 8GB vmemmap
ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space

ffffffbe00000000 ffffffbffbffffff ~8GB [guard, future vmmemap]
ffffffbbffff0000 ffffffbcffffffff ~2MB [guard]

ffffffbffc000000 ffffffbfffffffff 64MB modules

Expand Down
9 changes: 9 additions & 0 deletions trunk/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Broadcom BCM11351 device tree bindings
-------------------------------------------

Boards with the bcm281xx SoC family (which includes bcm11130, bcm11140,
bcm11351, bcm28145, bcm28155 SoCs) shall have the following properties:

Required root node property:

compatible = "bcm,bcm11351";
50 changes: 50 additions & 0 deletions trunk/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
ARM Versatile Express system registers
--------------------------------------

This is a system control registers block, providing multiple low level
platform functions like board detection and identification, software
interrupt generation, MMC and NOR Flash control etc.

Required node properties:
- compatible value : = "arm,vexpress,sysreg";
- reg : physical base address and the size of the registers window
- gpio-controller : specifies that the node is a GPIO controller
- #gpio-cells : size of the GPIO specifier, should be 2:
- first cell is the pseudo-GPIO line number:
0 - MMC CARDIN
1 - MMC WPROT
2 - NOR FLASH WPn
- second cell can take standard GPIO flags (currently ignored).

Example:
v2m_sysreg: sysreg@10000000 {
compatible = "arm,vexpress-sysreg";
reg = <0x10000000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
};

This block also can also act a bridge to the platform's configuration
bus via "system control" interface, addressing devices with site number,
position in the board stack, config controller, function and device
numbers - see motherboard's TRM for more details.

The node describing a config device must refer to the sysreg node via
"arm,vexpress,config-bridge" phandle (can be also defined in the node's
parent) and relies on the board topology properties - see main vexpress
node documentation for more details. It must must also define the
following property:
- arm,vexpress-sysreg,func : must contain two cells:
- first cell defines function number (eg. 1 for clock generator,
2 for voltage regulators etc.)
- device number (eg. osc 0, osc 1 etc.)

Example:
mcc {
arm,vexpress,config-bridge = <&v2m_sysreg>;

osc@0 {
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 0>;
};
};
98 changes: 88 additions & 10 deletions trunk/Documentation/devicetree/bindings/arm/vexpress.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ the motherboard file using a /include/ directive. As the motherboard
can be initialized in one of two different configurations ("memory
maps"), care must be taken to include the correct one.


Root node
---------

Required properties in the root node:
- compatible value:
compatible = "arm,vexpress,<model>", "arm,vexpress";
Expand Down Expand Up @@ -45,6 +49,10 @@ Optional properties in the root node:
- Coretile Express A9x4 (V2P-CA9) HBI-0225:
arm,hbi = <0x225>;


CPU nodes
---------

Top-level standard "cpus" node is required. It must contain a node
with device_type = "cpu" property for every available core, eg.:

Expand All @@ -59,6 +67,52 @@ with device_type = "cpu" property for every available core, eg.:
};
};


Configuration infrastructure
----------------------------

The platform has an elaborated configuration system, consisting of
microcontrollers residing on the mother- and daughterboards known
as Motherboard/Daughterboard Configuration Controller (MCC and DCC).
The controllers are responsible for the platform initialization
(reset generation, flash programming, FPGA bitfiles loading etc.)
but also control clock generators, voltage regulators, gather
environmental data like temperature, power consumption etc. Even
the video output switch (FPGA) is controlled that way.

Nodes describing devices controlled by this infrastructure should
point at the bridge device node:
- bridge phandle:
arm,vexpress,config-bridge = <phandle>;
This property can be also defined in a parent node (eg. for a DCC)
and is effective for all children.


Platform topology
-----------------

As Versatile Express can be configured in number of physically
different setups, the device tree should describe platform topology.
Root node and main motherboard node must define the following
property, describing physical location of the children nodes:
- site number:
arm,vexpress,site = <number>;
where 0 means motherboard, 1 or 2 are daugtherboard sites,
0xf means "master" site (site containing main CPU tile)
- when daughterboards are stacked on one site, their position
in the stack be be described with:
arm,vexpress,position = <number>;
- when describing tiles consisting more than one DCC, its number
can be described with:
arm,vexpress,dcc = <number>;

Any of the numbers above defaults to zero if not defined in
the node or any of its parent.


Motherboard
-----------

The motherboard description file provides a single "motherboard" node
using 2 address cells corresponding to the Static Memory Bus used
between the motherboard and the tile. The first cell defines the Chip
Expand Down Expand Up @@ -87,22 +141,30 @@ can be used to obtain required phandle in the tile's "aliases" node:
- SP804 timers:
v2m_timer01 and v2m_timer23

Current Linux implementation requires a "arm,v2m_timer" alias
pointing at one of the motherboard's SP804 timers, if it is to be
used as the system timer. This alias should be defined in the
motherboard files.
The tile description should define a "smb" node, describing the
Static Memory Bus between the tile and motherboard. It must define
the following properties:
- "simple-bus" compatible value (to ensure creation of the children)
compatible = "simple-bus";
- mapping of the SMB CS/offset addresses into main address space:
#address-cells = <2>;
#size-cells = <1>;
ranges = <...>;
- interrupts mapping:
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <...>;

The tile description must define "ranges", "interrupt-map-mask" and
"interrupt-map" properties to translate the motherboard's address
and interrupt space into one used by the tile's processor.

Abbreviated example:
Example of a VE tile description (simplified)
---------------------------------------------

/dts-v1/;

/ {
model = "V2P-CA5s";
arm,hbi = <0x225>;
arm,vexpress,site = <0xf>;
compatible = "arm,vexpress-v2p-ca5s", "arm,vexpress";
interrupt-parent = <&gic>;
#address-cells = <1>;
Expand Down Expand Up @@ -134,13 +196,29 @@ Abbreviated example:
<0x2c000100 0x100>;
};

motherboard {
dcc {
compatible = "simple-bus";
arm,vexpress,config-bridge = <&v2m_sysreg>;

osc@0 {
compatible = "arm,vexpress-osc";
};
};

smb {
compatible = "simple-bus";

#address-cells = <2>;
#size-cells = <1>;
/* CS0 is visible at 0x08000000 */
ranges = <0 0 0x08000000 0x04000000>;

#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
/* Active high IRQ 0 is connected to GIC's SPI0 */
interrupt-map = <0 0 0 &gic 0 0 4>;

/include/ "vexpress-v2m-rs1.dtsi"
};
};

/include/ "vexpress-v2m-rs1.dtsi"
4 changes: 2 additions & 2 deletions trunk/Documentation/devicetree/bindings/i2c/fsl-imx-i2c.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ Optional properties:
Examples:

i2c@83fc4000 { /* I2C2 on i.MX51 */
compatible = "fsl,imx51-i2c", "fsl,imx1-i2c";
compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
reg = <0x83fc4000 0x4000>;
interrupts = <63>;
};

i2c@70038000 { /* HS-I2C on i.MX51 */
compatible = "fsl,imx51-i2c", "fsl,imx1-i2c";
compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
reg = <0x70038000 0x4000>;
interrupts = <64>;
clock-frequency = <400000>;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
Allwinner Sunxi Interrupt Controller

Required properties:

- compatible : should be "allwinner,sunxi-ic"
- reg : Specifies base physical address and size of the registers.
- interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : Specifies the number of cells needed to encode an
interrupt source. The value shall be 1.

The interrupt sources are as follows:

0: ENMI
1: UART0
2: UART1
3: UART2
4: UART3
5: IR0
6: IR1
7: I2C0
8: I2C1
9: I2C2
10: SPI0
11: SPI1
12: SPI2
13: SPDIF
14: AC97
15: TS
16: I2S
17: UART4
18: UART5
19: UART6
20: UART7
21: KEYPAD
22: TIMER0
23: TIMER1
24: TIMER2
25: TIMER3
26: CAN
27: DMA
28: PIO
29: TOUCH_PANEL
30: AUDIO_CODEC
31: LRADC
32: SDMC0
33: SDMC1
34: SDMC2
35: SDMC3
36: MEMSTICK
37: NAND
38: USB0
39: USB1
40: USB2
41: SCR
42: CSI0
43: CSI1
44: LCDCTRL0
45: LCDCTRL1
46: MP
47: DEFEBE0
48: DEFEBE1
49: PMU
50: SPI3
51: TZASC
52: PATA
53: VE
54: SS
55: EMAC
56: SATA
57: GPS
58: HDMI
59: TVE
60: ACE
61: TVD
62: PS2_0
63: PS2_1
64: USB3
65: USB4
66: PLE_PFM
67: TIMER4
68: TIMER5
69: GPU_GP
70: GPU_GPMMU
71: GPU_PP0
72: GPU_PPMMU0
73: GPU_PMU
74: GPU_RSV0
75: GPU_RSV1
76: GPU_RSV2
77: GPU_RSV3
78: GPU_RSV4
79: GPU_RSV5
80: GPU_RSV6
82: SYNC_TIMER0
83: SYNC_TIMER1

Example:

intc: interrupt-controller {
compatible = "allwinner,sunxi-ic";
reg = <0x01c20400 0x400>;
interrupt-controller;
#interrupt-cells = <2>;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Allwinner A1X SoCs Timer Controller

Required properties:

- compatible : should be "allwinner,sunxi-timer"
- reg : Specifies base physical address and size of the registers.
- interrupts : The interrupt of the first timer
- clocks: phandle to the source clock (usually a 24 MHz fixed clock)

Example:

timer {
compatible = "allwinner,sunxi-timer";
reg = <0x01c20c00 0x400>;
interrupts = <22>;
clocks = <&osc>;
};
Loading

0 comments on commit ba6f07f

Please sign in to comment.