r8a7790.dtsi 51.7 KB
Newer Older
1 2 3
/*
 * Device Tree Source for the r8a7790 SoC
 *
4
 * Copyright (C) 2015 Renesas Electronics Corporation
5 6
 * Copyright (C) 2013-2014 Renesas Solutions Corp.
 * Copyright (C) 2014 Cogent Embedded Inc.
7 8 9 10 11 12
 *
 * This file is licensed under the terms of the GNU General Public License
 * version 2.  This program is licensed "as is" without any warranty of any
 * kind, whether express or implied.
 */

13
#include <dt-bindings/clock/r8a7790-clock.h>
14 15 16
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>

17 18 19
/ {
	compatible = "renesas,r8a7790";
	interrupt-parent = <&gic>;
20 21
	#address-cells = <2>;
	#size-cells = <2>;
22

23 24 25 26 27
	aliases {
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
28 29 30 31
		i2c4 = &iic0;
		i2c5 = &iic1;
		i2c6 = &iic2;
		i2c7 = &iic3;
32
		spi0 = &qspi;
33 34 35 36
		spi1 = &msiof0;
		spi2 = &msiof1;
		spi3 = &msiof2;
		spi4 = &msiof3;
37 38 39 40
		vin0 = &vin0;
		vin1 = &vin1;
		vin2 = &vin2;
		vin3 = &vin3;
41 42
	};

43 44 45 46 47 48 49 50 51
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0>;
			clock-frequency = <1300000000>;
52 53 54 55 56 57 58 59 60 61 62
			voltage-tolerance = <1>; /* 1% */
			clocks = <&cpg_clocks R8A7790_CLK_Z>;
			clock-latency = <300000>; /* 300 us */

			/* kHz - uV - OPPs unknown yet */
			operating-points = <1400000 1000000>,
					   <1225000 1000000>,
					   <1050000 1000000>,
					   < 875000 1000000>,
					   < 700000 1000000>,
					   < 350000 1000000>;
63
		};
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <1>;
			clock-frequency = <1300000000>;
		};

		cpu2: cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <2>;
			clock-frequency = <1300000000>;
		};

		cpu3: cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <3>;
			clock-frequency = <1300000000>;
		};
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

		cpu4: cpu@4 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x100>;
			clock-frequency = <780000000>;
		};

		cpu5: cpu@5 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x101>;
			clock-frequency = <780000000>;
		};

		cpu6: cpu@6 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x102>;
			clock-frequency = <780000000>;
		};

		cpu7: cpu@7 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x103>;
			clock-frequency = <780000000>;
		};
113 114 115
	};

	gic: interrupt-controller@f1001000 {
116
		compatible = "arm,gic-400";
117 118 119
		#interrupt-cells = <3>;
		#address-cells = <0>;
		interrupt-controller;
120 121 122 123
		reg = <0 0xf1001000 0 0x1000>,
			<0 0xf1002000 0 0x1000>,
			<0 0xf1004000 0 0x2000>,
			<0 0xf1006000 0 0x2000>;
124
		interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
125 126
	};

127
	gpio0: gpio@e6050000 {
128
		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
129
		reg = <0 0xe6050000 0 0x50>;
130
		interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
131 132 133 134 135
		#gpio-cells = <2>;
		gpio-controller;
		gpio-ranges = <&pfc 0 0 32>;
		#interrupt-cells = <2>;
		interrupt-controller;
136
		clocks = <&mstp9_clks R8A7790_CLK_GPIO0>;
137
		power-domains = <&cpg_clocks>;
138 139
	};

140
	gpio1: gpio@e6051000 {
141
		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
142
		reg = <0 0xe6051000 0 0x50>;
143
		interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
144 145 146 147 148
		#gpio-cells = <2>;
		gpio-controller;
		gpio-ranges = <&pfc 0 32 32>;
		#interrupt-cells = <2>;
		interrupt-controller;
149
		clocks = <&mstp9_clks R8A7790_CLK_GPIO1>;
150
		power-domains = <&cpg_clocks>;
151 152
	};

153
	gpio2: gpio@e6052000 {
154
		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
155
		reg = <0 0xe6052000 0 0x50>;
156
		interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
157 158 159 160 161
		#gpio-cells = <2>;
		gpio-controller;
		gpio-ranges = <&pfc 0 64 32>;
		#interrupt-cells = <2>;
		interrupt-controller;
162
		clocks = <&mstp9_clks R8A7790_CLK_GPIO2>;
163
		power-domains = <&cpg_clocks>;
164 165
	};

166
	gpio3: gpio@e6053000 {
167
		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
168
		reg = <0 0xe6053000 0 0x50>;
169
		interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
170 171 172 173 174
		#gpio-cells = <2>;
		gpio-controller;
		gpio-ranges = <&pfc 0 96 32>;
		#interrupt-cells = <2>;
		interrupt-controller;
175
		clocks = <&mstp9_clks R8A7790_CLK_GPIO3>;
176
		power-domains = <&cpg_clocks>;
177 178
	};

179
	gpio4: gpio@e6054000 {
180
		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
181
		reg = <0 0xe6054000 0 0x50>;
182
		interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
183 184 185 186 187
		#gpio-cells = <2>;
		gpio-controller;
		gpio-ranges = <&pfc 0 128 32>;
		#interrupt-cells = <2>;
		interrupt-controller;
188
		clocks = <&mstp9_clks R8A7790_CLK_GPIO4>;
189
		power-domains = <&cpg_clocks>;
190 191
	};

192
	gpio5: gpio@e6055000 {
193
		compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar";
194
		reg = <0 0xe6055000 0 0x50>;
195
		interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
196 197 198 199 200
		#gpio-cells = <2>;
		gpio-controller;
		gpio-ranges = <&pfc 0 160 32>;
		#interrupt-cells = <2>;
		interrupt-controller;
201
		clocks = <&mstp9_clks R8A7790_CLK_GPIO5>;
202
		power-domains = <&cpg_clocks>;
203 204
	};

205 206 207 208
	thermal@e61f0000 {
		compatible = "renesas,thermal-r8a7790", "renesas,rcar-thermal";
		reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
		interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
209
		clocks = <&mstp5_clks R8A7790_CLK_THERMAL>;
210
		power-domains = <&cpg_clocks>;
211 212
	};

213 214
	timer {
		compatible = "arm,armv7-timer";
215 216 217 218
		interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			     <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
219
	};
220

221
	cmt0: timer@ffca0000 {
222
		compatible = "renesas,cmt-48-r8a7790", "renesas,cmt-48-gen2";
223 224 225 226 227
		reg = <0 0xffca0000 0 0x1004>;
		interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
			     <0 143 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp1_clks R8A7790_CLK_CMT0>;
		clock-names = "fck";
228
		power-domains = <&cpg_clocks>;
229 230 231 232 233 234 235

		renesas,channels-mask = <0x60>;

		status = "disabled";
	};

	cmt1: timer@e6130000 {
236
		compatible = "renesas,cmt-48-r8a7790", "renesas,cmt-48-gen2";
237 238 239 240 241 242 243 244 245 246 247
		reg = <0 0xe6130000 0 0x1004>;
		interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>,
			     <0 121 IRQ_TYPE_LEVEL_HIGH>,
			     <0 122 IRQ_TYPE_LEVEL_HIGH>,
			     <0 123 IRQ_TYPE_LEVEL_HIGH>,
			     <0 124 IRQ_TYPE_LEVEL_HIGH>,
			     <0 125 IRQ_TYPE_LEVEL_HIGH>,
			     <0 126 IRQ_TYPE_LEVEL_HIGH>,
			     <0 127 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp3_clks R8A7790_CLK_CMT1>;
		clock-names = "fck";
248
		power-domains = <&cpg_clocks>;
249 250 251 252 253 254

		renesas,channels-mask = <0xff>;

		status = "disabled";
	};

255
	irqc0: interrupt-controller@e61c0000 {
256
		compatible = "renesas,irqc-r8a7790", "renesas,irqc";
257 258
		#interrupt-cells = <2>;
		interrupt-controller;
259
		reg = <0 0xe61c0000 0 0x200>;
260 261 262 263
		interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
			     <0 1 IRQ_TYPE_LEVEL_HIGH>,
			     <0 2 IRQ_TYPE_LEVEL_HIGH>,
			     <0 3 IRQ_TYPE_LEVEL_HIGH>;
264
		clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
265
		power-domains = <&cpg_clocks>;
266
	};
267

268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
	dmac0: dma-controller@e6700000 {
		compatible = "renesas,rcar-dmac";
		reg = <0 0xe6700000 0 0x20000>;
		interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH
			      0 200 IRQ_TYPE_LEVEL_HIGH
			      0 201 IRQ_TYPE_LEVEL_HIGH
			      0 202 IRQ_TYPE_LEVEL_HIGH
			      0 203 IRQ_TYPE_LEVEL_HIGH
			      0 204 IRQ_TYPE_LEVEL_HIGH
			      0 205 IRQ_TYPE_LEVEL_HIGH
			      0 206 IRQ_TYPE_LEVEL_HIGH
			      0 207 IRQ_TYPE_LEVEL_HIGH
			      0 208 IRQ_TYPE_LEVEL_HIGH
			      0 209 IRQ_TYPE_LEVEL_HIGH
			      0 210 IRQ_TYPE_LEVEL_HIGH
			      0 211 IRQ_TYPE_LEVEL_HIGH
			      0 212 IRQ_TYPE_LEVEL_HIGH
			      0 213 IRQ_TYPE_LEVEL_HIGH
			      0 214 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "error",
				"ch0", "ch1", "ch2", "ch3",
				"ch4", "ch5", "ch6", "ch7",
				"ch8", "ch9", "ch10", "ch11",
				"ch12", "ch13", "ch14";
		clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>;
		clock-names = "fck";
294
		power-domains = <&cpg_clocks>;
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
		#dma-cells = <1>;
		dma-channels = <15>;
	};

	dmac1: dma-controller@e6720000 {
		compatible = "renesas,rcar-dmac";
		reg = <0 0xe6720000 0 0x20000>;
		interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
			      0 216 IRQ_TYPE_LEVEL_HIGH
			      0 217 IRQ_TYPE_LEVEL_HIGH
			      0 218 IRQ_TYPE_LEVEL_HIGH
			      0 219 IRQ_TYPE_LEVEL_HIGH
			      0 308 IRQ_TYPE_LEVEL_HIGH
			      0 309 IRQ_TYPE_LEVEL_HIGH
			      0 310 IRQ_TYPE_LEVEL_HIGH
			      0 311 IRQ_TYPE_LEVEL_HIGH
			      0 312 IRQ_TYPE_LEVEL_HIGH
			      0 313 IRQ_TYPE_LEVEL_HIGH
			      0 314 IRQ_TYPE_LEVEL_HIGH
			      0 315 IRQ_TYPE_LEVEL_HIGH
			      0 316 IRQ_TYPE_LEVEL_HIGH
			      0 317 IRQ_TYPE_LEVEL_HIGH
			      0 318 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "error",
				"ch0", "ch1", "ch2", "ch3",
				"ch4", "ch5", "ch6", "ch7",
				"ch8", "ch9", "ch10", "ch11",
				"ch12", "ch13", "ch14";
		clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>;
		clock-names = "fck";
325
		power-domains = <&cpg_clocks>;
326 327 328
		#dma-cells = <1>;
		dma-channels = <15>;
	};
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353

	audma0: dma-controller@ec700000 {
		compatible = "renesas,rcar-dmac";
		reg = <0 0xec700000 0 0x10000>;
		interrupts =	<0 346 IRQ_TYPE_LEVEL_HIGH
				 0 320 IRQ_TYPE_LEVEL_HIGH
				 0 321 IRQ_TYPE_LEVEL_HIGH
				 0 322 IRQ_TYPE_LEVEL_HIGH
				 0 323 IRQ_TYPE_LEVEL_HIGH
				 0 324 IRQ_TYPE_LEVEL_HIGH
				 0 325 IRQ_TYPE_LEVEL_HIGH
				 0 326 IRQ_TYPE_LEVEL_HIGH
				 0 327 IRQ_TYPE_LEVEL_HIGH
				 0 328 IRQ_TYPE_LEVEL_HIGH
				 0 329 IRQ_TYPE_LEVEL_HIGH
				 0 330 IRQ_TYPE_LEVEL_HIGH
				 0 331 IRQ_TYPE_LEVEL_HIGH
				 0 332 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "error",
				"ch0", "ch1", "ch2", "ch3",
				"ch4", "ch5", "ch6", "ch7",
				"ch8", "ch9", "ch10", "ch11",
				"ch12";
		clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC0>;
		clock-names = "fck";
354
		power-domains = <&cpg_clocks>;
355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
		#dma-cells = <1>;
		dma-channels = <13>;
	};

	audma1: dma-controller@ec720000 {
		compatible = "renesas,rcar-dmac";
		reg = <0 0xec720000 0 0x10000>;
		interrupts =	<0 347 IRQ_TYPE_LEVEL_HIGH
				 0 333 IRQ_TYPE_LEVEL_HIGH
				 0 334 IRQ_TYPE_LEVEL_HIGH
				 0 335 IRQ_TYPE_LEVEL_HIGH
				 0 336 IRQ_TYPE_LEVEL_HIGH
				 0 337 IRQ_TYPE_LEVEL_HIGH
				 0 338 IRQ_TYPE_LEVEL_HIGH
				 0 339 IRQ_TYPE_LEVEL_HIGH
				 0 340 IRQ_TYPE_LEVEL_HIGH
				 0 341 IRQ_TYPE_LEVEL_HIGH
				 0 342 IRQ_TYPE_LEVEL_HIGH
				 0 343 IRQ_TYPE_LEVEL_HIGH
				 0 344 IRQ_TYPE_LEVEL_HIGH
				 0 345 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "error",
				"ch0", "ch1", "ch2", "ch3",
				"ch4", "ch5", "ch6", "ch7",
				"ch8", "ch9", "ch10", "ch11",
				"ch12";
		clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC1>;
		clock-names = "fck";
383
		power-domains = <&cpg_clocks>;
384 385 386 387
		#dma-cells = <1>;
		dma-channels = <13>;
	};

388 389 390 391 392 393 394
	usb_dmac0: dma-controller@e65a0000 {
		compatible = "renesas,usb-dmac";
		reg = <0 0xe65a0000 0 0x100>;
		interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH
			      0 109 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "ch0", "ch1";
		clocks = <&mstp3_clks R8A7790_CLK_USBDMAC0>;
395
		power-domains = <&cpg_clocks>;
396 397 398 399 400 401 402 403 404 405 406
		#dma-cells = <1>;
		dma-channels = <2>;
	};

	usb_dmac1: dma-controller@e65b0000 {
		compatible = "renesas,usb-dmac";
		reg = <0 0xe65b0000 0 0x100>;
		interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH
			      0 110 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "ch0", "ch1";
		clocks = <&mstp3_clks R8A7790_CLK_USBDMAC1>;
407
		power-domains = <&cpg_clocks>;
408 409 410 411
		#dma-cells = <1>;
		dma-channels = <2>;
	};

412 413 414 415 416
	i2c0: i2c@e6508000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,i2c-r8a7790";
		reg = <0 0xe6508000 0 0x40>;
417
		interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>;
418
		clocks = <&mstp9_clks R8A7790_CLK_I2C0>;
419
		power-domains = <&cpg_clocks>;
420 421 422 423 424 425 426 427
		status = "disabled";
	};

	i2c1: i2c@e6518000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,i2c-r8a7790";
		reg = <0 0xe6518000 0 0x40>;
428
		interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>;
429
		clocks = <&mstp9_clks R8A7790_CLK_I2C1>;
430
		power-domains = <&cpg_clocks>;
431 432 433 434 435 436 437 438
		status = "disabled";
	};

	i2c2: i2c@e6530000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,i2c-r8a7790";
		reg = <0 0xe6530000 0 0x40>;
439
		interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>;
440
		clocks = <&mstp9_clks R8A7790_CLK_I2C2>;
441
		power-domains = <&cpg_clocks>;
442 443 444 445 446 447 448 449
		status = "disabled";
	};

	i2c3: i2c@e6540000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,i2c-r8a7790";
		reg = <0 0xe6540000 0 0x40>;
450
		interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>;
451
		clocks = <&mstp9_clks R8A7790_CLK_I2C3>;
452
		power-domains = <&cpg_clocks>;
453 454 455
		status = "disabled";
	};

456 457 458 459 460 461 462
	iic0: i2c@e6500000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
		reg = <0 0xe6500000 0 0x425>;
		interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp3_clks R8A7790_CLK_IIC0>;
463 464
		dmas = <&dmac0 0x61>, <&dmac0 0x62>;
		dma-names = "tx", "rx";
465
		power-domains = <&cpg_clocks>;
466 467 468 469 470 471 472 473 474 475
		status = "disabled";
	};

	iic1: i2c@e6510000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
		reg = <0 0xe6510000 0 0x425>;
		interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp3_clks R8A7790_CLK_IIC1>;
476 477
		dmas = <&dmac0 0x65>, <&dmac0 0x66>;
		dma-names = "tx", "rx";
478
		power-domains = <&cpg_clocks>;
479 480 481 482 483 484 485 486 487 488
		status = "disabled";
	};

	iic2: i2c@e6520000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
		reg = <0 0xe6520000 0 0x425>;
		interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp3_clks R8A7790_CLK_IIC2>;
489 490
		dmas = <&dmac0 0x69>, <&dmac0 0x6a>;
		dma-names = "tx", "rx";
491
		power-domains = <&cpg_clocks>;
492 493 494 495 496 497 498 499 500 501
		status = "disabled";
	};

	iic3: i2c@e60b0000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
		reg = <0 0xe60b0000 0 0x425>;
		interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>;
502 503
		dmas = <&dmac0 0x77>, <&dmac0 0x78>;
		dma-names = "tx", "rx";
504
		power-domains = <&cpg_clocks>;
505 506 507
		status = "disabled";
	};

508
	mmcif0: mmc@ee200000 {
509
		compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
510
		reg = <0 0xee200000 0 0x80>;
511
		interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
512
		clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>;
513 514
		dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
		dma-names = "tx", "rx";
515
		power-domains = <&cpg_clocks>;
516 517
		reg-io-width = <4>;
		status = "disabled";
518
		max-frequency = <97500000>;
519 520
	};

521
	mmcif1: mmc@ee220000 {
522
		compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
523
		reg = <0 0xee220000 0 0x80>;
524
		interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
525
		clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>;
526 527
		dmas = <&dmac0 0xe1>, <&dmac0 0xe2>;
		dma-names = "tx", "rx";
528
		power-domains = <&cpg_clocks>;
529 530
		reg-io-width = <4>;
		status = "disabled";
531
		max-frequency = <97500000>;
532 533
	};

534 535 536 537
	pfc: pfc@e6060000 {
		compatible = "renesas,pfc-r8a7790";
		reg = <0 0xe6060000 0 0x250>;
	};
538

539
	sdhi0: sd@ee100000 {
540
		compatible = "renesas,sdhi-r8a7790";
541
		reg = <0 0xee100000 0 0x328>;
542
		interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
543
		clocks = <&mstp3_clks R8A7790_CLK_SDHI0>;
544 545
		dmas = <&dmac1 0xcd>, <&dmac1 0xce>;
		dma-names = "tx", "rx";
546
		power-domains = <&cpg_clocks>;
547 548 549
		status = "disabled";
	};

550
	sdhi1: sd@ee120000 {
551
		compatible = "renesas,sdhi-r8a7790";
552
		reg = <0 0xee120000 0 0x328>;
553
		interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>;
554
		clocks = <&mstp3_clks R8A7790_CLK_SDHI1>;
555 556
		dmas = <&dmac1 0xc9>, <&dmac1 0xca>;
		dma-names = "tx", "rx";
557
		power-domains = <&cpg_clocks>;
558 559 560
		status = "disabled";
	};

561
	sdhi2: sd@ee140000 {
562
		compatible = "renesas,sdhi-r8a7790";
563
		reg = <0 0xee140000 0 0x100>;
564
		interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>;
565
		clocks = <&mstp3_clks R8A7790_CLK_SDHI2>;
566 567
		dmas = <&dmac1 0xc1>, <&dmac1 0xc2>;
		dma-names = "tx", "rx";
568
		power-domains = <&cpg_clocks>;
569 570 571
		status = "disabled";
	};

572
	sdhi3: sd@ee160000 {
573
		compatible = "renesas,sdhi-r8a7790";
574
		reg = <0 0xee160000 0 0x100>;
575
		interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>;
576
		clocks = <&mstp3_clks R8A7790_CLK_SDHI3>;
577 578
		dmas = <&dmac1 0xd3>, <&dmac1 0xd4>;
		dma-names = "tx", "rx";
579
		power-domains = <&cpg_clocks>;
580 581
		status = "disabled";
	};
582

583
	scifa0: serial@e6c40000 {
584
		compatible = "renesas,scifa-r8a7790", "renesas,scifa";
585
		reg = <0 0xe6c40000 0 64>;
586
		interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
587 588
		clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>;
		clock-names = "sci_ick";
589 590
		dmas = <&dmac0 0x21>, <&dmac0 0x22>;
		dma-names = "tx", "rx";
591
		power-domains = <&cpg_clocks>;
592 593 594 595
		status = "disabled";
	};

	scifa1: serial@e6c50000 {
596
		compatible = "renesas,scifa-r8a7790", "renesas,scifa";
597
		reg = <0 0xe6c50000 0 64>;
598
		interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>;
599 600
		clocks = <&mstp2_clks R8A7790_CLK_SCIFA1>;
		clock-names = "sci_ick";
601 602
		dmas = <&dmac0 0x25>, <&dmac0 0x26>;
		dma-names = "tx", "rx";
603
		power-domains = <&cpg_clocks>;
604 605 606 607
		status = "disabled";
	};

	scifa2: serial@e6c60000 {
608
		compatible = "renesas,scifa-r8a7790", "renesas,scifa";
609
		reg = <0 0xe6c60000 0 64>;
610
		interrupts = <0 151 IRQ_TYPE_LEVEL_HIGH>;
611 612
		clocks = <&mstp2_clks R8A7790_CLK_SCIFA2>;
		clock-names = "sci_ick";
613 614
		dmas = <&dmac0 0x27>, <&dmac0 0x28>;
		dma-names = "tx", "rx";
615
		power-domains = <&cpg_clocks>;
616 617 618 619
		status = "disabled";
	};

	scifb0: serial@e6c20000 {
620
		compatible = "renesas,scifb-r8a7790", "renesas,scifb";
621
		reg = <0 0xe6c20000 0 64>;
622
		interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
623 624
		clocks = <&mstp2_clks R8A7790_CLK_SCIFB0>;
		clock-names = "sci_ick";
625 626
		dmas = <&dmac0 0x3d>, <&dmac0 0x3e>;
		dma-names = "tx", "rx";
627
		power-domains = <&cpg_clocks>;
628 629 630 631
		status = "disabled";
	};

	scifb1: serial@e6c30000 {
632
		compatible = "renesas,scifb-r8a7790", "renesas,scifb";
633
		reg = <0 0xe6c30000 0 64>;
634
		interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
635 636
		clocks = <&mstp2_clks R8A7790_CLK_SCIFB1>;
		clock-names = "sci_ick";
637 638
		dmas = <&dmac0 0x19>, <&dmac0 0x1a>;
		dma-names = "tx", "rx";
639
		power-domains = <&cpg_clocks>;
640 641 642 643
		status = "disabled";
	};

	scifb2: serial@e6ce0000 {
644
		compatible = "renesas,scifb-r8a7790", "renesas,scifb";
645
		reg = <0 0xe6ce0000 0 64>;
646
		interrupts = <0 150 IRQ_TYPE_LEVEL_HIGH>;
647 648
		clocks = <&mstp2_clks R8A7790_CLK_SCIFB2>;
		clock-names = "sci_ick";
649 650
		dmas = <&dmac0 0x1d>, <&dmac0 0x1e>;
		dma-names = "tx", "rx";
651
		power-domains = <&cpg_clocks>;
652 653 654 655
		status = "disabled";
	};

	scif0: serial@e6e60000 {
656
		compatible = "renesas,scif-r8a7790", "renesas,scif";
657
		reg = <0 0xe6e60000 0 64>;
658
		interrupts = <0 152 IRQ_TYPE_LEVEL_HIGH>;
659 660
		clocks = <&mstp7_clks R8A7790_CLK_SCIF0>;
		clock-names = "sci_ick";
661 662
		dmas = <&dmac0 0x29>, <&dmac0 0x2a>;
		dma-names = "tx", "rx";
663
		power-domains = <&cpg_clocks>;
664 665 666 667
		status = "disabled";
	};

	scif1: serial@e6e68000 {
668
		compatible = "renesas,scif-r8a7790", "renesas,scif";
669
		reg = <0 0xe6e68000 0 64>;
670
		interrupts = <0 153 IRQ_TYPE_LEVEL_HIGH>;
671 672
		clocks = <&mstp7_clks R8A7790_CLK_SCIF1>;
		clock-names = "sci_ick";
673 674
		dmas = <&dmac0 0x2d>, <&dmac0 0x2e>;
		dma-names = "tx", "rx";
675
		power-domains = <&cpg_clocks>;
676 677 678 679
		status = "disabled";
	};

	hscif0: serial@e62c0000 {
680
		compatible = "renesas,hscif-r8a7790", "renesas,hscif";
681
		reg = <0 0xe62c0000 0 96>;
682
		interrupts = <0 154 IRQ_TYPE_LEVEL_HIGH>;
683 684
		clocks = <&mstp7_clks R8A7790_CLK_HSCIF0>;
		clock-names = "sci_ick";
685 686
		dmas = <&dmac0 0x39>, <&dmac0 0x3a>;
		dma-names = "tx", "rx";
687
		power-domains = <&cpg_clocks>;
688 689 690 691
		status = "disabled";
	};

	hscif1: serial@e62c8000 {
692
		compatible = "renesas,hscif-r8a7790", "renesas,hscif";
693
		reg = <0 0xe62c8000 0 96>;
694
		interrupts = <0 155 IRQ_TYPE_LEVEL_HIGH>;
695 696
		clocks = <&mstp7_clks R8A7790_CLK_HSCIF1>;
		clock-names = "sci_ick";
697 698
		dmas = <&dmac0 0x4d>, <&dmac0 0x4e>;
		dma-names = "tx", "rx";
699
		power-domains = <&cpg_clocks>;
700 701 702
		status = "disabled";
	};

703 704 705 706 707
	ether: ethernet@ee700000 {
		compatible = "renesas,ether-r8a7790";
		reg = <0 0xee700000 0 0x400>;
		interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp8_clks R8A7790_CLK_ETHER>;
708
		power-domains = <&cpg_clocks>;
709 710 711 712 713 714
		phy-mode = "rmii";
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};

715 716 717 718 719
	avb: ethernet@e6800000 {
		compatible = "renesas,etheravb-r8a7790";
		reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
		interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp8_clks R8A7790_CLK_ETHERAVB>;
720
		power-domains = <&cpg_clocks>;
721 722 723 724 725
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};

726 727 728 729 730
	sata0: sata@ee300000 {
		compatible = "renesas,sata-r8a7790";
		reg = <0 0xee300000 0 0x2000>;
		interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp8_clks R8A7790_CLK_SATA0>;
731
		power-domains = <&cpg_clocks>;
732 733 734 735 736 737 738 739
		status = "disabled";
	};

	sata1: sata@ee500000 {
		compatible = "renesas,sata-r8a7790";
		reg = <0 0xee500000 0 0x2000>;
		interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp8_clks R8A7790_CLK_SATA1>;
740
		power-domains = <&cpg_clocks>;
741 742 743
		status = "disabled";
	};

744 745 746 747 748
	hsusb: usb@e6590000 {
		compatible = "renesas,usbhs-r8a7790";
		reg = <0 0xe6590000 0 0x100>;
		interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
749 750 751
		dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
		       <&usb_dmac1 0>, <&usb_dmac1 1>;
		dma-names = "ch0", "ch1", "ch2", "ch3";
752 753 754 755
		power-domains = <&cpg_clocks>;
		renesas,buswait = <4>;
		phys = <&usb0 1>;
		phy-names = "usb";
756 757 758
		status = "disabled";
	};

759 760 761 762 763 764 765
	usbphy: usb-phy@e6590100 {
		compatible = "renesas,usb-phy-r8a7790";
		reg = <0 0xe6590100 0 0x100>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
		clock-names = "usbhs";
766
		power-domains = <&cpg_clocks>;
767 768 769 770 771 772 773 774 775 776 777 778
		status = "disabled";

		usb0: usb-channel@0 {
			reg = <0>;
			#phy-cells = <1>;
		};
		usb2: usb-channel@2 {
			reg = <2>;
			#phy-cells = <1>;
		};
	};

779 780 781 782
	vin0: video@e6ef0000 {
		compatible = "renesas,vin-r8a7790";
		reg = <0 0xe6ef0000 0 0x1000>;
		interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
783 784
		clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
		power-domains = <&cpg_clocks>;
785 786 787 788 789 790 791
		status = "disabled";
	};

	vin1: video@e6ef1000 {
		compatible = "renesas,vin-r8a7790";
		reg = <0 0xe6ef1000 0 0x1000>;
		interrupts = <0 189 IRQ_TYPE_LEVEL_HIGH>;
792 793
		clocks = <&mstp8_clks R8A7790_CLK_VIN1>;
		power-domains = <&cpg_clocks>;
794 795 796 797 798 799 800
		status = "disabled";
	};

	vin2: video@e6ef2000 {
		compatible = "renesas,vin-r8a7790";
		reg = <0 0xe6ef2000 0 0x1000>;
		interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>;
801 802
		clocks = <&mstp8_clks R8A7790_CLK_VIN2>;
		power-domains = <&cpg_clocks>;
803 804 805 806 807 808 809
		status = "disabled";
	};

	vin3: video@e6ef3000 {
		compatible = "renesas,vin-r8a7790";
		reg = <0 0xe6ef3000 0 0x1000>;
		interrupts = <0 191 IRQ_TYPE_LEVEL_HIGH>;
810 811
		clocks = <&mstp8_clks R8A7790_CLK_VIN3>;
		power-domains = <&cpg_clocks>;
812 813 814
		status = "disabled";
	};

815 816 817 818 819
	vsp1@fe920000 {
		compatible = "renesas,vsp1";
		reg = <0 0xfe920000 0 0x8000>;
		interrupts = <0 266 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>;
820
		power-domains = <&cpg_clocks>;
821 822 823 824 825 826 827 828 829 830 831 832

		renesas,has-sru;
		renesas,#rpf = <5>;
		renesas,#uds = <1>;
		renesas,#wpf = <4>;
	};

	vsp1@fe928000 {
		compatible = "renesas,vsp1";
		reg = <0 0xfe928000 0 0x8000>;
		interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>;
833
		power-domains = <&cpg_clocks>;
834 835 836 837 838 839 840 841 842 843 844 845 846

		renesas,has-lut;
		renesas,has-sru;
		renesas,#rpf = <5>;
		renesas,#uds = <3>;
		renesas,#wpf = <4>;
	};

	vsp1@fe930000 {
		compatible = "renesas,vsp1";
		reg = <0 0xfe930000 0 0x8000>;
		interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>;
847
		power-domains = <&cpg_clocks>;
848 849 850 851 852 853 854 855 856 857 858 859 860

		renesas,has-lif;
		renesas,has-lut;
		renesas,#rpf = <4>;
		renesas,#uds = <1>;
		renesas,#wpf = <4>;
	};

	vsp1@fe938000 {
		compatible = "renesas,vsp1";
		reg = <0 0xfe938000 0 0x8000>;
		interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>;
861
		power-domains = <&cpg_clocks>;
862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908

		renesas,has-lif;
		renesas,has-lut;
		renesas,#rpf = <4>;
		renesas,#uds = <1>;
		renesas,#wpf = <4>;
	};

	du: display@feb00000 {
		compatible = "renesas,du-r8a7790";
		reg = <0 0xfeb00000 0 0x70000>,
		      <0 0xfeb90000 0 0x1c>,
		      <0 0xfeb94000 0 0x1c>;
		reg-names = "du", "lvds.0", "lvds.1";
		interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
			     <0 268 IRQ_TYPE_LEVEL_HIGH>,
			     <0 269 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp7_clks R8A7790_CLK_DU0>,
			 <&mstp7_clks R8A7790_CLK_DU1>,
			 <&mstp7_clks R8A7790_CLK_DU2>,
			 <&mstp7_clks R8A7790_CLK_LVDS0>,
			 <&mstp7_clks R8A7790_CLK_LVDS1>;
		clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
		status = "disabled";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				du_out_rgb: endpoint {
				};
			};
			port@1 {
				reg = <1>;
				du_out_lvds0: endpoint {
				};
			};
			port@2 {
				reg = <2>;
				du_out_lvds1: endpoint {
				};
			};
		};
	};

909 910 911 912 913 914 915
	can0: can@e6e80000 {
		compatible = "renesas,can-r8a7790";
		reg = <0 0xe6e80000 0 0x1000>;
		interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp9_clks R8A7790_CLK_RCAN0>,
			 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>;
		clock-names = "clkp1", "clkp2", "can_clk";
916
		power-domains = <&cpg_clocks>;
917 918 919 920 921 922 923 924 925 926
		status = "disabled";
	};

	can1: can@e6e88000 {
		compatible = "renesas,can-r8a7790";
		reg = <0 0xe6e88000 0 0x1000>;
		interrupts = <0 187 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp9_clks R8A7790_CLK_RCAN1>,
			 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>;
		clock-names = "clkp1", "clkp2", "can_clk";
927
		power-domains = <&cpg_clocks>;
928 929 930
		status = "disabled";
	};

931 932 933 934 935
	jpu: jpeg-codec@fe980000 {
		compatible = "renesas,jpu-r8a7790";
		reg = <0 0xfe980000 0 0x10300>;
		interrupts = <0 272 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp1_clks R8A7790_CLK_JPU>;
936
		power-domains = <&cpg_clocks>;
937 938
	};

939 940 941 942 943 944 945 946 947 948 949 950 951 952
	clocks {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		/* External root clock */
		extal_clk: extal_clk {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			/* This value must be overriden by the board. */
			clock-frequency = <0>;
			clock-output-names = "extal";
		};

953 954 955 956 957 958 959 960 961
		/* External PCIe clock - can be overridden by the board */
		pcie_bus_clk: pcie_bus_clk {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <100000000>;
			clock-output-names = "pcie_bus";
			status = "disabled";
		};

962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984
		/*
		 * The external audio clocks are configured as 0 Hz fixed frequency clocks by
		 * default. Boards that provide audio clocks should override them.
		 */
		audio_clk_a: audio_clk_a {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <0>;
			clock-output-names = "audio_clk_a";
		};
		audio_clk_b: audio_clk_b {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <0>;
			clock-output-names = "audio_clk_b";
		};
		audio_clk_c: audio_clk_c {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <0>;
			clock-output-names = "audio_clk_c";
		};

985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002
		/* External USB clock - can be overridden by the board */
		usb_extal_clk: usb_extal_clk {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <48000000>;
			clock-output-names = "usb_extal";
		};

		/* External CAN clock */
		can_clk: can_clk {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			/* This value must be overridden by the board. */
			clock-frequency = <0>;
			clock-output-names = "can_clk";
			status = "disabled";
		};

1003 1004 1005 1006 1007
		/* Special CPG clocks */
		cpg_clocks: cpg_clocks@e6150000 {
			compatible = "renesas,r8a7790-cpg-clocks",
				     "renesas,rcar-gen2-cpg-clocks";
			reg = <0 0xe6150000 0 0x1000>;
1008
			clocks = <&extal_clk &usb_extal_clk>;
1009 1010 1011
			#clock-cells = <1>;
			clock-output-names = "main", "pll0", "pll1", "pll3",
					     "lb", "qspi", "sdh", "sd0", "sd1",
1012
					     "z", "rcan", "adsp";
1013
			#power-domain-cells = <0>;
1014 1015 1016 1017 1018 1019 1020 1021 1022 1023
		};

		/* Variable factor clocks */
		sd2_clk: sd2_clk@e6150078 {
			compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
			reg = <0 0xe6150078 0 4>;
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-output-names = "sd2";
		};
1024
		sd3_clk: sd3_clk@e615026c {
1025
			compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
1026
			reg = <0 0xe615026c 0 4>;
1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-output-names = "sd3";
		};
		mmc0_clk: mmc0_clk@e6150240 {
			compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
			reg = <0 0xe6150240 0 4>;
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-output-names = "mmc0";
		};
		mmc1_clk: mmc1_clk@e6150244 {
			compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
			reg = <0 0xe6150244 0 4>;
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-output-names = "mmc1";
		};
		ssp_clk: ssp_clk@e6150248 {
			compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
			reg = <0 0xe6150248 0 4>;
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-output-names = "ssp";
		};
		ssprs_clk: ssprs_clk@e615024c {
			compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
			reg = <0 0xe615024c 0 4>;
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-output-names = "ssprs";
		};

		/* Fixed factor clocks */
		pll1_div2_clk: pll1_div2_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <2>;
			clock-mult = <1>;
			clock-output-names = "pll1_div2";
		};
		z2_clk: z2_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <2>;
			clock-mult = <1>;
			clock-output-names = "z2";
		};
		zg_clk: zg_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <3>;
			clock-mult = <1>;
			clock-output-names = "zg";
		};
		zx_clk: zx_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <3>;
			clock-mult = <1>;
			clock-output-names = "zx";
		};
		zs_clk: zs_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <6>;
			clock-mult = <1>;
			clock-output-names = "zs";
		};
		hp_clk: hp_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <12>;
			clock-mult = <1>;
			clock-output-names = "hp";
		};
		i_clk: i_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <2>;
			clock-mult = <1>;
			clock-output-names = "i";
		};
		b_clk: b_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <12>;
			clock-mult = <1>;
			clock-output-names = "b";
		};
		p_clk: p_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <24>;
			clock-mult = <1>;
			clock-output-names = "p";
		};
		cl_clk: cl_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <48>;
			clock-mult = <1>;
			clock-output-names = "cl";
		};
		m2_clk: m2_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <8>;
			clock-mult = <1>;
			clock-output-names = "m2";
		};
		imp_clk: imp_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <4>;
			clock-mult = <1>;
			clock-output-names = "imp";
		};
		rclk_clk: rclk_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <(48 * 1024)>;
			clock-mult = <1>;
			clock-output-names = "rclk";
		};
		oscclk_clk: oscclk_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
			#clock-cells = <0>;
			clock-div = <(12 * 1024)>;
			clock-mult = <1>;
			clock-output-names = "oscclk";
		};
		zb3_clk: zb3_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL3>;
			#clock-cells = <0>;
			clock-div = <4>;
			clock-mult = <1>;
			clock-output-names = "zb3";
		};
		zb3d2_clk: zb3d2_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL3>;
			#clock-cells = <0>;
			clock-div = <8>;
			clock-mult = <1>;
			clock-output-names = "zb3d2";
		};
		ddr_clk: ddr_clk {
			compatible = "fixed-factor-clock";
			clocks = <&cpg_clocks R8A7790_CLK_PLL3>;
			#clock-cells = <0>;
			clock-div = <8>;
			clock-mult = <1>;
			clock-output-names = "ddr";
		};
		mp_clk: mp_clk {
			compatible = "fixed-factor-clock";
			clocks = <&pll1_div2_clk>;
			#clock-cells = <0>;
			clock-div = <15>;
			clock-mult = <1>;
			clock-output-names = "mp";
		};
		cp_clk: cp_clk {
			compatible = "fixed-factor-clock";
			clocks = <&extal_clk>;
			#clock-cells = <0>;
			clock-div = <2>;
			clock-mult = <1>;
			clock-output-names = "cp";
		};

		/* Gate clocks */
1215 1216 1217 1218 1219
		mstp0_clks: mstp0_clks@e6150130 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>;
			clocks = <&mp_clk>;
			#clock-cells = <1>;
1220
			clock-indices = <R8A7790_CLK_MSIOF0>;
1221 1222
			clock-output-names = "msiof0";
		};
1223 1224 1225
		mstp1_clks: mstp1_clks@e6150134 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
1226 1227 1228 1229
			clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&m2_clk>,
				 <&zs_clk>, <&p_clk>, <&zg_clk>, <&zs_clk>, <&zs_clk>,
				 <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>,
				 <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>;
1230
			#clock-cells = <1>;
1231
			clock-indices = <
1232 1233 1234 1235 1236 1237 1238
				R8A7790_CLK_VCP1 R8A7790_CLK_VCP0 R8A7790_CLK_VPC1
				R8A7790_CLK_VPC0 R8A7790_CLK_JPU R8A7790_CLK_SSP1
				R8A7790_CLK_TMU1 R8A7790_CLK_3DG R8A7790_CLK_2DDMAC
				R8A7790_CLK_FDP1_2 R8A7790_CLK_FDP1_1 R8A7790_CLK_FDP1_0
				R8A7790_CLK_TMU3 R8A7790_CLK_TMU2 R8A7790_CLK_CMT0
				R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1 R8A7790_CLK_VSP1_DU0
				R8A7790_CLK_VSP1_R R8A7790_CLK_VSP1_S
1239 1240
			>;
			clock-output-names =
1241 1242 1243
				"vcp1", "vcp0", "vpc1", "vpc0", "jpu", "ssp1",
				"tmu1", "3dg", "2ddmac", "fdp1-2", "fdp1-1",
				"fdp1-0", "tmu3", "tmu2", "cmt0", "tmu0",
1244
				"vsp1-du1", "vsp1-du0", "vsp1-rt", "vsp1-sy";
1245 1246 1247 1248 1249
		};
		mstp2_clks: mstp2_clks@e6150138 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
			clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
1250 1251
				 <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&zs_clk>,
				 <&zs_clk>;
1252
			#clock-cells = <1>;
1253
			clock-indices = <
1254
				R8A7790_CLK_SCIFA2 R8A7790_CLK_SCIFA1 R8A7790_CLK_SCIFA0
1255 1256
				R8A7790_CLK_MSIOF2 R8A7790_CLK_SCIFB0 R8A7790_CLK_SCIFB1
				R8A7790_CLK_MSIOF1 R8A7790_CLK_MSIOF3 R8A7790_CLK_SCIFB2
1257
				R8A7790_CLK_SYS_DMAC1 R8A7790_CLK_SYS_DMAC0
1258 1259
			>;
			clock-output-names =
1260
				"scifa2", "scifa1", "scifa0", "msiof2", "scifb0",
1261 1262
				"scifb1", "msiof1", "msiof3", "scifb2",
				"sys-dmac1", "sys-dmac0";
1263 1264 1265 1266
		};
		mstp3_clks: mstp3_clks@e615013c {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
1267 1268
			clocks = <&hp_clk>, <&cp_clk>, <&mmc1_clk>, <&sd3_clk>,
				 <&sd2_clk>, <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, <&mmc0_clk>,
1269 1270
				 <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>,
				 <&hp_clk>, <&hp_clk>;
1271
			#clock-cells = <1>;
1272
			clock-indices = <
1273 1274
				R8A7790_CLK_IIC2 R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3
				R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 R8A7790_CLK_MMCIF0
1275
				R8A7790_CLK_IIC0 R8A7790_CLK_PCIEC R8A7790_CLK_IIC1 R8A7790_CLK_SSUSB R8A7790_CLK_CMT1
1276
				R8A7790_CLK_USBDMAC0 R8A7790_CLK_USBDMAC1
1277 1278
			>;
			clock-output-names =
1279 1280
				"iic2", "tpu0", "mmcif1", "sdhi3",
				"sdhi2", "sdhi1", "sdhi0", "mmcif0",
1281 1282
				"iic0", "pciec", "iic1", "ssusb", "cmt1",
				"usbdmac0", "usbdmac1";
1283
		};
1284 1285 1286 1287 1288 1289 1290 1291
		mstp4_clks: mstp4_clks@e6150140 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
			clocks = <&cp_clk>;
			#clock-cells = <1>;
			clock-indices = <R8A7790_CLK_IRQC>;
			clock-output-names = "irqc";
		};
1292 1293 1294
		mstp5_clks: mstp5_clks@e6150144 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
1295 1296
			clocks = <&hp_clk>, <&hp_clk>, <&cpg_clocks R8A7790_CLK_ADSP>,
				 <&extal_clk>, <&p_clk>;
1297
			#clock-cells = <1>;
1298 1299
			clock-indices = <
				R8A7790_CLK_AUDIO_DMAC0 R8A7790_CLK_AUDIO_DMAC1
1300 1301
				R8A7790_CLK_ADSP_MOD R8A7790_CLK_THERMAL
				R8A7790_CLK_PWM
1302
			>;
1303 1304
			clock-output-names = "audmac0", "audmac1", "adsp_mod",
					     "thermal", "pwm";
1305 1306 1307 1308
		};
		mstp7_clks: mstp7_clks@e615014c {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1309
			clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
1310 1311 1312
				 <&p_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>,
				 <&zx_clk>;
			#clock-cells = <1>;
1313
			clock-indices = <
1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325
				R8A7790_CLK_EHCI R8A7790_CLK_HSUSB R8A7790_CLK_HSCIF1
				R8A7790_CLK_HSCIF0 R8A7790_CLK_SCIF1 R8A7790_CLK_SCIF0
				R8A7790_CLK_DU2 R8A7790_CLK_DU1 R8A7790_CLK_DU0
				R8A7790_CLK_LVDS1 R8A7790_CLK_LVDS0
			>;
			clock-output-names =
				"ehci", "hsusb", "hscif1", "hscif0", "scif1",
				"scif0", "du2", "du1", "du0", "lvds1", "lvds0";
		};
		mstp8_clks: mstp8_clks@e6150990 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1326
			clocks = <&hp_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
1327 1328
			         <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>,
				 <&zs_clk>;
1329
			#clock-cells = <1>;
1330
			clock-indices = <
1331
				R8A7790_CLK_MLB R8A7790_CLK_VIN3 R8A7790_CLK_VIN2
1332 1333
				R8A7790_CLK_VIN1 R8A7790_CLK_VIN0
				R8A7790_CLK_ETHERAVB R8A7790_CLK_ETHER
1334
				R8A7790_CLK_SATA1 R8A7790_CLK_SATA0
1335
			>;
1336
			clock-output-names =
1337 1338
				"mlb", "vin3", "vin2", "vin1", "vin0",
				"etheravb", "ether", "sata1", "sata0";
1339 1340 1341 1342
		};
		mstp9_clks: mstp9_clks@e6150994 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
1343 1344 1345
			clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>,
				 <&cp_clk>, <&cp_clk>, <&cp_clk>,
				 <&p_clk>, <&p_clk>, <&cpg_clocks R8A7790_CLK_QSPI>, <&cp_clk>,
1346
				 <&hp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>;
1347
			#clock-cells = <1>;
1348
			clock-indices = <
1349 1350
				R8A7790_CLK_GPIO5 R8A7790_CLK_GPIO4 R8A7790_CLK_GPIO3
				R8A7790_CLK_GPIO2 R8A7790_CLK_GPIO1 R8A7790_CLK_GPIO0
1351 1352
				R8A7790_CLK_RCAN1 R8A7790_CLK_RCAN0 R8A7790_CLK_QSPI_MOD R8A7790_CLK_IICDVFS
				R8A7790_CLK_I2C3 R8A7790_CLK_I2C2 R8A7790_CLK_I2C1 R8A7790_CLK_I2C0
1353
			>;
1354
			clock-output-names =
1355
				"gpio5", "gpio4", "gpio3", "gpio2", "gpio1", "gpio0",
1356 1357
				"rcan1", "rcan0", "qspi_mod", "iic3",
				"i2c3", "i2c2", "i2c1", "i2c0";
1358
		};
1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370
		mstp10_clks: mstp10_clks@e6150998 {
			compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
			reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
			clocks = <&p_clk>,
				<&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
				<&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
				<&p_clk>,
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1371
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1372 1373 1374 1375 1376 1377 1378 1379 1380
				<&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>;

			#clock-cells = <1>;
			clock-indices = <
				R8A7790_CLK_SSI_ALL
				R8A7790_CLK_SSI9 R8A7790_CLK_SSI8 R8A7790_CLK_SSI7 R8A7790_CLK_SSI6 R8A7790_CLK_SSI5
				R8A7790_CLK_SSI4 R8A7790_CLK_SSI3 R8A7790_CLK_SSI2 R8A7790_CLK_SSI1 R8A7790_CLK_SSI0
				R8A7790_CLK_SCU_ALL
				R8A7790_CLK_SCU_DVC1 R8A7790_CLK_SCU_DVC0
1381
				R8A7790_CLK_SCU_CTU1_MIX1 R8A7790_CLK_SCU_CTU0_MIX0
1382 1383 1384 1385 1386 1387 1388 1389 1390
				R8A7790_CLK_SCU_SRC9 R8A7790_CLK_SCU_SRC8 R8A7790_CLK_SCU_SRC7 R8A7790_CLK_SCU_SRC6 R8A7790_CLK_SCU_SRC5
				R8A7790_CLK_SCU_SRC4 R8A7790_CLK_SCU_SRC3 R8A7790_CLK_SCU_SRC2 R8A7790_CLK_SCU_SRC1 R8A7790_CLK_SCU_SRC0
			>;
			clock-output-names =
				"ssi-all",
				"ssi9", "ssi8", "ssi7", "ssi6", "ssi5",
				"ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
				"scu-all",
				"scu-dvc1", "scu-dvc0",
1391
				"scu-ctu1-mix1", "scu-ctu0-mix0",
1392 1393 1394
				"scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
				"scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
		};
1395
	};
1396

1397
	qspi: spi@e6b10000 {
1398 1399 1400 1401
		compatible = "renesas,qspi-r8a7790", "renesas,qspi";
		reg = <0 0xe6b10000 0 0x2c>;
		interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp9_clks R8A7790_CLK_QSPI_MOD>;
1402 1403
		dmas = <&dmac0 0x17>, <&dmac0 0x18>;
		dma-names = "tx", "rx";
1404
		power-domains = <&cpg_clocks>;
1405 1406 1407 1408 1409
		num-cs = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};
1410 1411 1412

	msiof0: spi@e6e20000 {
		compatible = "renesas,msiof-r8a7790";
1413
		reg = <0 0xe6e20000 0 0x0064>;
1414 1415
		interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>;
1416 1417
		dmas = <&dmac0 0x51>, <&dmac0 0x52>;
		dma-names = "tx", "rx";
1418
		power-domains = <&cpg_clocks>;
1419 1420 1421 1422 1423 1424 1425
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};

	msiof1: spi@e6e10000 {
		compatible = "renesas,msiof-r8a7790";
1426
		reg = <0 0xe6e10000 0 0x0064>;
1427 1428
		interrupts = <0 157 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>;
1429 1430
		dmas = <&dmac0 0x55>, <&dmac0 0x56>;
		dma-names = "tx", "rx";
1431
		power-domains = <&cpg_clocks>;
1432 1433 1434 1435 1436 1437 1438
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};

	msiof2: spi@e6e00000 {
		compatible = "renesas,msiof-r8a7790";
1439
		reg = <0 0xe6e00000 0 0x0064>;
1440 1441
		interrupts = <0 158 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>;
1442 1443
		dmas = <&dmac0 0x41>, <&dmac0 0x42>;
		dma-names = "tx", "rx";
1444
		power-domains = <&cpg_clocks>;
1445 1446 1447 1448 1449 1450 1451
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};

	msiof3: spi@e6c90000 {
		compatible = "renesas,msiof-r8a7790";
1452
		reg = <0 0xe6c90000 0 0x0064>;
1453 1454
		interrupts = <0 159 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>;
1455 1456
		dmas = <&dmac0 0x45>, <&dmac0 0x46>;
		dma-names = "tx", "rx";
1457
		power-domains = <&cpg_clocks>;
1458 1459 1460 1461
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};
1462

1463 1464 1465 1466 1467
	xhci: usb@ee000000 {
		compatible = "renesas,xhci-r8a7790";
		reg = <0 0xee000000 0 0xc00>;
		interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp3_clks R8A7790_CLK_SSUSB>;
1468
		power-domains = <&cpg_clocks>;
1469 1470 1471 1472 1473
		phys = <&usb2 1>;
		phy-names = "usb";
		status = "disabled";
	};

1474 1475 1476 1477 1478 1479
	pci0: pci@ee090000 {
		compatible = "renesas,pci-r8a7790";
		device_type = "pci";
		reg = <0 0xee090000 0 0xc00>,
		      <0 0xee080000 0 0x1100>;
		interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
1480 1481
		clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
		power-domains = <&cpg_clocks>;
1482 1483 1484 1485 1486 1487 1488 1489 1490
		status = "disabled";

		bus-range = <0 0>;
		#address-cells = <3>;
		#size-cells = <2>;
		#interrupt-cells = <1>;
		ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>;
		interrupt-map-mask = <0xff00 0 0 0x7>;
		interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
1491 1492
				 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
				 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>;
1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506

		usb@0,1 {
			reg = <0x800 0 0 0 0>;
			device_type = "pci";
			phys = <&usb0 0>;
			phy-names = "usb";
		};

		usb@0,2 {
			reg = <0x1000 0 0 0 0>;
			device_type = "pci";
			phys = <&usb0 0>;
			phy-names = "usb";
		};
1507 1508 1509 1510 1511 1512 1513 1514
	};

	pci1: pci@ee0b0000 {
		compatible = "renesas,pci-r8a7790";
		device_type = "pci";
		reg = <0 0xee0b0000 0 0xc00>,
		      <0 0xee0a0000 0 0x1100>;
		interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
1515 1516
		clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
		power-domains = <&cpg_clocks>;
1517 1518 1519 1520 1521 1522 1523 1524 1525
		status = "disabled";

		bus-range = <1 1>;
		#address-cells = <3>;
		#size-cells = <2>;
		#interrupt-cells = <1>;
		ranges = <0x02000000 0 0xee0a0000 0 0xee0a0000 0 0x00010000>;
		interrupt-map-mask = <0xff00 0 0 0x7>;
		interrupt-map = <0x0000 0 0 1 &gic 0 112 IRQ_TYPE_LEVEL_HIGH
1526 1527
				 0x0800 0 0 1 &gic 0 112 IRQ_TYPE_LEVEL_HIGH
				 0x1000 0 0 2 &gic 0 112 IRQ_TYPE_LEVEL_HIGH>;
1528 1529 1530 1531 1532 1533
	};

	pci2: pci@ee0d0000 {
		compatible = "renesas,pci-r8a7790";
		device_type = "pci";
		clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
1534
		power-domains = <&cpg_clocks>;
1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546
		reg = <0 0xee0d0000 0 0xc00>,
		      <0 0xee0c0000 0 0x1100>;
		interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
		status = "disabled";

		bus-range = <2 2>;
		#address-cells = <3>;
		#size-cells = <2>;
		#interrupt-cells = <1>;
		ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>;
		interrupt-map-mask = <0xff00 0 0 0x7>;
		interrupt-map = <0x0000 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
1547 1548
				 0x0800 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
				 0x1000 0 0 2 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>;
1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562

		usb@0,1 {
			reg = <0x800 0 0 0 0>;
			device_type = "pci";
			phys = <&usb2 0>;
			phy-names = "usb";
		};

		usb@0,2 {
			reg = <0x1000 0 0 0 0>;
			device_type = "pci";
			phys = <&usb2 0>;
			phy-names = "usb";
		};
1563 1564
	};

1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586
	pciec: pcie@fe000000 {
		compatible = "renesas,pcie-r8a7790";
		reg = <0 0xfe000000 0 0x80000>;
		#address-cells = <3>;
		#size-cells = <2>;
		bus-range = <0x00 0xff>;
		device_type = "pci";
		ranges = <0x01000000 0 0x00000000 0 0xfe100000 0 0x00100000
			  0x02000000 0 0xfe200000 0 0xfe200000 0 0x00200000
			  0x02000000 0 0x30000000 0 0x30000000 0 0x08000000
			  0x42000000 0 0x38000000 0 0x38000000 0 0x08000000>;
		/* Map all possible DDR as inbound ranges */
		dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000
			      0x43000000 1 0x80000000 1 0x80000000 0 0x80000000>;
		interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>,
			     <0 117 IRQ_TYPE_LEVEL_HIGH>,
			     <0 118 IRQ_TYPE_LEVEL_HIGH>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0 0 0 0>;
		interrupt-map = <0 0 0 0 &gic 0 116 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp3_clks R8A7790_CLK_PCIEC>, <&pcie_bus_clk>;
		clock-names = "pcie", "pcie_bus";
1587
		power-domains = <&cpg_clocks>;
1588 1589 1590
		status = "disabled";
	};

1591
	rcar_sound: sound@ec500000 {
1592 1593 1594 1595 1596 1597
		/*
		 * #sound-dai-cells is required
		 *
		 * Single DAI : #sound-dai-cells = <0>;         <&rcar_sound>;
		 * Multi  DAI : #sound-dai-cells = <1>;         <&rcar_sound N>;
		 */
1598
		compatible =  "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
1599 1600 1601
		reg =	<0 0xec500000 0 0x1000>, /* SCU */
			<0 0xec5a0000 0 0x100>,  /* ADG */
			<0 0xec540000 0 0x1000>, /* SSIU */
1602 1603 1604
			<0 0xec541000 0 0x1280>, /* SSI */
			<0 0xec740000 0 0x200>;  /* Audio DMAC peri peri*/
		reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1605

1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616
		clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>,
			<&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>,
			<&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>,
			<&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>,
			<&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>,
			<&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>,
			<&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>,
			<&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>,
			<&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
			<&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
			<&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
1617
			<&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>,
1618
			<&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>,
1619
			<&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
1620 1621 1622 1623 1624 1625
			<&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
		clock-names = "ssi-all",
				"ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
				"ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
				"src.9", "src.8", "src.7", "src.6", "src.5",
				"src.4", "src.3", "src.2", "src.1", "src.0",
1626
				"ctu.0", "ctu.1",
1627
				"mix.0", "mix.1",
1628
				"dvc.0", "dvc.1",
1629
				"clk_a", "clk_b", "clk_c", "clk_i";
1630
		power-domains = <&cpg_clocks>;
1631 1632 1633

		status = "disabled";

1634
		rcar_sound,dvc {
1635 1636 1637 1638 1639 1640 1641 1642
			dvc0: dvc@0 {
				dmas = <&audma0 0xbc>;
				dma-names = "tx";
			};
			dvc1: dvc@1 {
				dmas = <&audma0 0xbe>;
				dma-names = "tx";
			};
1643 1644
		};

1645 1646 1647 1648 1649
		rcar_sound,mix {
			mix0: mix@0 { };
			mix1: mix@1 { };
		};

1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660
		rcar_sound,ctu {
			ctu00: ctu@0 { };
			ctu01: ctu@1 { };
			ctu02: ctu@2 { };
			ctu03: ctu@3 { };
			ctu10: ctu@4 { };
			ctu11: ctu@5 { };
			ctu12: ctu@6 { };
			ctu13: ctu@7 { };
		};

1661
		rcar_sound,src {
1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711
			src0: src@0 {
				interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x85>, <&audma1 0x9a>;
				dma-names = "rx", "tx";
			};
			src1: src@1 {
				interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x87>, <&audma1 0x9c>;
				dma-names = "rx", "tx";
			};
			src2: src@2 {
				interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x89>, <&audma1 0x9e>;
				dma-names = "rx", "tx";
			};
			src3: src@3 {
				interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x8b>, <&audma1 0xa0>;
				dma-names = "rx", "tx";
			};
			src4: src@4 {
				interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x8d>, <&audma1 0xb0>;
				dma-names = "rx", "tx";
			};
			src5: src@5 {
				interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x8f>, <&audma1 0xb2>;
				dma-names = "rx", "tx";
			};
			src6: src@6 {
				interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x91>, <&audma1 0xb4>;
				dma-names = "rx", "tx";
			};
			src7: src@7 {
				interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x93>, <&audma1 0xb6>;
				dma-names = "rx", "tx";
			};
			src8: src@8 {
				interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x95>, <&audma1 0xb8>;
				dma-names = "rx", "tx";
			};
			src9: src@9 {
				interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x97>, <&audma1 0xba>;
				dma-names = "rx", "tx";
			};
1712 1713 1714
		};

		rcar_sound,ssi {
1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764
			ssi0: ssi@0 {
				interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi1: ssi@1 {
				 interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi2: ssi@2 {
				interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi3: ssi@3 {
				interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi4: ssi@4 {
				interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi5: ssi@5 {
				interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi6: ssi@6 {
				interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi7: ssi@7 {
				interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi8: ssi@8 {
				interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
			ssi9: ssi@9 {
				interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
				dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
				dma-names = "rx", "tx", "rxu", "txu";
			};
1765 1766
		};
	};
1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817

	ipmmu_sy0: mmu@e6280000 {
		compatible = "renesas,ipmmu-vmsa";
		reg = <0 0xe6280000 0 0x1000>;
		interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>,
			     <0 224 IRQ_TYPE_LEVEL_HIGH>;
		#iommu-cells = <1>;
		status = "disabled";
	};

	ipmmu_sy1: mmu@e6290000 {
		compatible = "renesas,ipmmu-vmsa";
		reg = <0 0xe6290000 0 0x1000>;
		interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>;
		#iommu-cells = <1>;
		status = "disabled";
	};

	ipmmu_ds: mmu@e6740000 {
		compatible = "renesas,ipmmu-vmsa";
		reg = <0 0xe6740000 0 0x1000>;
		interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
			     <0 199 IRQ_TYPE_LEVEL_HIGH>;
		#iommu-cells = <1>;
		status = "disabled";
	};

	ipmmu_mp: mmu@ec680000 {
		compatible = "renesas,ipmmu-vmsa";
		reg = <0 0xec680000 0 0x1000>;
		interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>;
		#iommu-cells = <1>;
		status = "disabled";
	};

	ipmmu_mx: mmu@fe951000 {
		compatible = "renesas,ipmmu-vmsa";
		reg = <0 0xfe951000 0 0x1000>;
		interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
			     <0 221 IRQ_TYPE_LEVEL_HIGH>;
		#iommu-cells = <1>;
		status = "disabled";
	};

	ipmmu_rt: mmu@ffc80000 {
		compatible = "renesas,ipmmu-vmsa";
		reg = <0 0xffc80000 0 0x1000>;
		interrupts = <0 307 IRQ_TYPE_LEVEL_HIGH>;
		#iommu-cells = <1>;
		status = "disabled";
	};
1818
};