Home | History | Annotate | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0
      2 /*
      3  * Device Tree Source for the Porter board
      4  *
      5  * Copyright (C) 2015 Cogent Embedded, Inc.
      6  */
      7 
      8 /*
      9  * SSI-AK4642
     10  *
     11  * JP3: 2-1: AK4642
     12  *      2-3: ADV7511
     13  *
     14  * This command is required before playback/capture:
     15  *
     16  *	amixer set "LINEOUT Mixer DACL" on
     17  */
     18 
     19 /dts-v1/;
     20 #include "r8a7791.dtsi"
     21 #include <dt-bindings/gpio/gpio.h>
     22 
     23 / {
     24 	model = "Porter";
     25 	compatible = "renesas,porter", "renesas,r8a7791";
     26 
     27 	aliases {
     28 		serial0 = &scif0;
     29 		i2c9 = &gpioi2c2;
     30 		i2c10 = &i2chdmi;
     31 	};
     32 
     33 	chosen {
     34 		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
     35 		stdout-path = "serial0:115200n8";
     36 	};
     37 
     38 	memory@40000000 {
     39 		device_type = "memory";
     40 		reg = <0 0x40000000 0 0x40000000>;
     41 	};
     42 
     43 	memory@200000000 {
     44 		device_type = "memory";
     45 		reg = <2 0x00000000 0 0x40000000>;
     46 	};
     47 
     48 	vcc_sdhi0: regulator-vcc-sdhi0 {
     49 		compatible = "regulator-fixed";
     50 
     51 		regulator-name = "SDHI0 Vcc";
     52 		regulator-min-microvolt = <3300000>;
     53 		regulator-max-microvolt = <3300000>;
     54 		regulator-always-on;
     55 	};
     56 
     57 	vccq_sdhi0: regulator-vccq-sdhi0 {
     58 		compatible = "regulator-gpio";
     59 
     60 		regulator-name = "SDHI0 VccQ";
     61 		regulator-min-microvolt = <1800000>;
     62 		regulator-max-microvolt = <3300000>;
     63 
     64 		gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
     65 		gpios-states = <1>;
     66 		states = <3300000 1
     67 			  1800000 0>;
     68 	};
     69 
     70 	vcc_sdhi2: regulator-vcc-sdhi2 {
     71 		compatible = "regulator-fixed";
     72 
     73 		regulator-name = "SDHI2 Vcc";
     74 		regulator-min-microvolt = <3300000>;
     75 		regulator-max-microvolt = <3300000>;
     76 		regulator-always-on;
     77 	};
     78 
     79 	vccq_sdhi2: regulator-vccq-sdhi2 {
     80 		compatible = "regulator-gpio";
     81 
     82 		regulator-name = "SDHI2 VccQ";
     83 		regulator-min-microvolt = <1800000>;
     84 		regulator-max-microvolt = <3300000>;
     85 
     86 		gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
     87 		gpios-states = <1>;
     88 		states = <3300000 1
     89 			  1800000 0>;
     90 	};
     91 
     92 	hdmi-out {
     93 		compatible = "hdmi-connector";
     94 		type = "a";
     95 
     96 		port {
     97 			hdmi_con: endpoint {
     98 				remote-endpoint = <&adv7511_out>;
     99 			};
    100 		};
    101 	};
    102 
    103 	x3_clk: x3-clock {
    104 		compatible = "fixed-clock";
    105 		#clock-cells = <0>;
    106 		clock-frequency = <148500000>;
    107 	};
    108 
    109 	x16_clk: x16-clock {
    110 		compatible = "fixed-clock";
    111 		#clock-cells = <0>;
    112 		clock-frequency = <74250000>;
    113 	};
    114 
    115 	x14_clk: audio_clock {
    116 		compatible = "fixed-clock";
    117 		#clock-cells = <0>;
    118 		clock-frequency = <11289600>;
    119 	};
    120 
    121 	sound {
    122 		compatible = "simple-audio-card";
    123 
    124 		simple-audio-card,format = "left_j";
    125 		simple-audio-card,bitclock-master = <&soundcodec>;
    126 		simple-audio-card,frame-master = <&soundcodec>;
    127 
    128 		simple-audio-card,cpu {
    129 			sound-dai = <&rcar_sound>;
    130 		};
    131 
    132 		soundcodec: simple-audio-card,codec {
    133 			sound-dai = <&ak4642>;
    134 			clocks = <&x14_clk>;
    135 		};
    136 	};
    137 
    138 	gpioi2c2: i2c-9 {
    139 		#address-cells = <1>;
    140 		#size-cells = <0>;
    141 		compatible = "i2c-gpio";
    142 		status = "disabled";
    143 		scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
    144 		sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
    145 		i2c-gpio,delay-us = <5>;
    146 	};
    147 
    148 	/*
    149 	 * A fallback to GPIO is provided for I2C2.
    150 	 */
    151 	i2chdmi: i2c-10 {
    152 		compatible = "i2c-demux-pinctrl";
    153 		i2c-parent = <&i2c2>, <&gpioi2c2>;
    154 		i2c-bus-name = "i2c-hdmi";
    155 		#address-cells = <1>;
    156 		#size-cells = <0>;
    157 
    158 		ak4642: codec@12 {
    159 			compatible = "asahi-kasei,ak4642";
    160 			#sound-dai-cells = <0>;
    161 			reg = <0x12>;
    162 		};
    163 
    164 		composite-in@20 {
    165 			compatible = "adi,adv7180";
    166 			reg = <0x20>;
    167 			remote = <&vin0>;
    168 
    169 			port {
    170 				adv7180: endpoint {
    171 					bus-width = <8>;
    172 					remote-endpoint = <&vin0ep>;
    173 				};
    174 			};
    175 		};
    176 
    177 		hdmi@39 {
    178 			compatible = "adi,adv7511w";
    179 			reg = <0x39>;
    180 			interrupt-parent = <&gpio3>;
    181 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
    182 
    183 			adi,input-depth = <8>;
    184 			adi,input-colorspace = "rgb";
    185 			adi,input-clock = "1x";
    186 			adi,input-style = <1>;
    187 			adi,input-justification = "evenly";
    188 
    189 			ports {
    190 				#address-cells = <1>;
    191 				#size-cells = <0>;
    192 
    193 				port@0 {
    194 					reg = <0>;
    195 					adv7511_in: endpoint {
    196 						remote-endpoint = <&du_out_rgb>;
    197 					};
    198 				};
    199 
    200 				port@1 {
    201 					reg = <1>;
    202 					adv7511_out: endpoint {
    203 						remote-endpoint = <&hdmi_con>;
    204 					};
    205 				};
    206 			};
    207 		};
    208 	};
    209 };
    210 
    211 &extal_clk {
    212 	clock-frequency = <20000000>;
    213 };
    214 
    215 &pfc {
    216 	scif0_pins: scif0 {
    217 		groups = "scif0_data_d";
    218 		function = "scif0";
    219 	};
    220 
    221 	ether_pins: ether {
    222 		groups = "eth_link", "eth_mdio", "eth_rmii";
    223 		function = "eth";
    224 	};
    225 
    226 	phy1_pins: phy1 {
    227 		groups = "intc_irq0";
    228 		function = "intc";
    229 	};
    230 
    231 	sdhi0_pins: sd0 {
    232 		groups = "sdhi0_data4", "sdhi0_ctrl";
    233 		function = "sdhi0";
    234 	};
    235 
    236 	sdhi2_pins: sd2 {
    237 		groups = "sdhi2_data4", "sdhi2_ctrl";
    238 		function = "sdhi2";
    239 	};
    240 
    241 	qspi_pins: qspi {
    242 		groups = "qspi_ctrl", "qspi_data4";
    243 		function = "qspi";
    244 	};
    245 
    246 	i2c2_pins: i2c2 {
    247 		groups = "i2c2";
    248 		function = "i2c2";
    249 	};
    250 
    251 	usb0_pins: usb0 {
    252 		groups = "usb0";
    253 		function = "usb0";
    254 	};
    255 
    256 	usb1_pins: usb1 {
    257 		groups = "usb1";
    258 		function = "usb1";
    259 	};
    260 
    261 	vin0_pins: vin0 {
    262 		groups = "vin0_data8", "vin0_clk";
    263 		function = "vin0";
    264 	};
    265 
    266 	can0_pins: can0 {
    267 		groups = "can0_data";
    268 		function = "can0";
    269 	};
    270 
    271 	du_pins: du {
    272 		groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
    273 		function = "du";
    274 	};
    275 
    276 	ssi_pins: sound {
    277 		groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
    278 		function = "ssi";
    279 	};
    280 
    281 	audio_clk_pins: audio_clk {
    282 		groups = "audio_clk_a";
    283 		function = "audio_clk";
    284 	};
    285 };
    286 
    287 &scif0 {
    288 	pinctrl-0 = <&scif0_pins>;
    289 	pinctrl-names = "default";
    290 
    291 	status = "okay";
    292 };
    293 
    294 &ether {
    295 	pinctrl-0 = <&ether_pins &phy1_pins>;
    296 	pinctrl-names = "default";
    297 
    298 	phy-handle = <&phy1>;
    299 	renesas,ether-link-active-low;
    300 	status = "okay";
    301 
    302 	phy1: ethernet-phy@1 {
    303 		reg = <1>;
    304 		interrupt-parent = <&irqc0>;
    305 		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
    306 		micrel,led-mode = <1>;
    307 	};
    308 };
    309 
    310 &sdhi0 {
    311 	pinctrl-0 = <&sdhi0_pins>;
    312 	pinctrl-names = "default";
    313 
    314 	vmmc-supply = <&vcc_sdhi0>;
    315 	vqmmc-supply = <&vccq_sdhi0>;
    316 	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
    317 	wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
    318 	status = "okay";
    319 };
    320 
    321 &sdhi2 {
    322 	pinctrl-0 = <&sdhi2_pins>;
    323 	pinctrl-names = "default";
    324 
    325 	vmmc-supply = <&vcc_sdhi2>;
    326 	vqmmc-supply = <&vccq_sdhi2>;
    327 	cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
    328 	status = "okay";
    329 };
    330 
    331 &qspi {
    332 	pinctrl-0 = <&qspi_pins>;
    333 	pinctrl-names = "default";
    334 
    335 	status = "okay";
    336 
    337 	flash@0 {
    338 		compatible = "spansion,s25fl512s", "jedec,spi-nor";
    339 		reg = <0>;
    340 		spi-max-frequency = <30000000>;
    341 		spi-tx-bus-width = <4>;
    342 		spi-rx-bus-width = <4>;
    343 		m25p,fast-read;
    344 
    345 		partitions {
    346 			compatible = "fixed-partitions";
    347 			#address-cells = <1>;
    348 			#size-cells = <1>;
    349 
    350 			partition@0 {
    351 				label = "loader_prg";
    352 				reg = <0x00000000 0x00040000>;
    353 				read-only;
    354 			};
    355 			partition@40000 {
    356 				label = "user_prg";
    357 				reg = <0x00040000 0x00400000>;
    358 				read-only;
    359 			};
    360 			partition@440000 {
    361 				label = "flash_fs";
    362 				reg = <0x00440000 0x03bc0000>;
    363 			};
    364 		};
    365 	};
    366 };
    367 
    368 &i2c2 {
    369 	pinctrl-0 = <&i2c2_pins>;
    370 	pinctrl-names = "i2c-hdmi";
    371 
    372 	clock-frequency = <400000>;
    373 };
    374 
    375 &sata0 {
    376 	status = "okay";
    377 };
    378 
    379 /* composite video input */
    380 &vin0 {
    381 	status = "okay";
    382 	pinctrl-0 = <&vin0_pins>;
    383 	pinctrl-names = "default";
    384 
    385 	port {
    386 		#address-cells = <1>;
    387 		#size-cells = <0>;
    388 
    389 		vin0ep: endpoint {
    390 			remote-endpoint = <&adv7180>;
    391 			bus-width = <8>;
    392 		};
    393 	};
    394 };
    395 
    396 &pci0 {
    397 	pinctrl-0 = <&usb0_pins>;
    398 	pinctrl-names = "default";
    399 
    400 	status = "okay";
    401 };
    402 
    403 &pci1 {
    404 	pinctrl-0 = <&usb1_pins>;
    405 	pinctrl-names = "default";
    406 
    407 	status = "okay";
    408 };
    409 
    410 &hsusb {
    411 	pinctrl-0 = <&usb0_pins>;
    412 	pinctrl-names = "default";
    413 
    414 	status = "okay";
    415 };
    416 
    417 &usbphy {
    418 	status = "okay";
    419 };
    420 
    421 &pcie_bus_clk {
    422 	clock-frequency = <100000000>;
    423 };
    424 
    425 &pciec {
    426 	status = "okay";
    427 };
    428 
    429 &can0 {
    430 	pinctrl-0 = <&can0_pins>;
    431 	pinctrl-names = "default";
    432 
    433 	status = "okay";
    434 };
    435 
    436 &du {
    437 	pinctrl-0 = <&du_pins>;
    438 	pinctrl-names = "default";
    439 	status = "okay";
    440 
    441 	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
    442 		 <&x3_clk>, <&x16_clk>;
    443 	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
    444 
    445 	ports {
    446 		port@0 {
    447 			endpoint {
    448 				remote-endpoint = <&adv7511_in>;
    449 			};
    450 		};
    451 	};
    452 };
    453 
    454 &lvds0 {
    455 	status = "okay";
    456 
    457 	ports {
    458 		port@1 {
    459 			lvds_connector: endpoint {
    460 			};
    461 		};
    462 	};
    463 };
    464 
    465 &rcar_sound {
    466 	pinctrl-0 = <&ssi_pins &audio_clk_pins>;
    467 	pinctrl-names = "default";
    468 	status = "okay";
    469 
    470 	/* Single DAI */
    471 	#sound-dai-cells = <0>;
    472 
    473 	rcar_sound,dai {
    474 		dai0 {
    475 			playback = <&ssi0>;
    476 			capture  = <&ssi1>;
    477 		};
    478 	};
    479 };
    480 
    481 &ssi1 {
    482 	shared-pin;
    483 };
    484