Skip to contentSkip to conversation

Support NVIDIA Tegra-based Ouya game console

PATCH Superseded Peter Geis 2 participants 8 messages Sep 23, 2020 – Sep 29, 2020

Subsystems (3)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Peter Geis

author
#0 lore raw

v2 cover Support NVIDIA Tegra-based Ouya game console

Good Day,

This series introduces upstream kernel support for the Ouya game console device. Please review and apply. Thank you in advance.

Changelog:

v2: - Update pmic and clock handles per Rob Herring's review.
- Add acks from Rob Herring to patch 2 and 3.

Peter Geis (3):
ARM: tegra: Add device-tree for Ouya
dt-bindings: Add vendor prefix for Ouya Inc.
dt-bindings: ARM: tegra: Add Ouya game console

 .../devicetree/bindings/arm/tegra.yaml        |    3 +
 .../devicetree/bindings/vendor-prefixes.yaml  |    2 +
 arch/arm/boot/dts/Makefile                    |    3 +-
 arch/arm/boot/dts/tegra30-ouya.dts            | 4498 +++++++++++++++++
 4 files changed, 4505 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/tegra30-ouya.dts
Signature · 1 line
2.25.1
author
#1 lore raw

PATCH v2 1/3 ARM: tegra: Add device-tree for Ouya

The Ouya was the sole device produced by Ouya Inc in 2013.
It was a game console originally running Android 5 on top of Linux 3.1.10.

This patch adds the device tree supporting the Ouya. It has been tested on the original variant with Samsung ram.

---
 arch/arm/boot/dts/Makefile         |    3 +-
 arch/arm/boot/dts/tegra30-ouya.dts | 4498 ++++++++++++++++++++++++++++
 2 files changed, 4500 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/tegra30-ouya.dts
arch/arm/boot/dts/Makefile +2 -1
index 4a4e92d12395..8611d6aeb1c4 100644
@@ -1228,7 +1228,8 @@ dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += \
 	tegra30-beaver.dtb \
 	tegra30-cardhu-a02.dtb \
 	tegra30-cardhu-a04.dtb \
-	tegra30-colibri-eval-v3.dtb
+	tegra30-colibri-eval-v3.dtb \
+	tegra30-ouya.dtb
 dtb-$(CONFIG_ARCH_TEGRA_114_SOC) += \
 	tegra114-dalmore.dtb \
 	tegra114-roth.dtb \
arch/arm/boot/dts/tegra30-ouya.dts new file +4498 -0

2,991 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.25.1

Part of the diff is not shown here. View the raw message.

#2 lore raw

Re: [PATCH v2 1/3] ARM: tegra: Add device-tree for Ouya

...

arch/arm/boot/dts/tegra30-ouya.dts line 22

Quoted 11 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +11 -0
+/ {
+	model = "Ouya Game Console";
+	compatible = "ouya,ouya", "nvidia,tegra30";
+
+	aliases {
+		rtc0 = &pmic;
+		rtc1 = "/rtc@7000e000";
+		serial0 = &uartd; /* Debug Port */
+		serial1 = &uartc; /* Bluetooth */
+		mmc0 = &sdmmc4; /* eMMC */
+		mmc1 = &sdmmc3; /* WiFi */

Thierry may want to sort these aliases in alphabet order.

Quoted 1 line
(quoted diff) +1 -0
+	};

...

arch/arm/boot/dts/tegra30-ouya.dts line 140

Quoted 9 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +9 -0
+		pmic: pmic@2d {
+			compatible = "ti,tps65911";
+			reg = <0x2d>;
+
+			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+			#interrupt-cells = <2>;
+			interrupt-controller;
+
+			ti,system-power-controller;

Are the ti,sleep-keep-ck32k and other properties not needed for Ouya like they are needed for Nexus 7?

...

arch/arm/boot/dts/tegra30-ouya.dts line 303

Quoted 8 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +8 -0
+	sdmmc3: mmc@78000400 {
+		status = "okay";
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		bus-width = <4>;
+		non-removable;

Recently I added assigned-clocks here for Nexus7/A500 DTs in order to get true 50MHz for the WiFi SDIO.

Quoted 3 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +3 -0
+		mmc-pwrseq = <&wifi_pwrseq>;
+		vmmc-supply = <&sdmmc_3v3_reg>;
+		vqmmc-supply = <&vdd_1v8>;
author
#3 lore raw

Re: [PATCH v2 1/3] ARM: tegra: Add device-tree for Ouya

Quoted 15 lines · Dmitry Osipenko

...

arch/arm/boot/dts/tegra30-ouya.dts line 22

Quoted 11 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +11 -0
+/ {
+     model = "Ouya Game Console";
+     compatible = "ouya,ouya", "nvidia,tegra30";
+
+     aliases {
+             rtc0 = &pmic;
+             rtc1 = "/rtc@7000e000";
+             serial0 = &uartd; /* Debug Port */
+             serial1 = &uartc; /* Bluetooth */
+             mmc0 = &sdmmc4; /* eMMC */
+             mmc1 = &sdmmc3; /* WiFi */

Thierry may want to sort these aliases in alphabet order.

Thanks, I'll fix this.

Quoted 4 lines
Quoted 2 lines

+ };

...

Quoted 12 lines

arch/arm/boot/dts/tegra30-ouya.dts line 140

Quoted 9 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +9 -0
+             pmic: pmic@2d {
+                     compatible = "ti,tps65911";
+                     reg = <0x2d>;
+
+                     interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                     #interrupt-cells = <2>;
+                     interrupt-controller;
+
+                     ti,system-power-controller;

Are the ti,sleep-keep-ck32k and other properties not needed for Ouya like they are needed for Nexus 7?

Ouya is wall powered, so ultra low power isn't terribly necessary. Also with LP1 and LP0 not working, it doesn't make much sense to implement this yet.

Quoted 13 lines

...

arch/arm/boot/dts/tegra30-ouya.dts line 303

Quoted 8 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +8 -0
+     sdmmc3: mmc@78000400 {
+             status = "okay";
+
+             #address-cells = <1>;
+             #size-cells = <0>;
+
+             bus-width = <4>;
+             non-removable;

Recently I added assigned-clocks here for Nexus7/A500 DTs in order to get true 50MHz for the WiFi SDIO.

Thanks, it seems we are running at 48MHz right now, so I'll look into this.

Quoted 4 lines
Quoted 4 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +3 -0
+             mmc-pwrseq = <&wifi_pwrseq>;
+             vmmc-supply = <&sdmmc_3v3_reg>;
+             vqmmc-supply = <&vdd_1v8>;
#4 lore raw

Re: [PATCH v2 1/3] ARM: tegra: Add device-tree for Ouya

26.09.2020 05:01, Peter Geis пишет:
...

Quoted 13 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +4 -0
+             pmic: pmic@2d {
+                     compatible = "ti,tps65911";
+                     reg = <0x2d>;
+
Quoted 8 lines

arch/arm/boot/dts/tegra30-ouya.dts line 140

Quoted 5 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +5 -0
+                     interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                     #interrupt-cells = <2>;
+                     interrupt-controller;
+
+                     ti,system-power-controller;

Are the ti,sleep-keep-ck32k and other properties not needed for Ouya like they are needed for Nexus 7?

Quoted 3 lines

Ouya is wall powered, so ultra low power isn't terribly necessary. Also with LP1 and LP0 not working, it doesn't make much sense to implement this yet.

The keep-ck32 is not about power saving. If PMC is running off PMIC's oscillator during LP1 suspend, then this should be one of the reasons why LP1 doesn't work for you.

#5 lore raw

Re: [PATCH v2 1/3] ARM: tegra: Add device-tree for Ouya

26.09.2020 16:47, Dmitry Osipenko пишет:

Quoted 15 lines

26.09.2020 05:01, Peter Geis пишет:
...

Quoted 13 lines
Quoted 12 lines

arch/arm/boot/dts/tegra30-ouya.dts line 140

Quoted 9 lines
arch/arm/boot/dts/tegra30-ouya.dts new file +9 -0
+             pmic: pmic@2d {
+                     compatible = "ti,tps65911";
+                     reg = <0x2d>;
+
+                     interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                     #interrupt-cells = <2>;
+                     interrupt-controller;
+
+                     ti,system-power-controller;

Are the ti,sleep-keep-ck32k and other properties not needed for Ouya like they are needed for Nexus 7?

Quoted 8 lines
Quoted 3 lines

Ouya is wall powered, so ultra low power isn't terribly necessary. Also with LP1 and LP0 not working, it doesn't make much sense to implement this yet.

The keep-ck32 is not about power saving. If PMC is running off PMIC's oscillator during LP1 suspend, then this should be one of the reasons why LP1 doesn't work for you.

I missed that you set nvidia,suspend-mode to LP2, so perhaps should be good as-is for now.

author
#6 lore raw

PATCH v2 2/3 dt-bindings: Add vendor prefix for Ouya Inc.

In reply to Peter Geis

Ouya is a defunct company from 2012 to 2015.
They produced a single device, the Ouya game console.
In 2015 they were purchased by Razer Inc. and the Ouya was discontinued. All Ouya services were shuttered in 2019.

---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
index 9a5ab7b94789..367dd79c95f6 100644
@@ -786,6 +786,8 @@ patternProperties:
     description: Ortus Technology Co., Ltd.
   "^osddisplays,.*":
     description: OSD Displays
+  "^ouya,.*":
+    description: Ouya Inc.
   "^overkiz,.*":
     description: Overkiz SAS
   "^ovti,.*":
Signature · 1 line
2.25.1
author
#7 lore raw

PATCH v2 3/3 dt-bindings: ARM: tegra: Add Ouya game console

In reply to Peter Geis

Add a binding for the Tegra30-based Ouya game console.

---
 Documentation/devicetree/bindings/arm/tegra.yaml | 3 +++
 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/arm/tegra.yaml +3 -0
index e0b3debaee9e..a8bafe68315f 100644
@@ -69,6 +69,9 @@ properties:
           - const: asus,tilapia
           - const: asus,grouper
           - const: nvidia,tegra30
+      - items:
+          - const: ouya,ouya
+          - const: nvidia,tegra30
       - items:
           - enum:
               - nvidia,dalmore
Signature · 1 line
2.25.1