nvidia,tegra20-host1x.txt 12.8 KB
Newer Older
T
Thierry Reding 已提交
1 2 3 4 5 6 7 8 9 10 11
NVIDIA Tegra host1x

Required properties:
- compatible: "nvidia,tegra<chip>-host1x"
- reg: Physical base address and length of the controller's registers.
- interrupts: The interrupt outputs from the controller.
- #address-cells: The number of cells used to represent physical base addresses
  in the host1x address space. Should be 1.
- #size-cells: The number of cells used to represent the size of an address
  range in the host1x address space. Should be 1.
- ranges: The mapping of the host1x address space to the CPU address space.
12 13
- clocks: Must contain one entry, for the module clock.
  See ../clocks/clock-bindings.txt for details.
14 15 16 17
- resets: Must contain an entry for each entry in reset-names.
  See ../reset/reset.txt for details.
- reset-names: Must include the following entries:
  - host1x
T
Thierry Reding 已提交
18 19 20 21 22 23 24 25 26 27

The host1x top-level node defines a number of children, each representing one
of the following host1x client modules:

- mpe: video encoder

  Required properties:
  - compatible: "nvidia,tegra<chip>-mpe"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
28 29
  - clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.
30 31 32 33
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - mpe
T
Thierry Reding 已提交
34 35 36 37 38 39 40

- vi: video input

  Required properties:
  - compatible: "nvidia,tegra<chip>-vi"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
41 42
  - clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.
43 44 45 46
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - vi
T
Thierry Reding 已提交
47 48 49 50 51 52 53

- epp: encoder pre-processor

  Required properties:
  - compatible: "nvidia,tegra<chip>-epp"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
54 55
  - clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.
56 57 58 59
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - epp
T
Thierry Reding 已提交
60 61 62 63 64 65 66

- isp: image signal processor

  Required properties:
  - compatible: "nvidia,tegra<chip>-isp"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
67 68
  - clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.
69 70 71 72
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - isp
T
Thierry Reding 已提交
73 74 75 76 77 78 79

- gr2d: 2D graphics engine

  Required properties:
  - compatible: "nvidia,tegra<chip>-gr2d"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
80 81
  - clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.
82 83 84 85
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - 2d
T
Thierry Reding 已提交
86 87 88 89 90 91

- gr3d: 3D graphics engine

  Required properties:
  - compatible: "nvidia,tegra<chip>-gr3d"
  - reg: Physical base address and length of the controller's registers.
92 93 94 95 96 97 98
  - clocks: Must contain an entry for each entry in clock-names.
    See ../clocks/clock-bindings.txt for details.
  - clock-names: Must include the following entries:
    (This property may be omitted if the only clock in the list is "3d")
    - 3d
      This MUST be the first entry.
    - 3d2 (Only required on SoCs with two 3D clocks)
99 100 101 102 103
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - 3d
    - 3d2 (Only required on SoCs with two 3D clocks)
T
Thierry Reding 已提交
104 105 106 107 108 109 110

- dc: display controller

  Required properties:
  - compatible: "nvidia,tegra<chip>-dc"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
111 112 113 114 115 116
  - clocks: Must contain an entry for each entry in clock-names.
    See ../clocks/clock-bindings.txt for details.
  - clock-names: Must include the following entries:
    - dc
      This MUST be the first entry.
    - parent
117 118 119 120
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - dc
121 122 123
  - nvidia,head: The number of the display controller head. This is used to
    setup the various types of output to receive video data from the given
    head.
T
Thierry Reding 已提交
124 125 126 127 128 129 130

  Each display controller node has a child node, named "rgb", that represents
  the RGB output associated with the controller. It can take the following
  optional properties:
  - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
  - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
  - nvidia,edid: supplies a binary EDID blob
131
  - nvidia,panel: phandle of a display panel
T
Thierry Reding 已提交
132 133 134 135 136 137 138

- hdmi: High Definition Multimedia Interface

  Required properties:
  - compatible: "nvidia,tegra<chip>-hdmi"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
139
  - hdmi-supply: supply for the +5V HDMI connector pin
T
Thierry Reding 已提交
140 141
  - vdd-supply: regulator for supply voltage
  - pll-supply: regulator for PLL
142 143 144 145 146 147
  - clocks: Must contain an entry for each entry in clock-names.
    See ../clocks/clock-bindings.txt for details.
  - clock-names: Must include the following entries:
    - hdmi
      This MUST be the first entry.
    - parent
148 149 150 151
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - hdmi
T
Thierry Reding 已提交
152 153 154 155 156

  Optional properties:
  - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
  - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
  - nvidia,edid: supplies a binary EDID blob
157
  - nvidia,panel: phandle of a display panel
T
Thierry Reding 已提交
158 159 160 161 162 163 164

- tvo: TV encoder output

  Required properties:
  - compatible: "nvidia,tegra<chip>-tvo"
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
165 166
  - clocks: Must contain one entry, for the module clock.
    See ../clocks/clock-bindings.txt for details.
T
Thierry Reding 已提交
167 168 169 170 171 172

- dsi: display serial interface

  Required properties:
  - compatible: "nvidia,tegra<chip>-dsi"
  - reg: Physical base address and length of the controller's registers.
173 174 175 176 177
  - clocks: Must contain an entry for each entry in clock-names.
    See ../clocks/clock-bindings.txt for details.
  - clock-names: Must include the following entries:
    - dsi
      This MUST be the first entry.
T
Thierry Reding 已提交
178
    - lp
179
    - parent
180 181 182 183
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - dsi
184
  - avdd-dsi-supply: phandle of a supply that powers the DSI controller
T
Thierry Reding 已提交
185 186
  - nvidia,mipi-calibrate: Should contain a phandle and a specifier specifying
    which pads are used by this DSI output and need to be calibrated. See also
187
    ../display/tegra/nvidia,tegra114-mipi.txt.
T
Thierry Reding 已提交
188 189 190 191 192 193

  Optional properties:
  - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
  - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
  - nvidia,edid: supplies a binary EDID blob
  - nvidia,panel: phandle of a display panel
194 195
  - nvidia,ganged-mode: contains a phandle to a second DSI controller to gang
    up with in order to support up to 8 data lanes
T
Thierry Reding 已提交
196

T
Thierry Reding 已提交
197 198 199
- sor: serial output resource

  Required properties:
200 201 202 203
  - compatible: Should be:
    - "nvidia,tegra124-sor": for Tegra124 and Tegra132
    - "nvidia,tegra132-sor": for Tegra132
    - "nvidia,tegra210-sor": for Tegra210
204
    - "nvidia,tegra210-sor1": for Tegra210
T
Thierry Reding 已提交
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
  - clocks: Must contain an entry for each entry in clock-names.
    See ../clocks/clock-bindings.txt for details.
  - clock-names: Must include the following entries:
    - sor: clock input for the SOR hardware
    - parent: input for the pixel clock
    - dp: reference clock for the SOR clock
    - safe: safe reference for the SOR clock during power up
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - sor

  Optional properties:
  - nvidia,ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
  - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
  - nvidia,edid: supplies a binary EDID blob
  - nvidia,panel: phandle of a display panel

  Optional properties when driving an eDP output:
  - nvidia,dpaux: phandle to a DispayPort AUX interface

- dpaux: DisplayPort AUX interface
229 230 231
  - compatible: For Tegra124, must contain "nvidia,tegra124-dpaux".  Otherwise,
    must contain '"nvidia,<chip>-dpaux", "nvidia,tegra124-dpaux"', where
    <chip> is tegra132.
T
Thierry Reding 已提交
232 233 234 235 236 237 238 239 240 241 242 243 244
  - reg: Physical base address and length of the controller's registers.
  - interrupts: The interrupt outputs from the controller.
  - clocks: Must contain an entry for each entry in clock-names.
    See ../clocks/clock-bindings.txt for details.
  - clock-names: Must include the following entries:
    - dpaux: clock input for the DPAUX hardware
    - parent: reference clock
  - resets: Must contain an entry for each entry in reset-names.
    See ../reset/reset.txt for details.
  - reset-names: Must include the following entries:
    - dpaux
  - vdd-supply: phandle of a supply that powers the DisplayPort link

T
Thierry Reding 已提交
245 246 247 248 249 250 251 252 253 254
Example:

/ {
	...

	host1x {
		compatible = "nvidia,tegra20-host1x", "simple-bus";
		reg = <0x50000000 0x00024000>;
		interrupts = <0 65 0x04   /* mpcore syncpt */
			      0 67 0x04>; /* mpcore general */
255
		clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
256 257
		resets = <&tegra_car 28>;
		reset-names = "host1x";
T
Thierry Reding 已提交
258 259 260 261 262 263 264 265 266 267

		#address-cells = <1>;
		#size-cells = <1>;

		ranges = <0x54000000 0x54000000 0x04000000>;

		mpe {
			compatible = "nvidia,tegra20-mpe";
			reg = <0x54040000 0x00040000>;
			interrupts = <0 68 0x04>;
268
			clocks = <&tegra_car TEGRA20_CLK_MPE>;
269 270
			resets = <&tegra_car 60>;
			reset-names = "mpe";
T
Thierry Reding 已提交
271 272 273 274 275 276
		};

		vi {
			compatible = "nvidia,tegra20-vi";
			reg = <0x54080000 0x00040000>;
			interrupts = <0 69 0x04>;
277
			clocks = <&tegra_car TEGRA20_CLK_VI>;
278 279
			resets = <&tegra_car 100>;
			reset-names = "vi";
T
Thierry Reding 已提交
280 281 282 283 284 285
		};

		epp {
			compatible = "nvidia,tegra20-epp";
			reg = <0x540c0000 0x00040000>;
			interrupts = <0 70 0x04>;
286
			clocks = <&tegra_car TEGRA20_CLK_EPP>;
287 288
			resets = <&tegra_car 19>;
			reset-names = "epp";
T
Thierry Reding 已提交
289 290 291 292 293 294
		};

		isp {
			compatible = "nvidia,tegra20-isp";
			reg = <0x54100000 0x00040000>;
			interrupts = <0 71 0x04>;
295
			clocks = <&tegra_car TEGRA20_CLK_ISP>;
296 297
			resets = <&tegra_car 23>;
			reset-names = "isp";
T
Thierry Reding 已提交
298 299 300 301 302 303
		};

		gr2d {
			compatible = "nvidia,tegra20-gr2d";
			reg = <0x54140000 0x00040000>;
			interrupts = <0 72 0x04>;
304
			clocks = <&tegra_car TEGRA20_CLK_GR2D>;
305 306
			resets = <&tegra_car 21>;
			reset-names = "2d";
T
Thierry Reding 已提交
307 308 309 310 311
		};

		gr3d {
			compatible = "nvidia,tegra20-gr3d";
			reg = <0x54180000 0x00040000>;
312
			clocks = <&tegra_car TEGRA20_CLK_GR3D>;
313 314
			resets = <&tegra_car 24>;
			reset-names = "3d";
T
Thierry Reding 已提交
315 316 317 318 319 320
		};

		dc@54200000 {
			compatible = "nvidia,tegra20-dc";
			reg = <0x54200000 0x00040000>;
			interrupts = <0 73 0x04>;
321 322
			clocks = <&tegra_car TEGRA20_CLK_DISP1>,
				 <&tegra_car TEGRA20_CLK_PLL_P>;
323
			clock-names = "dc", "parent";
324 325
			resets = <&tegra_car 27>;
			reset-names = "dc";
T
Thierry Reding 已提交
326 327 328 329 330 331 332 333 334 335

			rgb {
				status = "disabled";
			};
		};

		dc@54240000 {
			compatible = "nvidia,tegra20-dc";
			reg = <0x54240000 0x00040000>;
			interrupts = <0 74 0x04>;
336 337
			clocks = <&tegra_car TEGRA20_CLK_DISP2>,
				 <&tegra_car TEGRA20_CLK_PLL_P>;
338
			clock-names = "dc", "parent";
339 340
			resets = <&tegra_car 26>;
			reset-names = "dc";
T
Thierry Reding 已提交
341 342 343 344 345 346 347 348 349 350

			rgb {
				status = "disabled";
			};
		};

		hdmi {
			compatible = "nvidia,tegra20-hdmi";
			reg = <0x54280000 0x00040000>;
			interrupts = <0 75 0x04>;
351 352 353
			clocks = <&tegra_car TEGRA20_CLK_HDMI>,
				 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
			clock-names = "hdmi", "parent";
354 355
			resets = <&tegra_car 51>;
			reset-names = "hdmi";
T
Thierry Reding 已提交
356 357 358 359 360 361 362
			status = "disabled";
		};

		tvo {
			compatible = "nvidia,tegra20-tvo";
			reg = <0x542c0000 0x00040000>;
			interrupts = <0 76 0x04>;
363
			clocks = <&tegra_car TEGRA20_CLK_TVO>;
T
Thierry Reding 已提交
364 365 366 367 368 369
			status = "disabled";
		};

		dsi {
			compatible = "nvidia,tegra20-dsi";
			reg = <0x54300000 0x00040000>;
370 371 372
			clocks = <&tegra_car TEGRA20_CLK_DSI>,
				 <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
			clock-names = "dsi", "parent";
373 374
			resets = <&tegra_car 48>;
			reset-names = "dsi";
T
Thierry Reding 已提交
375 376 377 378 379 380
			status = "disabled";
		};
	};

	...
};