linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: "Jonathan Hunter" <jonathanh@nvidia.com>,
	"David Heidelberg" <david@ixit.cz>,
	"Svyatoslav Ryhel" <clamor95@gmail.com>,
	"Anton Bambura" <jenneron@protonmail.com>,
	"Antoni Aloy Torrens" <aaloytorrens@gmail.com>,
	"Nikola Milosavljevic" <mnidza@outlook.com>,
	"Ion Agorria" <ion@agorria.com>,
	"Michał Mirosław" <mirq-linux@rere.qmqm.pl>,
	"Ihor Didenko" <tailormoon@rambler.ru>,
	"Andreas Westman Dorcsak" <hedmoo@yahoo.com>,
	"Maxim Schwalm" <maxim.schwalm@gmail.com>,
	"Raffaele Tranquillini" <raffaele.tranquillini@gmail.com>,
	"Jasper Korten" <jja2000@gmail.com>,
	"Thomas Graichen" <thomas.graichen@gmail.com>,
	"Stefan Eichenberger" <stefan.eichenberger@toradex.com>,
	devicetree@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 05/24] ARM: tegra: Add device-tree for ASUS Transformer EeePad TF101
Date: Fri, 10 Dec 2021 16:46:23 +0100	[thread overview]
Message-ID: <YbN2T5guOfIRLXg1@orome> (raw)
In-Reply-To: <20211208173609.4064-6-digetx@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 20277 bytes --]

On Wed, Dec 08, 2021 at 08:35:50PM +0300, Dmitry Osipenko wrote:
> From: Nikola Milosavljevic <mnidza@outlook.com>
> 
> Add device-tree for Tegra20-based ASUS Transformer EeePad TF101.
> 
> Link: https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101)
> Co-developed-by: David Heidelberg <david@ixit.cz>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> Co-developed-by: Svyatoslav Ryhel <clamor95@gmail.com>
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> Co-developed-by: Antoni Aloy Torrens <aaloytorrens@gmail.com>
> Signed-off-by: Antoni Aloy Torrens <aaloytorrens@gmail.com>
> Signed-off-by: Nikola Milosavljevic <mnidza@outlook.com>
> Co-developed-by: Dmitry Osipenko <digetx@gmail.com>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  arch/arm/boot/dts/Makefile               |    1 +
>  arch/arm/boot/dts/tegra20-asus-tf101.dts | 1191 ++++++++++++++++++++++
>  2 files changed, 1192 insertions(+)
>  create mode 100644 arch/arm/boot/dts/tegra20-asus-tf101.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 8a2dfdf01ce3..8fdebf7c1afe 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -1304,6 +1304,7 @@ dtb-$(CONFIG_MACH_SUNIV) += \
>  	suniv-f1c100s-licheepi-nano.dtb
>  dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
>  	tegra20-acer-a500-picasso.dtb \
> +	tegra20-asus-tf101.dtb \
>  	tegra20-harmony.dtb \
>  	tegra20-colibri-eval-v3.dtb \
>  	tegra20-colibri-iris.dtb \
> diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
> new file mode 100644
> index 000000000000..4dc0722c28f5
> --- /dev/null
> +++ b/arch/arm/boot/dts/tegra20-asus-tf101.dts
> @@ -0,0 +1,1191 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/dts-v1/;
> +
> +#include <dt-bindings/input/atmel-maxtouch.h>
> +#include <dt-bindings/input/gpio-keys.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/thermal/thermal.h>
> +
> +#include "tegra20.dtsi"
> +#include "tegra20-cpu-opp.dtsi"
> +#include "tegra20-cpu-opp-microvolt.dtsi"
> +
> +/ {
> +	model = "ASUS EeePad Transformer TF101";
> +	compatible = "asus,tf101", "nvidia,tegra20";
> +	chassis-type = "convertible";
> +
> +	aliases {
> +		mmc0 = &sdmmc4; /* eMMC */
> +		mmc1 = &sdmmc3; /* MicroSD */
> +		mmc2 = &sdmmc1; /* WiFi */
> +
> +		rtc0 = &pmic;
> +		rtc1 = "/rtc@7000e000";
> +
> +		serial0 = &uartd;
> +		serial1 = &uartc; /* Bluetooth */
> +		serial2 = &uartb; /* GPS */
> +	};
> +
> +	/*
> +	 * The decompressor and also some bootloaders rely on a
> +	 * pre-existing /chosen node to be available to insert the
> +	 * command line and merge other ATAGS info.
> +	 */
> +	chosen {};
> +
> +	memory@0 {
> +		reg = <0x00000000 0x40000000>;
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		ramoops@2ffe0000 {
> +			compatible = "ramoops";
> +			reg = <0x2ffe0000 0x10000>;	/* 64kB */
> +			console-size = <0x8000>;	/* 32kB */
> +			record-size = <0x400>;		/*  1kB */
> +			ecc-size = <16>;
> +		};
> +
> +		linux,cma@30000000 {
> +			compatible = "shared-dma-pool";
> +			alloc-ranges = <0x30000000 0x10000000>;
> +			size = <0x10000000>; /* 256MiB */
> +			linux,cma-default;
> +			reusable;
> +		};
> +	};
> +
> +	host1x@50000000 {
> +		dc@54200000 {
> +			rgb {
> +				status = "okay";
> +
> +				port@0 {
> +					lcd_output: endpoint {
> +						remote-endpoint = <&lvds_encoder_input>;
> +						bus-width = <18>;
> +					};
> +				};
> +			};
> +		};
> +
> +		hdmi@54280000 {
> +			status = "okay";
> +
> +			vdd-supply = <&hdmi_vdd_reg>;
> +			pll-supply = <&hdmi_pll_reg>;
> +			hdmi-supply = <&vdd_hdmi_en>;
> +
> +			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
> +			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
> +				GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	gpio@6000d000 {
> +		charging-enable-hog {
> +			gpio-hog;
> +			gpios = <TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
> +			output-low;
> +		};
> +	};

Isn't this something that we may want to change at some point? My
understanding is that GPIO hogs are permanent, so it won't be possible
to grab GPIO R.6 and change this.

Are there any plans to allow setting this at runtime?

[...]
> +	i2c2: i2c@7000c400 {
> +		status = "okay";
> +		clock-frequency = <100000>;
> +	};
> +
> +	i2cmux {

This doesn't belong here. The ordering is by unit-address and everything
without unit-address needs to move after the nodes with unit-addresses
and be sorted alphabetically.

> +		compatible = "i2c-mux-pinctrl";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		i2c-parent = <&i2c2>;
> +
> +		pinctrl-names = "ddc", "pta", "idle";
> +		pinctrl-0 = <&state_i2cmux_ddc>;
> +		pinctrl-1 = <&state_i2cmux_pta>;
> +		pinctrl-2 = <&state_i2cmux_idle>;
> +
> +		hdmi_ddc: i2c@0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		lvds_ddc: i2c@1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			smart-battery@b {
> +				compatible = "ti,bq20z75", "sbs,sbs-battery";
> +				reg = <0xb>;
> +				sbs,i2c-retry-count = <2>;
> +				sbs,poll-retry-count = <10>;
> +				power-supplies = <&mains>;
> +			};
> +		};
> +	};
> +
> +	i2c@7000c500 {
> +		status = "okay";
> +		clock-frequency = <400000>;
> +	};
> +
> +	i2c@7000d000 {
> +		status = "okay";
> +		clock-frequency = <400000>;
> +
> +		pmic: pmic@34 {
> +			compatible = "ti,tps6586x";
> +			reg = <0x34>;
> +			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
> +
> +			ti,system-power-controller;
> +
> +			#gpio-cells = <2>;
> +			gpio-controller;
> +
> +			sys-supply = <&vdd_5v0_sys>;
> +			vin-sm0-supply = <&sys_reg>;
> +			vin-sm1-supply = <&sys_reg>;
> +			vin-sm2-supply = <&sys_reg>;
> +			vinldo01-supply = <&sm2_reg>;
> +			vinldo23-supply = <&sm2_reg>;
> +			vinldo4-supply = <&sm2_reg>;
> +			vinldo678-supply = <&sm2_reg>;
> +			vinldo9-supply = <&sm2_reg>;
> +
> +			regulators {
> +				sys_reg: sys {
> +					regulator-name = "vdd_sys";
> +					regulator-always-on;
> +				};
> +
> +				vdd_core: sm0 {
> +					regulator-name = "vdd_sm0,vdd_core";
> +					regulator-min-microvolt = <950000>;
> +					regulator-max-microvolt = <1300000>;
> +					regulator-coupled-with = <&rtc_vdd &vdd_cpu>;
> +					regulator-coupled-max-spread = <170000 550000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +
> +					nvidia,tegra-core-regulator;
> +				};
> +
> +				vdd_cpu: sm1 {
> +					regulator-name = "vdd_sm1,vdd_cpu";
> +					regulator-min-microvolt = <750000>;
> +					regulator-max-microvolt = <1125000>;
> +					regulator-coupled-with = <&vdd_core &rtc_vdd>;
> +					regulator-coupled-max-spread = <550000 550000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +
> +					nvidia,tegra-cpu-regulator;
> +				};
> +
> +				sm2_reg: sm2 {
> +					regulator-name = "vdd_sm2,vin_ldo*";
> +					regulator-min-microvolt = <3700000>;
> +					regulator-max-microvolt = <3700000>;
> +					regulator-always-on;
> +				};
> +
> +				/* LDO0 is not connected to anything */
> +
> +				ldo1 {
> +					regulator-name = "vdd_ldo1,avdd_pll*";
> +					regulator-min-microvolt = <1100000>;
> +					regulator-max-microvolt = <1100000>;
> +					regulator-always-on;
> +				};
> +
> +				rtc_vdd: ldo2 {
> +					regulator-name = "vdd_ldo2,vdd_rtc";
> +					regulator-min-microvolt = <950000>;
> +					regulator-max-microvolt = <1300000>;
> +					regulator-coupled-with = <&vdd_core &vdd_cpu>;
> +					regulator-coupled-max-spread = <170000 550000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +
> +					nvidia,tegra-rtc-regulator;
> +				};
> +
> +				ldo3 {
> +					regulator-name = "vdd_ldo3,avdd_usb*";
> +					regulator-min-microvolt = <3300000>;
> +					regulator-max-microvolt = <3300000>;
> +					regulator-always-on;
> +				};
> +
> +				ldo4 {
> +					regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +					regulator-always-on;
> +				};
> +
> +				vcore_emmc: ldo5 {
> +					regulator-name = "vdd_ldo5,vcore_mmc";
> +					regulator-min-microvolt = <2850000>;
> +					regulator-max-microvolt = <2850000>;
> +					regulator-always-on;
> +				};
> +
> +				ldo6 {
> +					regulator-name = "vdd_ldo6,avdd_vdac";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +				};
> +
> +				hdmi_vdd_reg: ldo7 {
> +					regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
> +					regulator-min-microvolt = <3300000>;
> +					regulator-max-microvolt = <3300000>;
> +				};
> +
> +				hdmi_pll_reg: ldo8 {
> +					regulator-name = "vdd_ldo8,avdd_hdmi_pll";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +				};
> +
> +				ldo9 {
> +					regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
> +					regulator-min-microvolt = <2850000>;
> +					regulator-max-microvolt = <2850000>;
> +					regulator-always-on;
> +				};
> +
> +				ldo_rtc {
> +					regulator-name = "vdd_rtc_out,vdd_cell";
> +					regulator-min-microvolt = <3300000>;
> +					regulator-max-microvolt = <3300000>;
> +					regulator-always-on;
> +				};
> +			};
> +		};
> +
> +		nct1008: temperature-sensor@4c {
> +			compatible = "onnn,nct1008";
> +			reg = <0x4c>;
> +			vcc-supply = <&vdd_3v3_sys>;
> +
> +			interrupt-parent = <&gpio>;
> +			interrupts = <TEGRA_GPIO(N, 6) IRQ_TYPE_EDGE_FALLING>;
> +
> +			#thermal-sensor-cells = <1>;
> +		};
> +	};
> +
> +	pmc@7000e400 {
> +		nvidia,invert-interrupt;
> +		nvidia,suspend-mode = <1>;
> +		nvidia,cpu-pwr-good-time = <2000>;
> +		nvidia,cpu-pwr-off-time = <100>;
> +		nvidia,core-pwr-good-time = <3845 3845>;
> +		nvidia,core-pwr-off-time = <458>;
> +		nvidia,sys-clock-req-active-high;
> +		core-supply = <&vdd_core>;
> +	};
> +
> +	/* Peripheral USB via ASUS connector */
> +	usb@c5000000 {
> +		compatible = "nvidia,tegra20-udc";
> +		status = "okay";
> +		dr_mode = "peripheral";
> +	};
> +
> +	usb-phy@c5000000 {
> +		status = "okay";
> +		dr_mode = "peripheral";
> +		nvidia,xcvr-setup-use-fuses;
> +		nvidia,xcvr-lsfslew = <2>;
> +		nvidia,xcvr-lsrslew = <2>;
> +		vbus-supply = <&vdd_5v0_sys>;
> +	};
> +
> +	/* Dock's USB port */
> +	usb@c5008000 {
> +		status = "okay";
> +	};
> +
> +	usb-phy@c5008000 {
> +		status = "okay";
> +		nvidia,xcvr-setup-use-fuses;
> +		vbus-supply = <&vdd_5v0_sys>;
> +	};
> +
> +	brcm_wifi_pwrseq: wifi-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +
> +		clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
> +		clock-names = "ext_clock";
> +
> +		reset-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_LOW>;
> +		post-power-on-delay-ms = <200>;
> +		power-off-delay-us = <200>;
> +	};
> +
> +	sdmmc1: mmc@c8000000 {
> +		status = "okay";
> +
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		assigned-clocks = <&tegra_car TEGRA20_CLK_SDMMC1>;
> +		assigned-clock-parents = <&tegra_car TEGRA20_CLK_PLL_C>;
> +		assigned-clock-rates = <40000000>;
> +
> +		max-frequency = <40000000>;
> +		keep-power-in-suspend;
> +		bus-width = <4>;
> +		non-removable;
> +
> +		mmc-pwrseq = <&brcm_wifi_pwrseq>;
> +		vmmc-supply = <&vdd_3v3_sys>;
> +		vqmmc-supply = <&vdd_3v3_sys>;
> +
> +		/* Azurewave AW-NH615 BCM4329B1 */
> +		wifi@1 {
> +			compatible = "brcm,bcm4329-fmac";
> +			reg = <1>;
> +
> +			interrupt-parent = <&gpio>;
> +			interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "host-wake";
> +		};
> +	};
> +
> +	sdmmc3: mmc@c8000400 {
> +		status = "okay";
> +		bus-width = <4>;
> +		cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
> +		wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
> +		power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
> +		vmmc-supply = <&vdd_3v3_sys>;
> +		vqmmc-supply = <&vdd_3v3_sys>;
> +	};
> +
> +	sdmmc4: mmc@c8000600 {
> +		status = "okay";
> +		bus-width = <8>;
> +		vmmc-supply = <&vcore_emmc>;
> +		vqmmc-supply = <&vdd_3v3_sys>;
> +		non-removable;
> +	};
> +
> +	mains: ac-adapter-detect {
> +		compatible = "gpio-charger";
> +		charger-type = "mains";
> +		gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
> +	};
> +
> +	backlight: backlight {
> +		compatible = "pwm-backlight";
> +
> +		enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
> +		power-supply = <&vdd_3v3_sys>;
> +		pwms = <&pwm 2 4000000>;
> +
> +		brightness-levels = <7 255>;
> +		num-interpolated-steps = <248>;
> +		default-brightness-level = <20>;
> +	};
> +
> +	/* PMIC has a built-in 32KHz oscillator which is used by PMC */
> +	clk32k_in: clock-32k-in {
> +		compatible = "fixed-clock";
> +		clock-frequency = <32768>;
> +		#clock-cells = <0>;
> +	};
> +
> +	cpus {
> +		cpu0: cpu@0 {
> +			cpu-supply = <&vdd_cpu>;
> +			operating-points-v2 = <&cpu0_opp_table>;
> +			#cooling-cells = <2>;
> +		};
> +
> +		cpu1: cpu@1 {
> +			cpu-supply = <&vdd_cpu>;
> +			operating-points-v2 = <&cpu0_opp_table>;
> +			#cooling-cells = <2>;
> +		};
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		dock-hall-sensor {
> +			label = "Lid";
> +			gpios = <&gpio TEGRA_GPIO(S, 4) GPIO_ACTIVE_LOW>;
> +			linux,input-type = <EV_SW>;
> +			linux,code = <SW_LID>;
> +			debounce-interval = <500>;
> +			wakeup-event-action = <EV_ACT_ASSERTED>;
> +			wakeup-source;
> +		};
> +
> +		power {
> +			label = "Power";
> +			gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			debounce-interval = <10>;
> +			wakeup-event-action = <EV_ACT_ASSERTED>;
> +			wakeup-source;
> +		};
> +
> +		volume-up {
> +			label = "Volume Up";
> +			gpios = <&gpio TEGRA_GPIO(Q, 5) GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			debounce-interval = <10>;
> +			wakeup-event-action = <EV_ACT_ASSERTED>;
> +			wakeup-source;
> +		};
> +
> +		volume-down {
> +			label = "Volume Down";
> +			gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			debounce-interval = <10>;
> +			wakeup-event-action = <EV_ACT_ASSERTED>;
> +			wakeup-source;
> +		};
> +	};
> +
> +	lvds-encoder {
> +		compatible = "ti,sn75lvds83", "lvds-encoder";
> +
> +		powerdown-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_LOW>;
> +		power-supply = <&vdd_3v3_sys>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lvds_encoder_input: endpoint {
> +					remote-endpoint = <&lcd_output>;
> +				};
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +
> +				lvds_encoder_output: endpoint {
> +					remote-endpoint = <&panel_input>;
> +				};
> +			};
> +		};
> +	};
> +
> +	display-panel {
> +		compatible = "panel-lvds";
> +
> +		/* AUO B101EW05 using custom timings */
> +
> +		backlight = <&backlight>;
> +		ddc-i2c-bus = <&lvds_ddc>;
> +		power-supply = <&vdd_pnl_reg>;
> +
> +		width-mm = <218>;
> +		height-mm = <135>;
> +
> +		data-mapping = "jeida-18";
> +
> +		panel-timing {
> +			clock-frequency = <71200000>;
> +			hactive = <1280>;
> +			vactive = <800>;
> +			hfront-porch = <8>;
> +			hback-porch = <18>;
> +			hsync-len = <184>;
> +			vsync-len = <3>;
> +			vfront-porch = <4>;
> +			vback-porch = <8>;
> +		};
> +
> +		port {
> +			panel_input: endpoint {
> +				remote-endpoint = <&lvds_encoder_output>;
> +			};
> +		};
> +	};
> +
> +	vdd_5v0_sys: regulator-0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_5v0";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +	};
> +
> +	vdd_3v3_sys: regulator-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_3v3_vs";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-always-on;
> +		vin-supply = <&vdd_5v0_sys>;
> +	};
> +
> +	regulator-2 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "pcie_vdd";
> +		regulator-min-microvolt = <1500000>;
> +		regulator-max-microvolt = <1500000>;
> +		gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
> +		regulator-always-on;
> +	};
> +
> +	vdd_pnl_reg: regulator-3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_pnl";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	vdd_1v8_sys: regulator-4 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_1v8_vs";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-always-on;
> +		vin-supply = <&vdd_5v0_sys>;
> +	};
> +
> +	vdd_hdmi_en: regulator-5 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_5v0_hdmi_en";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		regulator-always-on;
> +		vin-supply = <&vdd_5v0_sys>;
> +		gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	sound {
> +		compatible = "asus,tegra-audio-wm8903-tf101",
> +			     "nvidia,tegra-audio-wm8903";
> +		nvidia,model = "Asus EeePad Transformer WM8903";
> +
> +		nvidia,audio-routing =
> +			"Headphone Jack", "HPOUTR",
> +			"Headphone Jack", "HPOUTL",
> +			"Int Spk", "ROP",
> +			"Int Spk", "RON",
> +			"Int Spk", "LOP",
> +			"Int Spk", "LON",
> +			"Mic Jack", "MICBIAS",
> +			"IN1L", "Mic Jack";
> +
> +		nvidia,i2s-controller = <&tegra_i2s1>;
> +		nvidia,audio-codec = <&wm8903>;
> +
> +		nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
> +		nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
> +		nvidia,headset;
> +
> +		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
> +			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
> +			 <&tegra_car TEGRA20_CLK_CDEV1>;
> +		clock-names = "pll_a", "pll_a_out0", "mclk";
> +	};
> +
> +	thermal-zones {
> +		skin-thermal {
> +			polling-delay-passive = <1000>; /* milliseconds */
> +			polling-delay = <0>; /* milliseconds */
> +
> +			thermal-sensors = <&nct1008 0>;
> +		};
> +
> +		cpu-thermal {
> +			polling-delay-passive = <1000>; /* milliseconds */
> +			polling-delay = <5000>; /* milliseconds */
> +
> +			thermal-sensors = <&nct1008 1>;
> +
> +			trips {
> +				trip0: cpu-alert0 {
> +					/* start throttling at 50C */
> +					temperature = <50000>;
> +					hysteresis = <200>;
> +					type = "passive";
> +				};
> +
> +				trip1: cpu-crit {
> +					/* shut down at 60C */
> +					temperature = <60000>;
> +					hysteresis = <2000>;
> +					type = "critical";
> +				};
> +			};
> +
> +			cooling-maps {
> +				map0 {
> +					trip = <&trip0>;
> +					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +				};
> +			};
> +		};
> +	};
> +
> +	memory-controller@7000f400 {
> +		nvidia,use-ram-code;
> +
> +		emc-tables@3 {
> +			reg = <0x3>;
> +
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			lpddr2 {
> +				compatible = "elpida,B8132B2PB-6D-F", "jedec,lpddr2-s4";
> +				revision-id1 = <1>;
> +				density = <2048>;
> +				io-width = <16>;
> +			};
> +
> +			emc-table@25000 {

Ugh... looking at the bindings for this the naming here is rather
unfortunate. emc-tables@3 and emc-table@*... the top-level emc-tables
are really tables, but the emc-table@* are really entries or rows in
that table, not tables themselves. It's also rather unfortunate that we
duplicate the frequency in both the "reg" and "clock-frequency"
properties. One of them would've been enough.

Anyway, looks like this has basically been like this since forever, so
not much that can be done about it.

Again, the memory-controller node needs to be sorted differently. There
are other occurrences of this throughout the file.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-12-10 15:49 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-08 17:35 [PATCH v5 00/24] NVIDIA Tegra ARM32 device-tree patches for 5.17 (new devices and more) Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 01/24] dt-bindings: ARM: tegra: Document ASUS Transformers Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 02/24] dt-bindings: ARM: tegra: Document Pegatron Chagall Dmitry Osipenko
2021-12-10 15:19   ` Thierry Reding
2021-12-10 16:20     ` Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 03/24] ARM: tegra: Add labels to tegra30.dtsi Dmitry Osipenko
2021-12-10 15:22   ` Thierry Reding
2021-12-10 16:26     ` Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 04/24] ARM: tegra: Add labels to tegra114.dtsi Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 05/24] ARM: tegra: Add device-tree for ASUS Transformer EeePad TF101 Dmitry Osipenko
2021-12-10 15:46   ` Thierry Reding [this message]
2021-12-10 16:42     ` Dmitry Osipenko
2021-12-11 15:28     ` Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 06/24] ARM: tegra: Add common device-tree base for Tegra30 ASUS Transformers Dmitry Osipenko
2021-12-10 15:50   ` Thierry Reding
2021-12-10 17:02     ` Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 07/24] ARM: tegra: Add common device-tree for LVDS display panels of Tegra30 ASUS tablets Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 08/24] ARM: tegra: Add device-tree for ASUS Transformer Prime TF201 Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 09/24] ARM: tegra: Add device-tree for ASUS Transformer Pad TF300T Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 10/24] ARM: tegra: Add device-tree for ASUS Transformer Pad TF300TG Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 11/24] ARM: tegra: Add device-tree for ASUS Transformer Infinity TF700T Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 12/24] ARM: tegra: Add device-tree for ASUS Transformer Pad TF701T Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 13/24] ARM: tegra: Add device-tree for Pegatron Chagall Dmitry Osipenko
2021-12-08 17:35 ` [PATCH v5 14/24] ARM: tegra: Add device-tree for 1080p version of Nyan Big Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 15/24] ARM: tegra: Add usb-role-switch property to USB OTG ports Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 16/24] ARM: tegra: Enable HDMI CEC on Nyan Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 17/24] ARM: tegra: Enable CPU DFLL " Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 18/24] ARM: tegra: Add CPU thermal zones to Nyan device-tree Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 19/24] ARM: tegra: Name clock and regulator nodes according to DT-schema Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 20/24] ARM: tegra: nexus7: Drop clock-frequency from NFC node Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 21/24] ARM: tegra: nexus7: Use common LVDS display device-tree Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 22/24] ARM: tegra: Enable video decoder on Tegra114 Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 23/24] ARM: tegra_defconfig: Enable drivers wanted by Acer Chromebooks and ASUS tablets Dmitry Osipenko
2021-12-08 17:36 ` [PATCH v5 24/24] ARM: config: multi v7: Enable display drivers used by Tegra devices Dmitry Osipenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YbN2T5guOfIRLXg1@orome \
    --to=thierry.reding@gmail.com \
    --cc=aaloytorrens@gmail.com \
    --cc=clamor95@gmail.com \
    --cc=david@ixit.cz \
    --cc=devicetree@vger.kernel.org \
    --cc=digetx@gmail.com \
    --cc=hedmoo@yahoo.com \
    --cc=ion@agorria.com \
    --cc=jenneron@protonmail.com \
    --cc=jja2000@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=maxim.schwalm@gmail.com \
    --cc=mirq-linux@rere.qmqm.pl \
    --cc=mnidza@outlook.com \
    --cc=raffaele.tranquillini@gmail.com \
    --cc=stefan.eichenberger@toradex.com \
    --cc=tailormoon@rambler.ru \
    --cc=thomas.graichen@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).