xref: /linux/arch/arm/boot/dts/synaptics/berlin2cd-valve-steamlink.dts (revision 724ba6751532055db75992fc6ae21c3e322e94a7)
1*dbbc3d79SAlexander Monakov// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*dbbc3d79SAlexander Monakov/*
3*dbbc3d79SAlexander Monakov * Copyright 2018 Alexander Monakov <amonakov@gmail.com>
4*dbbc3d79SAlexander Monakov */
5*dbbc3d79SAlexander Monakov/dts-v1/;
6*dbbc3d79SAlexander Monakov
7*dbbc3d79SAlexander Monakov#include "berlin2cd.dtsi"
8*dbbc3d79SAlexander Monakov#include <dt-bindings/gpio/gpio.h>
9*dbbc3d79SAlexander Monakov
10*dbbc3d79SAlexander Monakov/ {
11*dbbc3d79SAlexander Monakov	model = "Valve Steam Link";
12*dbbc3d79SAlexander Monakov	compatible = "valve,steamlink", "marvell,berlin2cd", "marvell,berlin";
13*dbbc3d79SAlexander Monakov
14*dbbc3d79SAlexander Monakov	memory@0 {
15*dbbc3d79SAlexander Monakov		device_type = "memory";
16*dbbc3d79SAlexander Monakov		reg = <0x00000000 0x20000000>; /* 512 MB */
17*dbbc3d79SAlexander Monakov	};
18*dbbc3d79SAlexander Monakov
19*dbbc3d79SAlexander Monakov	gpio-restart {
20*dbbc3d79SAlexander Monakov		compatible = "gpio-restart";
21*dbbc3d79SAlexander Monakov		gpios = <&porta 6 GPIO_ACTIVE_HIGH>;
22*dbbc3d79SAlexander Monakov		active-delay = <100>;
23*dbbc3d79SAlexander Monakov		inactive-delay = <10>;
24*dbbc3d79SAlexander Monakov		wait-delay = <100>;
25*dbbc3d79SAlexander Monakov		priority = <200>;
26*dbbc3d79SAlexander Monakov	};
27*dbbc3d79SAlexander Monakov};
28*dbbc3d79SAlexander Monakov
29*dbbc3d79SAlexander Monakov&cpu {
30*dbbc3d79SAlexander Monakov	cpu-supply = <&vcpu>;
31*dbbc3d79SAlexander Monakov	operating-points = <
32*dbbc3d79SAlexander Monakov		/* kHz    uV */
33*dbbc3d79SAlexander Monakov		1000000 1325000
34*dbbc3d79SAlexander Monakov	>;
35*dbbc3d79SAlexander Monakov};
36*dbbc3d79SAlexander Monakov
37*dbbc3d79SAlexander Monakov&i2c0 {
38*dbbc3d79SAlexander Monakov	status = "okay";
39*dbbc3d79SAlexander Monakov
40*dbbc3d79SAlexander Monakov	/* There are two regulators on the board. One is accessible via I2C,
41*dbbc3d79SAlexander Monakov	 * with buck1 providing SoC power (set up by bootloader to 1.325V or
42*dbbc3d79SAlexander Monakov	 * less depending on leakage value in OTP), and buck2 likely used for
43*dbbc3d79SAlexander Monakov	 * DRAM (providing 1.35V). The other regulator on the opposite side
44*dbbc3d79SAlexander Monakov	 * of the board is probably supplying SDIO and NAND fixed voltages. */
45*dbbc3d79SAlexander Monakov	regulator@19 {
46*dbbc3d79SAlexander Monakov		compatible = "marvell,88pg868";
47*dbbc3d79SAlexander Monakov		reg = <0x19>;
48*dbbc3d79SAlexander Monakov
49*dbbc3d79SAlexander Monakov		vcpu: buck1 {
50*dbbc3d79SAlexander Monakov			regulator-boot-on;
51*dbbc3d79SAlexander Monakov			regulator-always-on;
52*dbbc3d79SAlexander Monakov			regulator-min-microvolt = <1000000>;
53*dbbc3d79SAlexander Monakov			regulator-max-microvolt = <1325000>;
54*dbbc3d79SAlexander Monakov		};
55*dbbc3d79SAlexander Monakov	};
56*dbbc3d79SAlexander Monakov};
57*dbbc3d79SAlexander Monakov
58*dbbc3d79SAlexander Monakov/* Fixed interface to on-board Marvell 8897 Wi-Fi/Bluetooth/NFC chip. */
59*dbbc3d79SAlexander Monakov&sdhci0 {
60*dbbc3d79SAlexander Monakov	keep-power-in-suspend;
61*dbbc3d79SAlexander Monakov	non-removable;
62*dbbc3d79SAlexander Monakov	status = "okay";
63*dbbc3d79SAlexander Monakov};
64*dbbc3d79SAlexander Monakov
65*dbbc3d79SAlexander Monakov&uart0 {
66*dbbc3d79SAlexander Monakov	/* RX/TX are routed to TP50/TP51 on the board. */
67*dbbc3d79SAlexander Monakov	status = "okay";
68*dbbc3d79SAlexander Monakov};
69*dbbc3d79SAlexander Monakov
70*dbbc3d79SAlexander Monakov/* The SoC is connected to on-board USB hub that in turn has one downstream
71*dbbc3d79SAlexander Monakov * port wired to the on-board Steam Controller wireless receiver chip. */
72*dbbc3d79SAlexander Monakov&usb_phy1 { status = "okay"; };
73*dbbc3d79SAlexander Monakov
74*dbbc3d79SAlexander Monakov&usb1 {
75*dbbc3d79SAlexander Monakov	dr_mode = "host";
76*dbbc3d79SAlexander Monakov	status = "okay";
77*dbbc3d79SAlexander Monakov};
78*dbbc3d79SAlexander Monakov
79*dbbc3d79SAlexander Monakov&eth1 { status = "okay"; };
80