r8a7796-salvator-x.dts 5.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
/*
 * Device Tree Source for the Salvator-X board
 *
 * Copyright (C) 2016 Renesas Electronics Corp.
 *
 * 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.
 */

/dts-v1/;
#include "r8a7796.dtsi"
13
#include <dt-bindings/gpio/gpio.h>
14 15 16 17 18 19 20

/ {
	model = "Renesas Salvator-X board based on r8a7796";
	compatible = "renesas,salvator-x", "renesas,r8a7796";

	aliases {
		serial0 = &scif2;
21
		ethernet0 = &avb;
22 23 24 25 26 27 28 29 30 31 32 33
	};

	chosen {
		bootargs = "ignore_loglevel";
		stdout-path = "serial0:115200n8";
	};

	memory@48000000 {
		device_type = "memory";
		/* first 128MB is reserved for secure area. */
		reg = <0x0 0x48000000 0x0 0x78000000>;
	};
34

35 36 37 38 39
	memory@600000000 {
		device_type = "memory";
		reg = <0x6 0x00000000 0x0 0x80000000>;
	};

40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
	reg_1p8v: regulator0 {
		compatible = "regulator-fixed";
		regulator-name = "fixed-1.8V";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-boot-on;
		regulator-always-on;
	};

	reg_3p3v: regulator1 {
		compatible = "regulator-fixed";
		regulator-name = "fixed-3.3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
	};

58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
	vcc_sdhi0: regulator-vcc-sdhi0 {
		compatible = "regulator-fixed";

		regulator-name = "SDHI0 Vcc";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	vccq_sdhi0: regulator-vccq-sdhi0 {
		compatible = "regulator-gpio";

		regulator-name = "SDHI0 VccQ";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;

		gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
		gpios-states = <1>;
		states = <3300000 1
			  1800000 0>;
	};

	vcc_sdhi3: regulator-vcc-sdhi3 {
		compatible = "regulator-fixed";

		regulator-name = "SDHI3 Vcc";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	vccq_sdhi3: regulator-vccq-sdhi3 {
		compatible = "regulator-gpio";

		regulator-name = "SDHI3 VccQ";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;

		gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
		gpios-states = <1>;
		states = <3300000 1
			  1800000 0>;
	};
105 106
};

107 108 109 110
&pfc {
	pinctrl-0 = <&scif_clk_pins>;
	pinctrl-names = "default";

111 112 113 114 115
	avb_pins: avb {
		groups = "avb_mdc";
		function = "avb";
	};

116 117 118 119 120 121 122 123
	scif2_pins: scif2 {
		groups = "scif2_data_a";
		function = "scif2";
	};
	scif_clk_pins: scif_clk {
		groups = "scif_clk_a";
		function = "scif_clk";
	};
124

125 126 127 128 129
	i2c2_pins: i2c2 {
		groups = "i2c2_a";
		function = "i2c2";
	};

130 131 132
	sdhi0_pins: sd0 {
		groups = "sdhi0_data4", "sdhi0_ctrl";
		function = "sdhi0";
133 134 135 136 137 138 139
		power-source = <3300>;
	};

	sdhi0_pins_uhs: sd0_uhs {
		groups = "sdhi0_data4", "sdhi0_ctrl";
		function = "sdhi0";
		power-source = <1800>;
140 141
	};

142 143 144 145 146 147 148 149 150 151 152 153
	sdhi2_pins: sd2 {
		groups = "sdhi2_data8", "sdhi2_ctrl";
		function = "sdhi2";
		power-source = <3300>;
	};

	sdhi2_pins_uhs: sd2_uhs {
		groups = "sdhi2_data8", "sdhi2_ctrl";
		function = "sdhi2";
		power-source = <1800>;
	};

154 155 156
	sdhi3_pins: sd3 {
		groups = "sdhi3_data4", "sdhi3_ctrl";
		function = "sdhi3";
157 158 159 160 161 162 163
		power-source = <3300>;
	};

	sdhi3_pins_uhs: sd3_uhs {
		groups = "sdhi3_data4", "sdhi3_ctrl";
		function = "sdhi3";
		power-source = <1800>;
164
	};
165 166
};

167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
&avb {
	pinctrl-0 = <&avb_pins>;
	pinctrl-names = "default";
	renesas,no-ether-link;
	phy-handle = <&phy0>;
	status = "okay";

	phy0: ethernet-phy@0 {
		rxc-skew-ps = <900>;
		rxdv-skew-ps = <0>;
		rxd0-skew-ps = <0>;
		rxd1-skew-ps = <0>;
		rxd2-skew-ps = <0>;
		rxd3-skew-ps = <0>;
		txc-skew-ps = <900>;
		txen-skew-ps = <0>;
		txd0-skew-ps = <0>;
		txd1-skew-ps = <0>;
		txd2-skew-ps = <0>;
		txd3-skew-ps = <0>;
		reg = <0>;
		interrupt-parent = <&gpio2>;
		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
	};
};

193 194 195 196
&extal_clk {
	clock-frequency = <16666666>;
};

197 198 199 200
&extalr_clk {
	clock-frequency = <32768>;
};

201 202
&sdhi0 {
	pinctrl-0 = <&sdhi0_pins>;
203 204
	pinctrl-1 = <&sdhi0_pins_uhs>;
	pinctrl-names = "default", "state_uhs";
205 206 207 208 209 210

	vmmc-supply = <&vcc_sdhi0>;
	vqmmc-supply = <&vccq_sdhi0>;
	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
	bus-width = <4>;
211
	sd-uhs-sdr50;
212 213 214
	status = "okay";
};

215 216 217 218 219 220 221 222 223 224 225 226 227
&sdhi2 {
	/* used for on-board 8bit eMMC */
	pinctrl-0 = <&sdhi2_pins>;
	pinctrl-1 = <&sdhi2_pins_uhs>;
	pinctrl-names = "default", "state_uhs";

	vmmc-supply = <&reg_3p3v>;
	vqmmc-supply = <&reg_1p8v>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

228 229
&sdhi3 {
	pinctrl-0 = <&sdhi3_pins>;
230 231
	pinctrl-1 = <&sdhi3_pins_uhs>;
	pinctrl-names = "default", "state_uhs";
232 233 234 235 236 237

	vmmc-supply = <&vcc_sdhi3>;
	vqmmc-supply = <&vccq_sdhi3>;
	cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
	bus-width = <4>;
238
	sd-uhs-sdr50;
239 240 241
	status = "okay";
};

242
&scif2 {
243 244
	pinctrl-0 = <&scif2_pins>;
	pinctrl-names = "default";
245 246 247 248 249 250 251
	status = "okay";
};

&scif_clk {
	clock-frequency = <14745600>;
	status = "okay";
};
252

253 254 255 256 257 258 259
&i2c2 {
	pinctrl-0 = <&i2c2_pins>;
	pinctrl-names = "default";

	status = "okay";
};

260 261 262 263
&wdt0 {
	timeout-sec = <60>;
	status = "okay";
};