diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-03-04 15:53:03 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-03-04 15:54:04 -0500 |
commit | 4c6c826b22da9f6408b6bc6939a92aa0be838488 (patch) | |
tree | 4fcb8be74ea59140cda6b9bfc076603a3060f0fe | |
parent | fcd2a8e945949868eaf6705db318c31524102286 (diff) | |
parent | 96d6714ca27acab087dcc8d75a7ec815abe3dde7 (diff) |
Merge tag 'tegra-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra into tegra/dt
Device tree updates for tegra. Various development, including a handful
of additions to the tegra30 device trees.
* tag 'tegra-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra:
ASoC: DT: Add digital microphone binding to PAZ00 board.
ARM: dt: Add ARM PMU to tegra*.dtsi
ARM: dt: Add SD controller configuration to Tegra Cardhu
ARM: dt: tegra: Enable headset autodetection on PAZ00 board.
ARM: dt: tegra: Enable device tree audio codec on PAZ00 board.
ARM: dt: Add binding for Tegra PMC
ARM: dt: tegra: Enable audio on WM8903 boards, disable others
ARM: dt: tegra: Add labels for I2S controllers
ARM: dt: tegra: Modify I2S nodes to match binding
ARM: dt: tegra: Add Tegra APB DMA device tree binding
ARM: dt: tegra30.dtsi: Add extra GPIO interrupt
ARM: dt: tegra30.dtsi: Reformat gpio's interrupts property
dt: tegra gpio: Flesh out binding documentation
ARM: tegra: seaboard: add EMC table to device tree
ARM: tegra: emc: device tree bindings
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | Documentation/devicetree/bindings/arm/tegra/emc.txt | 100 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt | 19 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/dma/tegra20-apbdma.txt | 30 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/gpio/gpio_nvidia.txt | 18 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-cardhu.dts | 18 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-harmony.dts | 45 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-paz00.dts | 31 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-seaboard.dts | 78 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-trimslice.dts | 12 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-ventana.dts | 42 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra20.dtsi | 47 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra30.dtsi | 59 |
12 files changed, 484 insertions, 15 deletions
diff --git a/Documentation/devicetree/bindings/arm/tegra/emc.txt b/Documentation/devicetree/bindings/arm/tegra/emc.txt new file mode 100644 index 000000000000..09335f8eee00 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/tegra/emc.txt | |||
@@ -0,0 +1,100 @@ | |||
1 | Embedded Memory Controller | ||
2 | |||
3 | Properties: | ||
4 | - name : Should be emc | ||
5 | - #address-cells : Should be 1 | ||
6 | - #size-cells : Should be 0 | ||
7 | - compatible : Should contain "nvidia,tegra20-emc". | ||
8 | - reg : Offset and length of the register set for the device | ||
9 | - nvidia,use-ram-code : If present, the sub-nodes will be addressed | ||
10 | and chosen using the ramcode board selector. If omitted, only one | ||
11 | set of tables can be present and said tables will be used | ||
12 | irrespective of ram-code configuration. | ||
13 | |||
14 | Child device nodes describe the memory settings for different configurations and clock rates. | ||
15 | |||
16 | Example: | ||
17 | |||
18 | emc@7000f400 { | ||
19 | #address-cells = < 1 >; | ||
20 | #size-cells = < 0 >; | ||
21 | compatible = "nvidia,tegra20-emc"; | ||
22 | reg = <0x7000f4000 0x200>; | ||
23 | } | ||
24 | |||
25 | |||
26 | Embedded Memory Controller ram-code table | ||
27 | |||
28 | If the emc node has the nvidia,use-ram-code property present, then the | ||
29 | next level of nodes below the emc table are used to specify which settings | ||
30 | apply for which ram-code settings. | ||
31 | |||
32 | If the emc node lacks the nvidia,use-ram-code property, this level is omitted | ||
33 | and the tables are stored directly under the emc node (see below). | ||
34 | |||
35 | Properties: | ||
36 | |||
37 | - name : Should be emc-tables | ||
38 | - nvidia,ram-code : the binary representation of the ram-code board strappings | ||
39 | for which this node (and children) are valid. | ||
40 | |||
41 | |||
42 | |||
43 | Embedded Memory Controller configuration table | ||
44 | |||
45 | This is a table containing the EMC register settings for the various | ||
46 | operating speeds of the memory controller. They are always located as | ||
47 | subnodes of the emc controller node. | ||
48 | |||
49 | There are two ways of specifying which tables to use: | ||
50 | |||
51 | * The simplest is if there is just one set of tables in the device tree, | ||
52 | and they will always be used (based on which frequency is used). | ||
53 | This is the preferred method, especially when firmware can fill in | ||
54 | this information based on the specific system information and just | ||
55 | pass it on to the kernel. | ||
56 | |||
57 | * The slightly more complex one is when more than one memory configuration | ||
58 | might exist on the system. The Tegra20 platform handles this during | ||
59 | early boot by selecting one out of possible 4 memory settings based | ||
60 | on a 2-pin "ram code" bootstrap setting on the board. The values of | ||
61 | these strappings can be read through a register in the SoC, and thus | ||
62 | used to select which tables to use. | ||
63 | |||
64 | Properties: | ||
65 | - name : Should be emc-table | ||
66 | - compatible : Should contain "nvidia,tegra20-emc-table". | ||
67 | - reg : either an opaque enumerator to tell different tables apart, or | ||
68 | the valid frequency for which the table should be used (in kHz). | ||
69 | - clock-frequency : the clock frequency for the EMC at which this | ||
70 | table should be used (in kHz). | ||
71 | - nvidia,emc-registers : a 46 word array of EMC registers to be programmed | ||
72 | for operation at the 'clock-frequency' setting. | ||
73 | The order and contents of the registers are: | ||
74 | RC, RFC, RAS, RP, R2W, W2R, R2P, W2P, RD_RCD, WR_RCD, RRD, REXT, | ||
75 | WDV, QUSE, QRST, QSAFE, RDV, REFRESH, BURST_REFRESH_NUM, PDEX2WR, | ||
76 | PDEX2RD, PCHG2PDEN, ACT2PDEN, AR2PDEN, RW2PDEN, TXSR, TCKE, TFAW, | ||
77 | TRPAB, TCLKSTABLE, TCLKSTOP, TREFBW, QUSE_EXTRA, FBIO_CFG6, ODT_WRITE, | ||
78 | ODT_READ, FBIO_CFG5, CFG_DIG_DLL, DLL_XFORM_DQS, DLL_XFORM_QUSE, | ||
79 | ZCAL_REF_CNT, ZCAL_WAIT_CNT, AUTO_CAL_INTERVAL, CFG_CLKTRIM_0, | ||
80 | CFG_CLKTRIM_1, CFG_CLKTRIM_2 | ||
81 | |||
82 | emc-table@166000 { | ||
83 | reg = <166000>; | ||
84 | compatible = "nvidia,tegra20-emc-table"; | ||
85 | clock-frequency = < 166000 >; | ||
86 | nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | ||
87 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | ||
88 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | ||
89 | 0 0 0 0 >; | ||
90 | }; | ||
91 | |||
92 | emc-table@333000 { | ||
93 | reg = <333000>; | ||
94 | compatible = "nvidia,tegra20-emc-table"; | ||
95 | clock-frequency = < 333000 >; | ||
96 | nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | ||
97 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | ||
98 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | ||
99 | 0 0 0 0 >; | ||
100 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt new file mode 100644 index 000000000000..b5846e21cc2e --- /dev/null +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | NVIDIA Tegra Power Management Controller (PMC) | ||
2 | |||
3 | Properties: | ||
4 | - name : Should be pmc | ||
5 | - compatible : Should contain "nvidia,tegra<chip>-pmc". | ||
6 | - reg : Offset and length of the register set for the device | ||
7 | - nvidia,invert-interrupt : If present, inverts the PMU interrupt signal. | ||
8 | The PMU is an external Power Management Unit, whose interrupt output | ||
9 | signal is fed into the PMC. This signal is optionally inverted, and then | ||
10 | fed into the ARM GIC. The PMC is not involved in the detection or | ||
11 | handling of this interrupt signal, merely its inversion. | ||
12 | |||
13 | Example: | ||
14 | |||
15 | pmc@7000f400 { | ||
16 | compatible = "nvidia,tegra20-pmc"; | ||
17 | reg = <0x7000e400 0x400>; | ||
18 | nvidia,invert-interrupt; | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt b/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt new file mode 100644 index 000000000000..90fa7da525b8 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt | |||
@@ -0,0 +1,30 @@ | |||
1 | * NVIDIA Tegra APB DMA controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "nvidia,<chip>-apbdma" | ||
5 | - reg: Should contain DMA registers location and length. This shuld include | ||
6 | all of the per-channel registers. | ||
7 | - interrupts: Should contain all of the per-channel DMA interrupts. | ||
8 | |||
9 | Examples: | ||
10 | |||
11 | apbdma: dma@6000a000 { | ||
12 | compatible = "nvidia,tegra20-apbdma"; | ||
13 | reg = <0x6000a000 0x1200>; | ||
14 | interrupts = < 0 136 0x04 | ||
15 | 0 137 0x04 | ||
16 | 0 138 0x04 | ||
17 | 0 139 0x04 | ||
18 | 0 140 0x04 | ||
19 | 0 141 0x04 | ||
20 | 0 142 0x04 | ||
21 | 0 143 0x04 | ||
22 | 0 144 0x04 | ||
23 | 0 145 0x04 | ||
24 | 0 146 0x04 | ||
25 | 0 147 0x04 | ||
26 | 0 148 0x04 | ||
27 | 0 149 0x04 | ||
28 | 0 150 0x04 | ||
29 | 0 151 0x04 >; | ||
30 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt b/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt index eb4b530d64e1..50b363c5b884 100644 --- a/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt +++ b/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt | |||
@@ -2,7 +2,25 @@ NVIDIA Tegra 2 GPIO controller | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "nvidia,tegra20-gpio" | 4 | - compatible : "nvidia,tegra20-gpio" |
5 | - reg : Physical base address and length of the controller's registers. | ||
6 | - interrupts : The interrupt outputs from the controller. | ||
5 | - #gpio-cells : Should be two. The first cell is the pin number and the | 7 | - #gpio-cells : Should be two. The first cell is the pin number and the |
6 | second cell is used to specify optional parameters: | 8 | second cell is used to specify optional parameters: |
7 | - bit 0 specifies polarity (0 for normal, 1 for inverted) | 9 | - bit 0 specifies polarity (0 for normal, 1 for inverted) |
8 | - gpio-controller : Marks the device node as a GPIO controller. | 10 | - gpio-controller : Marks the device node as a GPIO controller. |
11 | |||
12 | Example: | ||
13 | |||
14 | gpio: gpio@6000d000 { | ||
15 | compatible = "nvidia,tegra20-gpio"; | ||
16 | reg = < 0x6000d000 0x1000 >; | ||
17 | interrupts = < 0 32 0x04 | ||
18 | 0 33 0x04 | ||
19 | 0 34 0x04 | ||
20 | 0 35 0x04 | ||
21 | 0 55 0x04 | ||
22 | 0 87 0x04 | ||
23 | 0 89 0x04 >; | ||
24 | #gpio-cells = <2>; | ||
25 | gpio-controller; | ||
26 | }; | ||
diff --git a/arch/arm/boot/dts/tegra-cardhu.dts b/arch/arm/boot/dts/tegra-cardhu.dts index 70c41fc897d7..73263501f581 100644 --- a/arch/arm/boot/dts/tegra-cardhu.dts +++ b/arch/arm/boot/dts/tegra-cardhu.dts | |||
@@ -33,4 +33,22 @@ | |||
33 | i2c@7000d000 { | 33 | i2c@7000d000 { |
34 | clock-frequency = <100000>; | 34 | clock-frequency = <100000>; |
35 | }; | 35 | }; |
36 | |||
37 | sdhci@78000000 { | ||
38 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | ||
39 | wp-gpios = <&gpio 155 0>; /* gpio PT3 */ | ||
40 | power-gpios = <&gpio 31 0>; /* gpio PD7 */ | ||
41 | }; | ||
42 | |||
43 | sdhci@78000200 { | ||
44 | status = "disable"; | ||
45 | }; | ||
46 | |||
47 | sdhci@78000400 { | ||
48 | status = "disable"; | ||
49 | }; | ||
50 | |||
51 | sdhci@78000400 { | ||
52 | support-8bit; | ||
53 | }; | ||
36 | }; | 54 | }; |
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts index 80afa1b70b80..6e8447dc0202 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra-harmony.dts | |||
@@ -10,19 +10,25 @@ | |||
10 | reg = < 0x00000000 0x40000000 >; | 10 | reg = < 0x00000000 0x40000000 >; |
11 | }; | 11 | }; |
12 | 12 | ||
13 | pmc@7000f400 { | ||
14 | nvidia,invert-interrupt; | ||
15 | }; | ||
16 | |||
13 | i2c@7000c000 { | 17 | i2c@7000c000 { |
14 | clock-frequency = <400000>; | 18 | clock-frequency = <400000>; |
15 | 19 | ||
16 | codec: wm8903@1a { | 20 | wm8903: wm8903@1a { |
17 | compatible = "wlf,wm8903"; | 21 | compatible = "wlf,wm8903"; |
18 | reg = <0x1a>; | 22 | reg = <0x1a>; |
19 | interrupts = < 347 >; | 23 | interrupt-parent = <&gpio>; |
24 | interrupts = < 187 0x04 >; | ||
20 | 25 | ||
21 | gpio-controller; | 26 | gpio-controller; |
22 | #gpio-cells = <2>; | 27 | #gpio-cells = <2>; |
23 | 28 | ||
24 | /* 0x8000 = Not configured */ | 29 | micdet-cfg = <0>; |
25 | gpio-cfg = < 0x8000 0x8000 0 0x8000 0x8000 >; | 30 | micdet-delay = <100>; |
31 | gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; | ||
26 | }; | 32 | }; |
27 | }; | 33 | }; |
28 | 34 | ||
@@ -38,13 +44,32 @@ | |||
38 | clock-frequency = <400000>; | 44 | clock-frequency = <400000>; |
39 | }; | 45 | }; |
40 | 46 | ||
41 | sound { | 47 | i2s@70002a00 { |
42 | compatible = "nvidia,harmony-sound", "nvidia,tegra-wm8903"; | 48 | status = "disable"; |
49 | }; | ||
43 | 50 | ||
44 | spkr-en-gpios = <&codec 2 0>; | 51 | sound { |
45 | hp-det-gpios = <&gpio 178 0>; | 52 | compatible = "nvidia,tegra-audio-wm8903-harmony", |
46 | int-mic-en-gpios = <&gpio 184 0>; | 53 | "nvidia,tegra-audio-wm8903"; |
47 | ext-mic-en-gpios = <&gpio 185 0>; | 54 | nvidia,model = "NVIDIA Tegra Harmony"; |
55 | |||
56 | nvidia,audio-routing = | ||
57 | "Headphone Jack", "HPOUTR", | ||
58 | "Headphone Jack", "HPOUTL", | ||
59 | "Int Spk", "ROP", | ||
60 | "Int Spk", "RON", | ||
61 | "Int Spk", "LOP", | ||
62 | "Int Spk", "LON", | ||
63 | "Mic Jack", "MICBIAS", | ||
64 | "IN1L", "Mic Jack"; | ||
65 | |||
66 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
67 | nvidia,audio-codec = <&wm8903>; | ||
68 | |||
69 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | ||
70 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | ||
71 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ | ||
72 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ | ||
48 | }; | 73 | }; |
49 | 74 | ||
50 | serial@70006000 { | 75 | serial@70006000 { |
diff --git a/arch/arm/boot/dts/tegra-paz00.dts b/arch/arm/boot/dts/tegra-paz00.dts index 825d2957da0b..3c1ff5a43fb7 100644 --- a/arch/arm/boot/dts/tegra-paz00.dts +++ b/arch/arm/boot/dts/tegra-paz00.dts | |||
@@ -12,6 +12,13 @@ | |||
12 | 12 | ||
13 | i2c@7000c000 { | 13 | i2c@7000c000 { |
14 | clock-frequency = <400000>; | 14 | clock-frequency = <400000>; |
15 | |||
16 | alc5632: alc5632@1e { | ||
17 | compatible = "realtek,alc5632"; | ||
18 | reg = <0x1e>; | ||
19 | gpio-controller; | ||
20 | #gpio-cells = <2>; | ||
21 | }; | ||
15 | }; | 22 | }; |
16 | 23 | ||
17 | i2c@7000c400 { | 24 | i2c@7000c400 { |
@@ -37,6 +44,30 @@ | |||
37 | clock-frequency = <400000>; | 44 | clock-frequency = <400000>; |
38 | }; | 45 | }; |
39 | 46 | ||
47 | i2s@70002a00 { | ||
48 | status = "disable"; | ||
49 | }; | ||
50 | |||
51 | sound { | ||
52 | compatible = "nvidia,tegra-audio-alc5632-paz00", | ||
53 | "nvidia,tegra-audio-alc5632"; | ||
54 | |||
55 | nvidia,model = "Compal PAZ00"; | ||
56 | |||
57 | nvidia,audio-routing = | ||
58 | "Int Spk", "SPKOUT", | ||
59 | "Int Spk", "SPKOUTN", | ||
60 | "Headset Mic", "MICBIAS1", | ||
61 | "MIC1", "Headset Mic", | ||
62 | "Headset Stereophone", "HPR", | ||
63 | "Headset Stereophone", "HPL", | ||
64 | "DMICDAT", "Digital Mic"; | ||
65 | |||
66 | nvidia,audio-codec = <&alc5632>; | ||
67 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
68 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | ||
69 | }; | ||
70 | |||
40 | serial@70006000 { | 71 | serial@70006000 { |
41 | clock-frequency = <216000000>; | 72 | clock-frequency = <216000000>; |
42 | }; | 73 | }; |
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts index b55a02e34ba7..876d5c92ce36 100644 --- a/arch/arm/boot/dts/tegra-seaboard.dts +++ b/arch/arm/boot/dts/tegra-seaboard.dts | |||
@@ -13,6 +13,20 @@ | |||
13 | 13 | ||
14 | i2c@7000c000 { | 14 | i2c@7000c000 { |
15 | clock-frequency = <400000>; | 15 | clock-frequency = <400000>; |
16 | |||
17 | wm8903: wm8903@1a { | ||
18 | compatible = "wlf,wm8903"; | ||
19 | reg = <0x1a>; | ||
20 | interrupt-parent = <&gpio>; | ||
21 | interrupts = < 187 0x04 >; | ||
22 | |||
23 | gpio-controller; | ||
24 | #gpio-cells = <2>; | ||
25 | |||
26 | micdet-cfg = <0>; | ||
27 | micdet-delay = <100>; | ||
28 | gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; | ||
29 | }; | ||
16 | }; | 30 | }; |
17 | 31 | ||
18 | i2c@7000c400 { | 32 | i2c@7000c400 { |
@@ -32,6 +46,32 @@ | |||
32 | }; | 46 | }; |
33 | }; | 47 | }; |
34 | 48 | ||
49 | i2s@70002a00 { | ||
50 | status = "disable"; | ||
51 | }; | ||
52 | |||
53 | sound { | ||
54 | compatible = "nvidia,tegra-audio-wm8903-seaboard", | ||
55 | "nvidia,tegra-audio-wm8903"; | ||
56 | nvidia,model = "NVIDIA Tegra Seaboard"; | ||
57 | |||
58 | nvidia,audio-routing = | ||
59 | "Headphone Jack", "HPOUTR", | ||
60 | "Headphone Jack", "HPOUTL", | ||
61 | "Int Spk", "ROP", | ||
62 | "Int Spk", "RON", | ||
63 | "Int Spk", "LOP", | ||
64 | "Int Spk", "LON", | ||
65 | "Mic Jack", "MICBIAS", | ||
66 | "IN1R", "Mic Jack"; | ||
67 | |||
68 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
69 | nvidia,audio-codec = <&wm8903>; | ||
70 | |||
71 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | ||
72 | nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */ | ||
73 | }; | ||
74 | |||
35 | serial@70006000 { | 75 | serial@70006000 { |
36 | status = "disable"; | 76 | status = "disable"; |
37 | }; | 77 | }; |
@@ -93,4 +133,42 @@ | |||
93 | gpio-key,wakeup; | 133 | gpio-key,wakeup; |
94 | }; | 134 | }; |
95 | }; | 135 | }; |
136 | |||
137 | emc@7000f400 { | ||
138 | emc-table@190000 { | ||
139 | reg = < 190000 >; | ||
140 | compatible = "nvidia,tegra20-emc-table"; | ||
141 | clock-frequency = < 190000 >; | ||
142 | nvidia,emc-registers = < 0x0000000c 0x00000026 | ||
143 | 0x00000009 0x00000003 0x00000004 0x00000004 | ||
144 | 0x00000002 0x0000000c 0x00000003 0x00000003 | ||
145 | 0x00000002 0x00000001 0x00000004 0x00000005 | ||
146 | 0x00000004 0x00000009 0x0000000d 0x0000059f | ||
147 | 0x00000000 0x00000003 0x00000003 0x00000003 | ||
148 | 0x00000003 0x00000001 0x0000000b 0x000000c8 | ||
149 | 0x00000003 0x00000007 0x00000004 0x0000000f | ||
150 | 0x00000002 0x00000000 0x00000000 0x00000002 | ||
151 | 0x00000000 0x00000000 0x00000083 0xa06204ae | ||
152 | 0x007dc010 0x00000000 0x00000000 0x00000000 | ||
153 | 0x00000000 0x00000000 0x00000000 0x00000000 >; | ||
154 | }; | ||
155 | |||
156 | emc-table@380000 { | ||
157 | reg = < 380000 >; | ||
158 | compatible = "nvidia,tegra20-emc-table"; | ||
159 | clock-frequency = < 380000 >; | ||
160 | nvidia,emc-registers = < 0x00000017 0x0000004b | ||
161 | 0x00000012 0x00000006 0x00000004 0x00000005 | ||
162 | 0x00000003 0x0000000c 0x00000006 0x00000006 | ||
163 | 0x00000003 0x00000001 0x00000004 0x00000005 | ||
164 | 0x00000004 0x00000009 0x0000000d 0x00000b5f | ||
165 | 0x00000000 0x00000003 0x00000003 0x00000006 | ||
166 | 0x00000006 0x00000001 0x00000011 0x000000c8 | ||
167 | 0x00000003 0x0000000e 0x00000007 0x0000000f | ||
168 | 0x00000002 0x00000000 0x00000000 0x00000002 | ||
169 | 0x00000000 0x00000000 0x00000083 0xe044048b | ||
170 | 0x007d8010 0x00000000 0x00000000 0x00000000 | ||
171 | 0x00000000 0x00000000 0x00000000 0x00000000 >; | ||
172 | }; | ||
173 | }; | ||
96 | }; | 174 | }; |
diff --git a/arch/arm/boot/dts/tegra-trimslice.dts b/arch/arm/boot/dts/tegra-trimslice.dts index 3b3ee7db99f3..252476867b54 100644 --- a/arch/arm/boot/dts/tegra-trimslice.dts +++ b/arch/arm/boot/dts/tegra-trimslice.dts | |||
@@ -26,6 +26,18 @@ | |||
26 | status = "disable"; | 26 | status = "disable"; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | i2s@70002800 { | ||
30 | status = "disable"; | ||
31 | }; | ||
32 | |||
33 | i2s@70002a00 { | ||
34 | status = "disable"; | ||
35 | }; | ||
36 | |||
37 | das@70000c00 { | ||
38 | status = "disable"; | ||
39 | }; | ||
40 | |||
29 | serial@70006000 { | 41 | serial@70006000 { |
30 | clock-frequency = < 216000000 >; | 42 | clock-frequency = < 216000000 >; |
31 | }; | 43 | }; |
diff --git a/arch/arm/boot/dts/tegra-ventana.dts b/arch/arm/boot/dts/tegra-ventana.dts index c7d3b87f29df..2dcff8728e90 100644 --- a/arch/arm/boot/dts/tegra-ventana.dts +++ b/arch/arm/boot/dts/tegra-ventana.dts | |||
@@ -12,6 +12,20 @@ | |||
12 | 12 | ||
13 | i2c@7000c000 { | 13 | i2c@7000c000 { |
14 | clock-frequency = <400000>; | 14 | clock-frequency = <400000>; |
15 | |||
16 | wm8903: wm8903@1a { | ||
17 | compatible = "wlf,wm8903"; | ||
18 | reg = <0x1a>; | ||
19 | interrupt-parent = <&gpio>; | ||
20 | interrupts = < 187 0x04 >; | ||
21 | |||
22 | gpio-controller; | ||
23 | #gpio-cells = <2>; | ||
24 | |||
25 | micdet-cfg = <0>; | ||
26 | micdet-delay = <100>; | ||
27 | gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; | ||
28 | }; | ||
15 | }; | 29 | }; |
16 | 30 | ||
17 | i2c@7000c400 { | 31 | i2c@7000c400 { |
@@ -26,6 +40,34 @@ | |||
26 | clock-frequency = <400000>; | 40 | clock-frequency = <400000>; |
27 | }; | 41 | }; |
28 | 42 | ||
43 | i2s@70002a00 { | ||
44 | status = "disable"; | ||
45 | }; | ||
46 | |||
47 | sound { | ||
48 | compatible = "nvidia,tegra-audio-wm8903-ventana", | ||
49 | "nvidia,tegra-audio-wm8903"; | ||
50 | nvidia,model = "NVIDIA Tegra Ventana"; | ||
51 | |||
52 | nvidia,audio-routing = | ||
53 | "Headphone Jack", "HPOUTR", | ||
54 | "Headphone Jack", "HPOUTL", | ||
55 | "Int Spk", "ROP", | ||
56 | "Int Spk", "RON", | ||
57 | "Int Spk", "LOP", | ||
58 | "Int Spk", "LON", | ||
59 | "Mic Jack", "MICBIAS", | ||
60 | "IN1L", "Mic Jack"; | ||
61 | |||
62 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
63 | nvidia,audio-codec = <&wm8903>; | ||
64 | |||
65 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | ||
66 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | ||
67 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ | ||
68 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ | ||
69 | }; | ||
70 | |||
29 | serial@70006000 { | 71 | serial@70006000 { |
30 | status = "disable"; | 72 | status = "disable"; |
31 | }; | 73 | }; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index 3da7afd45322..d2bc7e7ad06d 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -4,6 +4,11 @@ | |||
4 | compatible = "nvidia,tegra20"; | 4 | compatible = "nvidia,tegra20"; |
5 | interrupt-parent = <&intc>; | 5 | interrupt-parent = <&intc>; |
6 | 6 | ||
7 | pmc@7000f400 { | ||
8 | compatible = "nvidia,tegra20-pmc"; | ||
9 | reg = <0x7000e400 0x400>; | ||
10 | }; | ||
11 | |||
7 | intc: interrupt-controller@50041000 { | 12 | intc: interrupt-controller@50041000 { |
8 | compatible = "arm,cortex-a9-gic"; | 13 | compatible = "arm,cortex-a9-gic"; |
9 | interrupt-controller; | 14 | interrupt-controller; |
@@ -12,6 +17,33 @@ | |||
12 | < 0x50040100 0x0100 >; | 17 | < 0x50040100 0x0100 >; |
13 | }; | 18 | }; |
14 | 19 | ||
20 | pmu { | ||
21 | compatible = "arm,cortex-a9-pmu"; | ||
22 | interrupts = <0 56 0x04 | ||
23 | 0 57 0x04>; | ||
24 | }; | ||
25 | |||
26 | apbdma: dma@6000a000 { | ||
27 | compatible = "nvidia,tegra20-apbdma"; | ||
28 | reg = <0x6000a000 0x1200>; | ||
29 | interrupts = < 0 104 0x04 | ||
30 | 0 105 0x04 | ||
31 | 0 106 0x04 | ||
32 | 0 107 0x04 | ||
33 | 0 108 0x04 | ||
34 | 0 109 0x04 | ||
35 | 0 110 0x04 | ||
36 | 0 111 0x04 | ||
37 | 0 112 0x04 | ||
38 | 0 113 0x04 | ||
39 | 0 114 0x04 | ||
40 | 0 115 0x04 | ||
41 | 0 116 0x04 | ||
42 | 0 117 0x04 | ||
43 | 0 118 0x04 | ||
44 | 0 119 0x04 >; | ||
45 | }; | ||
46 | |||
15 | i2c@7000c000 { | 47 | i2c@7000c000 { |
16 | #address-cells = <1>; | 48 | #address-cells = <1>; |
17 | #size-cells = <0>; | 49 | #size-cells = <0>; |
@@ -44,18 +76,18 @@ | |||
44 | interrupts = < 0 53 0x04 >; | 76 | interrupts = < 0 53 0x04 >; |
45 | }; | 77 | }; |
46 | 78 | ||
47 | i2s@70002800 { | 79 | tegra_i2s1: i2s@70002800 { |
48 | compatible = "nvidia,tegra20-i2s"; | 80 | compatible = "nvidia,tegra20-i2s"; |
49 | reg = <0x70002800 0x200>; | 81 | reg = <0x70002800 0x200>; |
50 | interrupts = < 0 13 0x04 >; | 82 | interrupts = < 0 13 0x04 >; |
51 | dma-channel = < 2 >; | 83 | nvidia,dma-request-selector = < &apbdma 2 >; |
52 | }; | 84 | }; |
53 | 85 | ||
54 | i2s@70002a00 { | 86 | tegra_i2s2: i2s@70002a00 { |
55 | compatible = "nvidia,tegra20-i2s"; | 87 | compatible = "nvidia,tegra20-i2s"; |
56 | reg = <0x70002a00 0x200>; | 88 | reg = <0x70002a00 0x200>; |
57 | interrupts = < 0 3 0x04 >; | 89 | interrupts = < 0 3 0x04 >; |
58 | dma-channel = < 1 >; | 90 | nvidia,dma-request-selector = < &apbdma 1 >; |
59 | }; | 91 | }; |
60 | 92 | ||
61 | das@70000c00 { | 93 | das@70000c00 { |
@@ -120,6 +152,13 @@ | |||
120 | interrupts = < 0 91 0x04 >; | 152 | interrupts = < 0 91 0x04 >; |
121 | }; | 153 | }; |
122 | 154 | ||
155 | emc@7000f400 { | ||
156 | #address-cells = <1>; | ||
157 | #size-cells = <0>; | ||
158 | compatible = "nvidia,tegra20-emc"; | ||
159 | reg = <0x7000f400 0x200>; | ||
160 | }; | ||
161 | |||
123 | sdhci@c8000000 { | 162 | sdhci@c8000000 { |
124 | compatible = "nvidia,tegra20-sdhci"; | 163 | compatible = "nvidia,tegra20-sdhci"; |
125 | reg = <0xc8000000 0x200>; | 164 | reg = <0xc8000000 0x200>; |
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index ee7db9892e02..e957051f8645 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
@@ -4,6 +4,11 @@ | |||
4 | compatible = "nvidia,tegra30"; | 4 | compatible = "nvidia,tegra30"; |
5 | interrupt-parent = <&intc>; | 5 | interrupt-parent = <&intc>; |
6 | 6 | ||
7 | pmc@7000f400 { | ||
8 | compatible = "nvidia,tegra20-pmc", "nvidia,tegra30-pmc"; | ||
9 | reg = <0x7000e400 0x400>; | ||
10 | }; | ||
11 | |||
7 | intc: interrupt-controller@50041000 { | 12 | intc: interrupt-controller@50041000 { |
8 | compatible = "arm,cortex-a9-gic"; | 13 | compatible = "arm,cortex-a9-gic"; |
9 | interrupt-controller; | 14 | interrupt-controller; |
@@ -12,6 +17,51 @@ | |||
12 | < 0x50040100 0x0100 >; | 17 | < 0x50040100 0x0100 >; |
13 | }; | 18 | }; |
14 | 19 | ||
20 | pmu { | ||
21 | compatible = "arm,cortex-a9-pmu"; | ||
22 | interrupts = <0 144 0x04 | ||
23 | 0 145 0x04 | ||
24 | 0 146 0x04 | ||
25 | 0 147 0x04>; | ||
26 | }; | ||
27 | |||
28 | apbdma: dma@6000a000 { | ||
29 | compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; | ||
30 | reg = <0x6000a000 0x1400>; | ||
31 | interrupts = < 0 104 0x04 | ||
32 | 0 105 0x04 | ||
33 | 0 106 0x04 | ||
34 | 0 107 0x04 | ||
35 | 0 108 0x04 | ||
36 | 0 109 0x04 | ||
37 | 0 110 0x04 | ||
38 | 0 111 0x04 | ||
39 | 0 112 0x04 | ||
40 | 0 113 0x04 | ||
41 | 0 114 0x04 | ||
42 | 0 115 0x04 | ||
43 | 0 116 0x04 | ||
44 | 0 117 0x04 | ||
45 | 0 118 0x04 | ||
46 | 0 119 0x04 | ||
47 | 0 128 0x04 | ||
48 | 0 129 0x04 | ||
49 | 0 130 0x04 | ||
50 | 0 131 0x04 | ||
51 | 0 132 0x04 | ||
52 | 0 133 0x04 | ||
53 | 0 134 0x04 | ||
54 | 0 135 0x04 | ||
55 | 0 136 0x04 | ||
56 | 0 137 0x04 | ||
57 | 0 138 0x04 | ||
58 | 0 139 0x04 | ||
59 | 0 140 0x04 | ||
60 | 0 141 0x04 | ||
61 | 0 142 0x04 | ||
62 | 0 143 0x04 >; | ||
63 | }; | ||
64 | |||
15 | i2c@7000c000 { | 65 | i2c@7000c000 { |
16 | #address-cells = <1>; | 66 | #address-cells = <1>; |
17 | #size-cells = <0>; | 67 | #size-cells = <0>; |
@@ -55,7 +105,14 @@ | |||
55 | gpio: gpio@6000d000 { | 105 | gpio: gpio@6000d000 { |
56 | compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio"; | 106 | compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio"; |
57 | reg = < 0x6000d000 0x1000 >; | 107 | reg = < 0x6000d000 0x1000 >; |
58 | interrupts = < 0 32 0x04 0 33 0x04 0 34 0x04 0 35 0x04 0 55 0x04 0 87 0x04 0 89 0x04 >; | 108 | interrupts = < 0 32 0x04 |
109 | 0 33 0x04 | ||
110 | 0 34 0x04 | ||
111 | 0 35 0x04 | ||
112 | 0 55 0x04 | ||
113 | 0 87 0x04 | ||
114 | 0 89 0x04 | ||
115 | 0 125 0x04 >; | ||
59 | #gpio-cells = <2>; | 116 | #gpio-cells = <2>; |
60 | gpio-controller; | 117 | gpio-controller; |
61 | }; | 118 | }; |