diff mbox

[8/8] ARM: dts: berlin2cd: add Valve Steam Link board

Message ID 20180311160008.22928-9-amonakov@ispras.ru (mailing list archive)
State New, archived
Headers show

Commit Message

Alexander Monakov March 11, 2018, 4 p.m. UTC
Valve Steam Link is a consumer device built around the Marvell BG2CD SoC.
This board file enables the UART, USB and Ethernet interfaces as well as
internal I2C and SDIO, and adds SoC voltage regulator and board-specific
GPIO restart method info.

Cc: Sam Lantinga <saml@valvesoftware.com>
Signed-off-by: Alexander Monakov <amonakov@ispras.ru>
---
At this point, major missing user-facing features are audio/video and
power management (cpufreq, cpuidle, and/or suspend).

It's easy to wire up the Vivante 3D graphics core, but without scanout
it's not useful.

For avoidance of doubt, I am not affiliated with Valve.

 arch/arm/boot/dts/Makefile                      |  1 +
 arch/arm/boot/dts/berlin2cd-valve-steamlink.dts | 80 +++++++++++++++++++++++++
 2 files changed, 81 insertions(+)
 create mode 100644 arch/arm/boot/dts/berlin2cd-valve-steamlink.dts

Comments

Jisheng Zhang March 14, 2018, 6:23 a.m. UTC | #1
Hi,

On Sun, 11 Mar 2018 19:00:08 +0300 Alexander Monakov wrote:

> Valve Steam Link is a consumer device built around the Marvell BG2CD SoC.
> This board file enables the UART, USB and Ethernet interfaces as well as
> internal I2C and SDIO, and adds SoC voltage regulator and board-specific
> GPIO restart method info.
> 
> Cc: Sam Lantinga <saml@valvesoftware.com>
> Signed-off-by: Alexander Monakov <amonakov@ispras.ru>
> ---
> At this point, major missing user-facing features are audio/video and
> power management (cpufreq, cpuidle, and/or suspend).
> 
> It's easy to wire up the Vivante 3D graphics core, but without scanout
> it's not useful.
> 
> For avoidance of doubt, I am not affiliated with Valve.
> 
>  arch/arm/boot/dts/Makefile                      |  1 +
>  arch/arm/boot/dts/berlin2cd-valve-steamlink.dts | 80 +++++++++++++++++++++++++
>  2 files changed, 81 insertions(+)
>  create mode 100644 arch/arm/boot/dts/berlin2cd-valve-steamlink.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d0381e9caf21..e52fa7168dd8 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -140,6 +140,7 @@ dtb-$(CONFIG_ARCH_BCM_NSP) += \
>  dtb-$(CONFIG_ARCH_BERLIN) += \
>  	berlin2-sony-nsz-gs7.dtb \
>  	berlin2cd-google-chromecast.dtb \
> +	berlin2cd-valve-steamlink.dtb \
>  	berlin2q-marvell-dmp.dtb
>  dtb-$(CONFIG_ARCH_BRCMSTB) += \
>  	bcm7445-bcm97445svmb.dtb
> diff --git a/arch/arm/boot/dts/berlin2cd-valve-steamlink.dts b/arch/arm/boot/dts/berlin2cd-valve-steamlink.dts
> new file mode 100644
> index 000000000000..3161ada6eb34
> --- /dev/null
> +++ b/arch/arm/boot/dts/berlin2cd-valve-steamlink.dts
> @@ -0,0 +1,80 @@
> +/*
> + * Copyright 2018 Alexander Monakov <amonakov@gmail.com>
> + *
> + * SPDX-License-Identifier: (GPL-2.0 OR MIT)

Mind to license it under GPL2 or X11?

Other source usually tag as:
// SPDX-License-Identifier: (GPL-2.0 OR X11)

And the tag is put into the first line, could we keep the style?

> + */
> +/dts-v1/;
> +
> +#include "berlin2cd.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +
> +/ {
> +	model = "Valve Steam Link";
> +	compatible = "valve,steamlink", "marvell,berlin2cd", "marvell,berlin";
> +
> +	memory@0 {
> +		device_type = "memory";
> +		reg = <0x00000000 0x20000000>; /* 512 MB */
> +	};
> +
> +	gpio-restart {
> +		compatible = "gpio-restart";
> +		gpios = <&porta 6 GPIO_ACTIVE_HIGH>;
> +		active-delay = <100>;
> +		inactive-delay = <10>;
> +		wait-delay = <100>;
> +		priority = <200>;
> +	};
> +};
> +
> +&cpu {
> +	cpu-supply = <&vcpu>;
> +	operating-points = <
> +		/* kHz    uV */
> +		1000000 1325000
> +	>;
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	/* There are two regulators on the board. One is accessible via I2C,
> +	 * with buck1 providing SoC power (set up by bootloader to 1.325V or
> +	 * less depending on leakage value in OTP), and buck2 likely used for
> +	 * DRAM (providing 1.35V). The other regulator on the opposite side
> +	 * of the board is probably supplying SDIO and NAND fixed voltages. */
> +	regulator@19 {
> +		compatible = "marvell,88pg868";
> +		reg = <0x19>;
> +
> +		vcpu: buck1 {
> +			regulator-boot-on;
> +			regulator-always-on;
> +			regulator-min-microvolt = <1000000>;
> +			regulator-max-microvolt = <1325000>;
> +		};
> +	};
> +};
> +
> +/* Fixed interface to on-board Marvell 8897 Wi-Fi/Bluetooth/NFC chip. */
> +&sdhci0 {
> +	keep-power-in-suspend;
> +	non-removable;
> +	status = "okay";
> +};
> +
> +&uart0 {
> +	/* RX/TX are routed to TP50/TP51 on the board. */
> +	status = "okay";
> +};
> +
> +/* The SoC is connected to on-board USB hub that in turn has one downstream
> + * port wired to the on-board Steam Controller wireless receiver chip. */
> +&usb_phy1 { status = "okay"; };
> +
> +&usb1 {
> +	dr_mode = "host";
> +	status = "okay";
> +};
> +
> +&eth1 { status = "okay"; };
Alexander Monakov March 14, 2018, 7:22 a.m. UTC | #2
On Wed, 14 Mar 2018, Jisheng Zhang wrote:

> > +/*
> > + * Copyright 2018 Alexander Monakov <amonakov@gmail.com>
> > + *
> > + * SPDX-License-Identifier: (GPL-2.0 OR MIT)
> 
> Mind to license it under GPL2 or X11?

MIT is the same as X11 but without the references to the X Consortium that
do not make sense in the kernel context: please see [1] and [2]. The MIT
license is present under LICENSES/preferred in the kernel tree, but not the
X11 license.

The berlin2cd.dtsi file first says "the X11 license", but then the actual
license text appearing in the file is the MIT license.

[1] https://spdx.org/licenses/MIT.html
[2] https://spdx.org/licenses/X11.html

> Other source usually tag as:
> // SPDX-License-Identifier: (GPL-2.0 OR X11)
> 
> And the tag is put into the first line, could we keep the style?

Right. With the clarification regarding X11/MIT above, I'll change to

// SPDX-License-Identifier: GPL-2.0 OR MIT
// Copyright 2018 Alexander Monakov <amonakov@gmail.com>

Is that okay?

Thanks.
Alexander
Jisheng Zhang March 14, 2018, 7:43 a.m. UTC | #3
On Wed, 14 Mar 2018 10:22:11 +0300 Alexander Monakov wrote:

> On Wed, 14 Mar 2018, Jisheng Zhang wrote:
> 
> > > +/*
> > > + * Copyright 2018 Alexander Monakov <amonakov@gmail.com>
> > > + *
> > > + * SPDX-License-Identifier: (GPL-2.0 OR MIT)  
> > 
> > Mind to license it under GPL2 or X11?  
> 
> MIT is the same as X11 but without the references to the X Consortium that
> do not make sense in the kernel context: please see [1] and [2]. The MIT
> license is present under LICENSES/preferred in the kernel tree, but not the
> X11 license.

Understood.

> 
> The berlin2cd.dtsi file first says "the X11 license", but then the actual
> license text appearing in the file is the MIT license.

Yes, I'll send patches to add SPDX tags to all berlin SoC dtsi and s/X11/MIT.

Thanks for pointing this out.

> 
> [1] https://spdx.org/licenses/MIT.html
> [2] https://spdx.org/licenses/X11.html
> 
> > Other source usually tag as:
> > // SPDX-License-Identifier: (GPL-2.0 OR X11)
> > 
> > And the tag is put into the first line, could we keep the style?  
> 
> Right. With the clarification regarding X11/MIT above, I'll change to
> 
> // SPDX-License-Identifier: GPL-2.0 OR MIT
> // Copyright 2018 Alexander Monakov <amonakov@gmail.com>
> 
> Is that okay?

Yes, it's OK.
Jisheng Zhang March 14, 2018, 8:28 a.m. UTC | #4
On Wed, 14 Mar 2018 15:43:23 +0800 Jisheng Zhang wrote:

> On Wed, 14 Mar 2018 10:22:11 +0300 Alexander Monakov wrote:
> 

<snip>

> > > Other source usually tag as:
> > > // SPDX-License-Identifier: (GPL-2.0 OR X11)
> > > 
> > > And the tag is put into the first line, could we keep the style?    
> > 
> > Right. With the clarification regarding X11/MIT above, I'll change to
> > 
> > // SPDX-License-Identifier: GPL-2.0 OR MIT
> > // Copyright 2018 Alexander Monakov <amonakov@gmail.com>
> > 
> > Is that okay?  
> 
> Yes, it's OK.

I think something as the following is fine:


// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2018 Alexander Monakov <amonakov@gmail.com>
 */
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d0381e9caf21..e52fa7168dd8 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -140,6 +140,7 @@  dtb-$(CONFIG_ARCH_BCM_NSP) += \
 dtb-$(CONFIG_ARCH_BERLIN) += \
 	berlin2-sony-nsz-gs7.dtb \
 	berlin2cd-google-chromecast.dtb \
+	berlin2cd-valve-steamlink.dtb \
 	berlin2q-marvell-dmp.dtb
 dtb-$(CONFIG_ARCH_BRCMSTB) += \
 	bcm7445-bcm97445svmb.dtb
diff --git a/arch/arm/boot/dts/berlin2cd-valve-steamlink.dts b/arch/arm/boot/dts/berlin2cd-valve-steamlink.dts
new file mode 100644
index 000000000000..3161ada6eb34
--- /dev/null
+++ b/arch/arm/boot/dts/berlin2cd-valve-steamlink.dts
@@ -0,0 +1,80 @@ 
+/*
+ * Copyright 2018 Alexander Monakov <amonakov@gmail.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0 OR MIT)
+ */
+/dts-v1/;
+
+#include "berlin2cd.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	model = "Valve Steam Link";
+	compatible = "valve,steamlink", "marvell,berlin2cd", "marvell,berlin";
+
+	memory@0 {
+		device_type = "memory";
+		reg = <0x00000000 0x20000000>; /* 512 MB */
+	};
+
+	gpio-restart {
+		compatible = "gpio-restart";
+		gpios = <&porta 6 GPIO_ACTIVE_HIGH>;
+		active-delay = <100>;
+		inactive-delay = <10>;
+		wait-delay = <100>;
+		priority = <200>;
+	};
+};
+
+&cpu {
+	cpu-supply = <&vcpu>;
+	operating-points = <
+		/* kHz    uV */
+		1000000 1325000
+	>;
+};
+
+&i2c0 {
+	status = "okay";
+
+	/* There are two regulators on the board. One is accessible via I2C,
+	 * with buck1 providing SoC power (set up by bootloader to 1.325V or
+	 * less depending on leakage value in OTP), and buck2 likely used for
+	 * DRAM (providing 1.35V). The other regulator on the opposite side
+	 * of the board is probably supplying SDIO and NAND fixed voltages. */
+	regulator@19 {
+		compatible = "marvell,88pg868";
+		reg = <0x19>;
+
+		vcpu: buck1 {
+			regulator-boot-on;
+			regulator-always-on;
+			regulator-min-microvolt = <1000000>;
+			regulator-max-microvolt = <1325000>;
+		};
+	};
+};
+
+/* Fixed interface to on-board Marvell 8897 Wi-Fi/Bluetooth/NFC chip. */
+&sdhci0 {
+	keep-power-in-suspend;
+	non-removable;
+	status = "okay";
+};
+
+&uart0 {
+	/* RX/TX are routed to TP50/TP51 on the board. */
+	status = "okay";
+};
+
+/* The SoC is connected to on-board USB hub that in turn has one downstream
+ * port wired to the on-board Steam Controller wireless receiver chip. */
+&usb_phy1 { status = "okay"; };
+
+&usb1 {
+	dr_mode = "host";
+	status = "okay";
+};
+
+&eth1 { status = "okay"; };