mbox series

[v2,0/3] Support NVIDIA Tegra-based Ouya game console

Message ID 20200923210352.1176386-1-pgwipeout@gmail.com
Headers show
Series Support NVIDIA Tegra-based Ouya game console | expand

Message

Peter Geis Sept. 23, 2020, 9:03 p.m. UTC
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

Comments

Dmitry Osipenko Sept. 25, 2020, 12:12 a.m. UTC | #1
...
> +/ {
> +	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.

> +	};

...
> +		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?

...
> +	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.

> +		mmc-pwrseq = <&wifi_pwrseq>;
> +		vmmc-supply = <&sdmmc_3v3_reg>;
> +		vqmmc-supply = <&vdd_1v8>;
Peter Geis Sept. 26, 2020, 2:01 a.m. UTC | #2
On Thu, Sep 24, 2020 at 8:12 PM Dmitry Osipenko <digetx@gmail.com> wrote:
>
> ...
> > +/ {
> > +     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.

>
> > +     };
>
> ...
> > +             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.

>
> ...
> > +     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.

>
> > +             mmc-pwrseq = <&wifi_pwrseq>;
> > +             vmmc-supply = <&sdmmc_3v3_reg>;
> > +             vqmmc-supply = <&vdd_1v8>;
Dmitry Osipenko Sept. 26, 2020, 1:47 p.m. UTC | #3
26.09.2020 05:01, Peter Geis пишет:
...
>>> +             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.

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.
Dmitry Osipenko Sept. 29, 2020, 4:01 a.m. UTC | #4
26.09.2020 16:47, Dmitry Osipenko пишет:
> 26.09.2020 05:01, Peter Geis пишет:
> ...
>>>> +             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.
> 
> 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.