From nobody Tue Dec 16 07:27:50 2025 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DD0F1C700B; Wed, 14 May 2025 15:08:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.11.138.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235289; cv=none; b=BpEDOPMAGZ/d96SNWFeNJPtykA8B/YJjWlRxzM1fxyZEb6e+AEUVR5Y8ROncOZeAQWu1fJle1toWcizxe7/wXaOoMa9QV+o7is+mO6djl/fwUiGJMecJ1uRdZ6p7wjhLrGJ7ca+JNbOweRAE+jQviOB78zTALkB0wPDhJ1f9opM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235289; c=relaxed/simple; bh=v5YY0SZ0PYpJOc41X3mbWN+7Qhji612T5TVNWtMUFmM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JFXhzutP236QRzZdZEcgHGzWiewzL9xkhJkJviSXR5MoEs+n0tC0z4V8UwpKxZXY8IetpUeZzo0JTOvx/E4ZTRVR1824oqoboeE2yrB5bat8eKV3dd6KLWxPZPpF6c+Ggc3GM9GMPjQTvXLfEim7Wg5KFfVoJO0H9Sk8UumOVSU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de; spf=pass smtp.mailfrom=sntech.de; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b=U/5UTl7k; arc=none smtp.client-ip=185.11.138.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sntech.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b="U/5UTl7k" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=RV3QvTlWfQTkDjPmndYOu91G7Myw8NKGakZkfON1fQE=; b=U/5UTl7kW20dUxg3as4vjPS5Hm MoFDma9yUdEFw3cV6sSdF+lfu6QWthYj+l6rwQ2DaExqVA0ecSq+EOuoHCtCEKCcbEVusodO6Iaie DWJaWssg0K9QRJG3jZQLZdwQYpbVFEjaEH+QXh79P/dKODWx8jHtN0o3gL7ve1FWtaHqk9pAALaYf /ZtEMjZiNtO1gtZjntKoS29tV4L1loKXlwsEXSjpnmvocwQvkc/dnhN1m91jrFr0M8XUI//Xgihnt R+VEQh+gnxibHZKXW6M+IUFb5LIiOfk8KyKltOZSanQiM5LkWL4D6JqiZ0Ggg6k8POdt5shFsz+Dc VMhHi8Sw==; Received: from i53875a50.versanet.de ([83.135.90.80] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFDi8-0006vE-5C; Wed, 14 May 2025 17:07:56 +0200 From: Heiko Stuebner To: heiko@sntech.de Cc: quentin.schulz@cherry.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Heiko Stuebner Subject: [PATCH v4 1/6] arm64: dts: rockchip: add basic mdio node to px30 Date: Wed, 14 May 2025 17:07:40 +0200 Message-ID: <20250514150745.2437804-2-heiko@sntech.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250514150745.2437804-1-heiko@sntech.de> References: <20250514150745.2437804-1-heiko@sntech.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner Using snps,reset-* properties for handling the phy-reset is deprecated and instead a real phy node should be defined that then contains the reset-gpios handling. To facilitate this, add the core mdio node under the px30's gmac, similar to how the other Rockchip socs already do this. Signed-off-by: Heiko Stuebner Reviewed-by: Quentin Schulz --- arch/arm64/boot/dts/rockchip/px30.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/r= ockchip/px30.dtsi index 9137dd76e72c..feabdadfa440 100644 --- a/arch/arm64/boot/dts/rockchip/px30.dtsi +++ b/arch/arm64/boot/dts/rockchip/px30.dtsi @@ -985,6 +985,12 @@ gmac: ethernet@ff360000 { resets =3D <&cru SRST_GMAC_A>; reset-names =3D "stmmaceth"; status =3D "disabled"; + + mdio: mdio { + compatible =3D "snps,dwmac-mdio"; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; }; =20 sdmmc: mmc@ff370000 { --=20 2.47.2 From nobody Tue Dec 16 07:27:50 2025 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62C101C84BD; Wed, 14 May 2025 15:08:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.11.138.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235289; cv=none; b=relaGNjT+tU3u1cCTYr82zOXNhkxpypBD/ShkacaiHqteEC5UKMnPSHD1dSWFr4sTjQi091M8CA9a+yvhK0QKM2xHIiWB93HuCPjHHy8Fq7prygCV04iYSSiJ7lz4lXUayivr9aJr0dHUVCLkALDm+wpVGAqISis3dcDMjHRIr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235289; c=relaxed/simple; bh=m5vCvjfOgtsdOdZeYm5gSkKK2NkNNaRASLMycHBQAyo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fu2XIy6y8UvpwxYWNkrM6EBaP20fzn8IzeEtR7NABHCMgEt0SZ9QZFviLI71eZHctqkgD0CX+c+ReEtKSF61HtKmXA9PD9ceu/Hy46T5Ndzc2ULMhnmfIBq4If95f4I0vzqRNObL/E4zkBXEGtHHStdj0SPlXgtcTJHbGKUuSEY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de; spf=pass smtp.mailfrom=sntech.de; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b=00xdPBV5; arc=none smtp.client-ip=185.11.138.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sntech.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b="00xdPBV5" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=bup6NhA6evSSr2vJWZ/rxyhkcFN8+wVdFF6iyZzNxv0=; b=00xdPBV5LYUhsKRl0GPLmUYjwN MlKlXssVXXHpKTVBWLO7vYS3B5E0puV5YwwmnYbPxrTzmePbxtPjsvUPxmIhUPmMrWLHhWY1dLBnd 65kynvoqfcnLVH3zda3mHp3NsF18gDQ7djvUJjPTCrC+qMYQkITkU6V6a+JGo+69RO5o9roByzLgZ Dx7/nwxLu61OuoNqRo6bLIEoYgUzowC4eCvt2ap5+/3Thsm10owOHuxz+R000k3TbDTWaTW44qzde ibQIxMYX05W+4z/UnXUdaDn6MkXnEr2DQ++1zcwaahwDH7yM/RwbRJRnH9bhqpf85t/TnVB8DrR74 39JLSKPw==; Received: from i53875a50.versanet.de ([83.135.90.80] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFDi8-0006vE-JA; Wed, 14 May 2025 17:07:56 +0200 From: Heiko Stuebner To: heiko@sntech.de Cc: quentin.schulz@cherry.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Heiko Stuebner Subject: [PATCH v4 2/6] arm64: dts: rockchip: move reset to dedicated eth-phy node on ringneck Date: Wed, 14 May 2025 17:07:41 +0200 Message-ID: <20250514150745.2437804-3-heiko@sntech.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250514150745.2437804-1-heiko@sntech.de> References: <20250514150745.2437804-1-heiko@sntech.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner Using snps,reset-* properties to handle the ethernet-phy resets is deprecated and instead a real phy node should be used. Move the Ringneck phy-reset properties to such a node Signed-off-by: Heiko Stuebner Reviewed-by: Quentin Schulz Tested-by: Quentin Schulz --- .../boot/dts/rockchip/px30-ringneck.dtsi | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi b/arch/arm64/b= oot/dts/rockchip/px30-ringneck.dtsi index 142244d52706..ab232e5c7ad6 100644 --- a/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi +++ b/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi @@ -83,9 +83,7 @@ &emmc { =20 /* On-module TI DP83825I PHY but no connector, enable in carrierboard */ &gmac { - snps,reset-gpio =3D <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; - snps,reset-active-low; - snps,reset-delays-us =3D <0 50000 50000>; + phy-handle =3D <&dp83825>; phy-supply =3D <&vcc_3v3>; clock_in_out =3D "output"; }; @@ -344,6 +342,18 @@ &io_domains { status =3D "okay"; }; =20 +&mdio { + dp83825: ethernet-phy@0 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <0x0>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&phy_rst>; + reset-assert-us =3D <50000>; + reset-deassert-us =3D <50000>; + reset-gpios =3D <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; + }; +}; + &pinctrl { emmc { emmc_reset: emmc-reset { @@ -351,6 +361,12 @@ emmc_reset: emmc-reset { }; }; =20 + ethernet { + phy_rst: phy-rst { + rockchip,pins =3D <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + leds { module_led_pin: module-led-pin { rockchip,pins =3D <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; --=20 2.47.2 From nobody Tue Dec 16 07:27:50 2025 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DD641C84A4; Wed, 14 May 2025 15:08:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.11.138.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235288; cv=none; b=SgUIHiR+3DtEjbpCzvOK/ymWXx7M9hIElrN1MjuNgGJljMEVLLBaP+X0IBWdlOotbmW8xkuzjd2NpxOHNaYBoan1eAALY9EInL7Vcsyn4/lokojtWl+otV8c52ao7uFn+J1Pcg0ZjE6M1wBHiDn3VUKSMIzjjYxjIkLG4a4m9UU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235288; c=relaxed/simple; bh=CvR8WHWM2jnJoEpIZ5bGL7qBQYCWNZnk21yZqVb2Koo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P+bRzAT6x9aCNXKMf4KtTi9QD5UkDoYDFeTiDvH9j582S0Vk+wvEciNz4DLgMR0x2MYiDod6LCIZ0C/qdpXYVI1o3aZ+ZEhOXDKQVrLHmBH4tttqsswNlbO84tgm5ITq7kjCiZO5qcuHa54kJ4scCG0Zrt2eRkozrGzMfbZ07AE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de; spf=pass smtp.mailfrom=sntech.de; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b=ylvxwiUB; arc=none smtp.client-ip=185.11.138.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sntech.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b="ylvxwiUB" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=1ilQCMhL0zZkQUGRLRjUKYJt6Qmtnyc4KrCcRajmp7I=; b=ylvxwiUBtdYoHROVLUmT3jtJsF JG85aJtKwLIKNzRifY4y1JyYuTEr2/Kt6zNnOvCMWYZc+m7VdaocDY5P7C7jymsE0jQlM6xhfiRQz HIqA7s9vkMMlOAxN+Bj1K/kK2Rz3t1i5N+xMwL55Npd6ZyN2XNK0AR8pbmWsZdcRaN3SbzAN/de6Q 3nmrL32XsjOy7JbAvB2JLEo9dQM1G0i72lcQ6LUEI7cH3uEQIO5jXCg9zDB7CzLwdvzC+3dYmJe17 Mmg8mDK/C4a8dnxjAxNir6xbohg0hJiWn3vIWB6SzI+lxWCMqiKu+G6LjpC5rtBp4MeIGcIfzeb1d 6C+S7mdA==; Received: from i53875a50.versanet.de ([83.135.90.80] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFDi9-0006vE-1X; Wed, 14 May 2025 17:07:57 +0200 From: Heiko Stuebner To: heiko@sntech.de Cc: quentin.schulz@cherry.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Heiko Stuebner , Conor Dooley Subject: [PATCH v4 3/6] dt-bindings: arm: rockchip: add PX30-Cobra boards from Theobroma Systems Date: Wed, 14 May 2025 17:07:42 +0200 Message-ID: <20250514150745.2437804-4-heiko@sntech.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250514150745.2437804-1-heiko@sntech.de> References: <20250514150745.2437804-1-heiko@sntech.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner Cobra are Touchscreen devices built around the PX30 SoC using a variety of display options. The devices feature an EMMC, network port, usb host + OTG ports and a 720x1280 display with a touchscreen. Signed-off-by: Heiko Stuebner Acked-by: Conor Dooley Reviewed-by: Quentin Schulz --- Documentation/devicetree/bindings/arm/rockchip.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Document= ation/devicetree/bindings/arm/rockchip.yaml index 650fb833d96e..6435c724e682 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -1109,6 +1109,16 @@ properties: - rockchip,rv1126 - rockchip,rv1109 =20 + - description: Theobroma Systems PX30-Cobra + items: + - enum: + - tsd,px30-cobra-ltk050h3146w + - tsd,px30-cobra-ltk050h3146w-a2 + - tsd,px30-cobra-ltk050h3148w + - tsd,px30-cobra-ltk500hd1829 + - const: tsd,px30-cobra + - const: rockchip,px30 + - description: Theobroma Systems PX30-uQ7 with Haikou baseboard items: - const: tsd,px30-ringneck-haikou --=20 2.47.2 From nobody Tue Dec 16 07:27:50 2025 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62CB81C84D9; Wed, 14 May 2025 15:08:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.11.138.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235290; cv=none; b=OT98fLI4F6mw9JruvqBtWzgwKVZCUMUY13mrHaF93MEj81YalPFqborlt18LT1+mQu5DFz0OwvNzku7PcKvQttABadUKwBZodgs7QLjXu/YRtihxMQREgiMgY+quGp28OkG6rkIE3iaQToBeLHA7OgLWfbDEy3ftFFRhcnzI3pg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235290; c=relaxed/simple; bh=jTTcmcuyzTWSXLUmH9dPKJHA/Ldu2EMon2y5BfsHA3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ai+dF+YIIoipCSf9ZTQP5J/epuEL0yKmRgYDdkDXphq7DUk1g0vuWuwNxiebIiFaAndJlokZejnaZoA1UZYrm7FGlHb4VXv7Q9iM/xvkvHhjLL9cThvWwDCzGQ4fcvv590tsg5CN9mEBxn/UMNgZRgblsc6k8maY2t8yB7voslk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de; spf=pass smtp.mailfrom=sntech.de; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b=JCETPfDk; arc=none smtp.client-ip=185.11.138.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sntech.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b="JCETPfDk" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=GyxRPTv8ehdKev/0X1HqcYTG7656oIysUNv9gCkyuGw=; b=JCETPfDkiUdwNl9qo7sqXY7qGZ dZG2apvEur73tfWbaOz7Y+DZswDbQFe6vMZp/G9xOIOIwmISTmpQ5Er1wDHxt+S56Sb3NftAdPLEh FtOm9/dj+1oTS9LMD9HA8kicXdNHQOnA8/gagB/skf5ta8rdNMr1CywngVoItqb8fnyHbnIkrlDEq 5eo+kY+Kb3KWXaDgFnUlMDzUdrcvS5fp5Xb+nGvSAgq6bzY8puMwUbPSow9WpzhH8lTxrIZQEFnKw 52D0xO4Vu2wqapKwhzzOBvbIHG+S4Sx0mSfpKXpkilDNqub+/lEiDa2k974cT55dEVoQW5XQF0mmO 9I1bQ31Q==; Received: from i53875a50.versanet.de ([83.135.90.80] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFDi9-0006vE-FW; Wed, 14 May 2025 17:07:57 +0200 From: Heiko Stuebner To: heiko@sntech.de Cc: quentin.schulz@cherry.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Heiko Stuebner Subject: [PATCH v4 4/6] arm64: dts: rockchip: add px30-cobra base dtsi and board variants Date: Wed, 14 May 2025 17:07:43 +0200 Message-ID: <20250514150745.2437804-5-heiko@sntech.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250514150745.2437804-1-heiko@sntech.de> References: <20250514150745.2437804-1-heiko@sntech.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner Cobra are Touchscreen devices built around the PX30 SoC using a variety of display options. The devices feature an EMMC, network port, usb host + OTG ports and a 720x1280 display with a touchscreen. Signed-off-by: Heiko Stuebner Reviewed-by: Quentin Schulz --- arch/arm64/boot/dts/rockchip/Makefile | 4 + .../rockchip/px30-cobra-ltk050h3146w-a2.dts | 39 ++ .../dts/rockchip/px30-cobra-ltk050h3146w.dts | 39 ++ .../dts/rockchip/px30-cobra-ltk050h3148w.dts | 39 ++ .../dts/rockchip/px30-cobra-ltk500hd1829.dts | 73 +++ arch/arm64/boot/dts/rockchip/px30-cobra.dtsi | 566 ++++++++++++++++++ 6 files changed, 760 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w-a2= .dts create mode 100644 arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w.dts create mode 100644 arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3148w.dts create mode 100644 arch/arm64/boot/dts/rockchip/px30-cobra-ltk500hd1829.dts create mode 100644 arch/arm64/boot/dts/rockchip/px30-cobra.dtsi diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/ro= ckchip/Makefile index 3e8771ef69ba..8151e8bb1cd3 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -1,4 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-cobra-ltk050h3146w-a2.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-cobra-ltk050h3146w.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-cobra-ltk050h3148w.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-cobra-ltk500hd1829.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-engicam-px30-core-ctouch2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-engicam-px30-core-ctouch2-of10.dtb diff --git a/arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w-a2.dts b/= arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w-a2.dts new file mode 100644 index 000000000000..1d26164be7b8 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w-a2.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include "px30-cobra.dtsi" + +/ { + model =3D "Theobroma Systems Cobra with LTK050H3146W-A2 Display"; + compatible =3D "tsd,px30-cobra-ltk050h3146w-a2", "tsd,px30-cobra", "rockc= hip,px30"; +}; + +&dsi { + status =3D "okay"; + + panel@0 { + compatible =3D "leadtek,ltk050h3146w-a2"; + reg =3D <0>; + backlight =3D <&backlight>; + iovcc-supply =3D <&vcc_1v8>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsp_rst>; + reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + vci-supply =3D <&vcc_2v8>; + + port { + mipi_in_panel: endpoint { + remote-endpoint =3D <&mipi_out_panel>; + }; + }; + }; +}; + +&dsi_out { + mipi_out_panel: endpoint { + remote-endpoint =3D <&mipi_in_panel>; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w.dts b/arc= h/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w.dts new file mode 100644 index 000000000000..82c6acdb4fae --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3146w.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include "px30-cobra.dtsi" + +/ { + model =3D "Theobroma Systems Cobra with LTK050H3146W Display"; + compatible =3D "tsd,px30-cobra-ltk050h3146w", "tsd,px30-cobra", "rockchip= ,px30"; +}; + +&dsi { + status =3D "okay"; + + panel@0 { + compatible =3D "leadtek,ltk050h3146w"; + reg =3D <0>; + backlight =3D <&backlight>; + iovcc-supply =3D <&vcc_1v8>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsp_rst>; + reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + vci-supply =3D <&vcc_2v8>; + + port { + mipi_in_panel: endpoint { + remote-endpoint =3D <&mipi_out_panel>; + }; + }; + }; +}; + +&dsi_out { + mipi_out_panel: endpoint { + remote-endpoint =3D <&mipi_in_panel>; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3148w.dts b/arc= h/arm64/boot/dts/rockchip/px30-cobra-ltk050h3148w.dts new file mode 100644 index 000000000000..94449132df38 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-cobra-ltk050h3148w.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include "px30-cobra.dtsi" + +/ { + model =3D "Theobroma Systems Cobra with ltk050h3148w Display"; + compatible =3D "tsd,px30-cobra-ltk050h3148w", "tsd,px30-cobra", "rockchip= ,px30"; +}; + +&dsi { + status =3D "okay"; + + panel@0 { + compatible =3D "leadtek,ltk050h3148w"; + reg =3D <0>; + backlight =3D <&backlight>; + iovcc-supply =3D <&vcc_1v8>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsp_rst>; + reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + vci-supply =3D <&vcc_2v8>; + + port { + mipi_in_panel: endpoint { + remote-endpoint =3D <&mipi_out_panel>; + }; + }; + }; +}; + +&dsi_out { + mipi_out_panel: endpoint { + remote-endpoint =3D <&mipi_in_panel>; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/px30-cobra-ltk500hd1829.dts b/arc= h/arm64/boot/dts/rockchip/px30-cobra-ltk500hd1829.dts new file mode 100644 index 000000000000..d7b639e7ccab --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-cobra-ltk500hd1829.dts @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include "px30-cobra.dtsi" + +/ { + model =3D "Theobroma Systems Cobra prototype with LTK500HD1829 Display"; + compatible =3D "tsd,px30-cobra-ltk500hd1829", "tsd,px30-cobra", "rockchip= ,px30"; + + aliases { + mmc1 =3D &sdmmc; + }; +}; + +&dsi { + status =3D "okay"; + + panel@0 { + compatible =3D "leadtek,ltk500hd1829"; + reg =3D <0>; + backlight =3D <&backlight>; + iovcc-supply =3D <&vcc_1v8>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsp_rst>; + reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + vcc-supply =3D <&vcc_2v8>; + + port { + mipi_in_panel: endpoint { + remote-endpoint =3D <&mipi_out_panel>; + }; + }; + }; +}; + +&dsi_out { + mipi_out_panel: endpoint { + remote-endpoint =3D <&mipi_in_panel>; + }; +}; + +&pinctrl { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cobra_pin_hog>, <&cobra_proto_hog>; + + hog { + cobra_proto_hog: cobra-proto-hog { + rockchip,pins =3D + /* STUSB4500 open drain outout POWER_OK2, needs pull-up */ + <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>, + /* STUSB4500 open drain outout POWER_OK3, needs pull-up */ + <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +&sdmmc { + bus-width =3D <4>; + broken-cd; + cap-sd-highspeed; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; + vmmc-supply =3D <&vccio_sd>; + vqmmc-supply =3D <&vccio_sd>; + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/rockchip/px30-cobra.dtsi b/arch/arm64/boot= /dts/rockchip/px30-cobra.dtsi new file mode 100644 index 000000000000..b7e669d8ba4d --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-cobra.dtsi @@ -0,0 +1,566 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include +#include +#include +#include +#include "px30.dtsi" + +/ { + aliases { + ethernet0 =3D &gmac; + mmc0 =3D &emmc; + }; + + chosen { + stdout-path =3D "serial5:115200n8"; + }; + + backlight: backlight { + compatible =3D "pwm-backlight"; + power-supply =3D <&vcc5v0_sys>; + pwms =3D <&pwm0 0 25000 0>; + }; + + beeper { + compatible =3D "pwm-beeper"; + pwms =3D <&pwm1 0 1000 0>; + }; + + emmc_pwrseq: emmc-pwrseq { + compatible =3D "mmc-pwrseq-emmc"; + pinctrl-0 =3D <&emmc_reset>; + pinctrl-names =3D "default"; + reset-gpios =3D <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>; + }; + + gpio-leds { + compatible =3D "gpio-leds"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&heartbeat_led_pin>; + + /* + * LED14 on the PCB. Typically NOT populated. + */ + led-0 { + color =3D ; + gpios =3D <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; + label =3D "heartbeat"; + linux,default-trigger =3D "heartbeat"; + }; + }; + + pwm-leds { + compatible =3D "pwm-leds"; + + ring_red: led-0 { + color =3D ; + default-state =3D "off"; + label =3D "ring_red"; + pwms =3D <&pwm5 0 1000000 0>; + max-brightness =3D <255>; + }; + + ring_green: led-1 { + color =3D ; + default-state =3D "off"; + label =3D "ring_green"; + pwms =3D <&pwm6 0 1000000 0>; + max-brightness =3D <255>; + }; + + ring_blue: led-2 { + color =3D ; + default-state =3D "off"; + label =3D "ring_blue"; + pwms =3D <&pwm7 0 1000000 0>; + max-brightness =3D <255>; + }; + }; + + /* also named 5V_Q7 in schematics */ + vcc5v0_sys: regulator-vccsys { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + }; +}; + +&cpu0 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu1 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu2 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu3 { + cpu-supply =3D <&vdd_arm>; +}; + +&display_subsystem { + status =3D "okay"; +}; + +&dsi_dphy { + status =3D "okay"; +}; + +&emmc { + bus-width =3D <8>; + cap-mmc-highspeed; + /* + * For hs200 support, U-Boot would have to set the RK809 DCDC4 + * rail to 1.8V from the default of 3.0V. It doesn't do that on + * devices out in the field, so disable hs200. + * mmc-hs200-1_8v; + */ + mmc-pwrseq =3D <&emmc_pwrseq>; + non-removable; + vmmc-supply =3D <&vcc_3v3>; + vqmmc-supply =3D <&vcc_emmc>; + status =3D "okay"; +}; + +&gmac { + clock_in_out =3D "output"; + phy-handle =3D <&dp83825>; + phy-supply =3D <&vcc_3v3>; + status =3D "okay"; +}; + +&gpu { + mali-supply =3D <&vdd_log>; + status =3D "okay"; +}; + +/* I2C0 =3D PMIC, STUSB4500, RTC */ +&i2c0 { + status =3D "okay"; + + rk809: pmic@20 { + compatible =3D "rockchip,rk809"; + reg =3D <0x20>; + #clock-cells =3D <0>; + clock-output-names =3D "xin32k"; + interrupt-parent =3D <&gpio0>; + interrupts =3D ; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pmic_int>; + system-power-controller; + wakeup-source; + + vcc1-supply =3D <&vcc5v0_sys>; + vcc2-supply =3D <&vcc5v0_sys>; + vcc3-supply =3D <&vcc5v0_sys>; + vcc4-supply =3D <&vcc5v0_sys>; + vcc5-supply =3D <&vcc_3v3>; + vcc6-supply =3D <&vcc_3v3>; + vcc7-supply =3D <&vcc_3v3>; + vcc9-supply =3D <&vcc5v0_sys>; + + regulators { + vdd_log: DCDC_REG1 { + regulator-name =3D "vdd_log"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <950000>; + regulator-max-microvolt =3D <1350000>; + regulator-ramp-delay =3D <6001>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <950000>; + }; + }; + + vdd_arm: DCDC_REG2 { + regulator-name =3D "vdd_arm"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <950000>; + regulator-max-microvolt =3D <1350000>; + regulator-ramp-delay =3D <6001>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <950000>; + }; + }; + + vcc_ddr: DCDC_REG3 { + regulator-name =3D "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc_3v0_1v8: vcc_emmc: DCDC_REG4 { + regulator-name =3D "vcc_3v0_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3000000>; + }; + }; + + vcc_3v3: DCDC_REG5 { + regulator-name =3D "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3300000>; + }; + }; + + vcc_1v8: LDO_REG2 { + regulator-name =3D "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + + vcc_1v0: LDO_REG3 { + regulator-name =3D "vcc_1v0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <1000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1000000>; + }; + }; + + vcc_2v8: LDO_REG4 { + regulator-name =3D "vcc_2v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <2800000>; + }; + }; + + /* + * vccio_sd also supplies the vmmc supply on prototypes + * with sd-slots, so needs to stay single voltage for + * those. Production models don't have sd-slots anymore + * and only supply vccio2 from this regulator. + */ + vccio_sd: LDO_REG5 { + regulator-name =3D "vccio_sd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3000000>; + }; + }; + + /* vcc_sdio also supplies the pull-up resistors for i2c1 */ + vcc_sdio: LDO_REG6 { + regulator-name =3D "vcc_sdio"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3300000>; + }; + }; + + vcc_lcd: LDO_REG7 { + regulator-name =3D "vcc_lcd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <1000000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <1000000>; + }; + }; + + vcc_1v8_lcd: LDO_REG8 { + regulator-name =3D "vcc_1v8_lcd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + + vcca_1v8: LDO_REG9 { + regulator-name =3D "vcca_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + }; + }; +}; + +&i2c1 { + clock-frequency =3D <100000>; + status =3D "okay"; +}; + +&i2c2 { + clock-frequency =3D <100000>; + i2c-scl-falling-time-ns =3D <50>; + i2c-scl-rising-time-ns =3D <300>; + status =3D "okay"; + + touchscreen@14 { + compatible =3D "goodix,gt911"; + reg =3D <0x14>; + AVDD28-supply =3D <&vcc_2v8>; + interrupt-parent =3D <&gpio0>; + interrupts =3D ; + irq-gpios =3D <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&tch_int &tch_rst>; + reset-gpios =3D <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; + touchscreen-inverted-x; + VDDIO-supply =3D <&vcc_3v3>; + }; +}; + +/* + * Enable pull-ups to prevent floating pins when the touch + * panel is not connected. + */ +&i2c2_xfer { + rockchip,pins =3D + <2 RK_PB7 2 &pcfg_pull_up>, + <2 RK_PC0 2 &pcfg_pull_up>; +}; + +&io_domains { + vccio1-supply =3D <&vcc_sdio>; + vccio2-supply =3D <&vccio_sd>; + vccio3-supply =3D <&vcc_3v3>; + vccio4-supply =3D <&vcc_3v3>; + vccio5-supply =3D <&vcc_1v8>; + vccio6-supply =3D <&vcc_emmc>; + status =3D "okay"; +}; + +&mdio { + dp83825: ethernet-phy@0 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <0x0>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&phy_rst>; + reset-assert-us =3D <50000>; + reset-deassert-us =3D <50000>; + reset-gpios =3D <&gpio2 RK_PB6 GPIO_ACTIVE_LOW>; + }; +}; + +&pinctrl { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cobra_pin_hog>; + + hog { + cobra_pin_hog: cobra-pin-hog { + rockchip,pins =3D + /* USB_HUB2_RESET */ + <0 RK_PA5 RK_FUNC_GPIO &pcfg_output_high>, + /* USB_HUB1_RESET */ + <0 RK_PB4 RK_FUNC_GPIO &pcfg_output_high>, + /* The default pull-down can keep the IC in reset. */ + <3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>, + /* USB-A 5V enable */ + <3 RK_PC0 RK_FUNC_GPIO &pcfg_output_high>, + /* USB-A data enable */ + <3 RK_PD3 RK_FUNC_GPIO &pcfg_output_high>; + }; + }; + + emmc { + emmc_reset: emmc-reset { + rockchip,pins =3D + <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + ethernet { + phy_rst: phy-rst { + rockchip,pins =3D + <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + heartbeat_led_pin: heartbeat-led-pin { + rockchip,pins =3D + <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + panel { + dsp_rst: dsp-rst { + rockchip,pins =3D + <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + tch_int: tch-int { + rockchip,pins =3D + <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + tch_rst: tch-rst { + rockchip,pins =3D + <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pmic { + pmic_int: pmic-int { + rockchip,pins =3D + <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +&pmu_io_domains { + pmuio1-supply =3D <&vcc_3v3>; + pmuio2-supply =3D <&vcc_3v3>; + status =3D "okay"; +}; + +&pwm0 { + status =3D "okay"; +}; + +&pwm1 { + status =3D "okay"; +}; + +&pwm5 { + status =3D "okay"; +}; + +&pwm6 { + status =3D "okay"; +}; + +&pwm7 { + status =3D "okay"; +}; + +&saradc { + vref-supply =3D <&vcc_1v8>; + status =3D "okay"; +}; + +&tsadc { + status =3D "okay"; +}; + +&u2phy { + status =3D "okay"; +}; + +&u2phy_host { + status =3D "okay"; +}; + +&u2phy_otg { + status =3D "okay"; +}; + +&uart1 { + /delete-property/ dmas; + /delete-property/ dma-names; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart1_xfer>; + status =3D "okay"; +}; + +&uart5 { + pinctrl-0 =3D <&uart5_xfer>; + status =3D "okay"; +}; + +&usb20_otg { + status =3D "okay"; +}; + +&usb_host0_ehci { + status =3D "okay"; +}; + +&usb_host0_ohci { + status =3D "okay"; +}; + +&vopb { + status =3D "okay"; +}; + +&vopb_mmu { + status =3D "okay"; +}; + +&vopl { + status =3D "disabled"; +}; + +&vopl_mmu { + status =3D "disabled"; +}; + +&wdt { + status =3D "okay"; +}; --=20 2.47.2 From nobody Tue Dec 16 07:27:50 2025 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C97E1E5B79; Wed, 14 May 2025 15:08:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.11.138.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235292; cv=none; b=je+bI/ATlFdBPN2KVsJMg1MoaSKxWhkL2V+JbXrCpaSdJKNLJaGx4gsMGz6Rc+7UlZWaf4Q+TBmcxeJ+r2srHIFXBu/BfzVJppnvAGfqTS6DMAQeQax1aKz488ExrCSwIyH1wOHxKq9eW3+we6/CHcZQop/NIJ1b4O2QP0UY5NY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235292; c=relaxed/simple; bh=MzP853kfTzrQLxH3q61RtSYRjD2zGOvdhEiDd1AapCw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a4hcpMAG+RZ299LJhlv8bo/4kVsLvZTkPQUf9cNRifDaL04YphQeld5nlmyxgj2zTLK0xB3M1+5G8aSyXvWppsIEDVpvJJ0QIfuytMZ2B7QZ03K2FeSCGpZUNS3c42hL8y+wg73IbQdwZ/3KkSLCR9GSdq4Fmxf43+J3AUeKfa4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de; spf=pass smtp.mailfrom=sntech.de; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b=g4Itdut8; arc=none smtp.client-ip=185.11.138.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sntech.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b="g4Itdut8" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=fkwdOn5n0SYL4gFgl3/rMnyEKOjKxd4O0ZvjvmC/+0A=; b=g4Itdut8mRNhSCydg08H9xwyeX HrO915hAMoYhShCOabyVkDoM30ztfZNgEUrIO0OYa12C6/ssIstVn5Mzivy9XyXhBhXp4CpvC6Xkh xk4vmr559MrlJU8EKgQxeRxSJrKYIBmlV6mZFn5VGOt00hGuRW8blWrAF2LWUzFFuAgO/hsG5W3/C OkIBafsYv3VurWLjtZULehw8gv07UerARiQGbzMy+4/6LFmRLYO7ydxq6UbUuaEWTxw75NiCMJ5+b 5opDYwbfPnbEEzqXibxGV6+JaavtpKWtvl2umd6Me0IOd+dw4XqLoKV02UywA+1ILsu5g2pZTFAVV u/od+wJg==; Received: from i53875a50.versanet.de ([83.135.90.80] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFDi9-0006vE-Uo; Wed, 14 May 2025 17:07:58 +0200 From: Heiko Stuebner To: heiko@sntech.de Cc: quentin.schulz@cherry.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Heiko Stuebner , Conor Dooley Subject: [PATCH v4 5/6] dt-bindings: arm: rockchip: add PX30-PP1516 boards from Theobroma Systems Date: Wed, 14 May 2025 17:07:44 +0200 Message-ID: <20250514150745.2437804-6-heiko@sntech.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250514150745.2437804-1-heiko@sntech.de> References: <20250514150745.2437804-1-heiko@sntech.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner PP1516 are Touchscreen devices built around the PX30 SoC and companion devices to PX30-Cobra, again with multiple display options. The devices feature an EMMC, OTG port and a 720x1280 display with a touchscreen and camera Signed-off-by: Heiko Stuebner Acked-by: Conor Dooley Reviewed-by: Quentin Schulz --- Documentation/devicetree/bindings/arm/rockchip.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Document= ation/devicetree/bindings/arm/rockchip.yaml index 6435c724e682..58af37b4d6b8 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -1119,6 +1119,14 @@ properties: - const: tsd,px30-cobra - const: rockchip,px30 =20 + - description: Theobroma Systems PX30-PP1516 + items: + - enum: + - tsd,px30-pp1516-ltk050h3146w-a2 + - tsd,px30-pp1516-ltk050h3148w + - const: tsd,px30-pp1516 + - const: rockchip,px30 + - description: Theobroma Systems PX30-uQ7 with Haikou baseboard items: - const: tsd,px30-ringneck-haikou --=20 2.47.2 From nobody Tue Dec 16 07:27:50 2025 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C9231E5213; Wed, 14 May 2025 15:08:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.11.138.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235292; cv=none; b=ikiJgzUPGMZ8ilfLC7KvL8Mbwh0ZBYiYsY686DcZZknpfcfzSzMcfq8Dlsi2YW2517sydezMR2Ny1KDVi60sWYCfRovSyBwfm5LPtJZsjdDP4ufixJmMppwP00aUkiXPUpfzocJbNOqRWVZ3aUj6FWhMK7TaFWWfVHJctZRIFxo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747235292; c=relaxed/simple; bh=Z2k+Z3ej+xBBSlI+v5A/FT6JPN3k1dR1YS9RIx2vmrM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VRHg2bKjYTgxHegY7tbqRjDNLSB4orxBpu6cUI+PWhn8an3UdMaFeW9FjBoQy+tbMz5fIax39mnmtXSxtAF5WW/FD8RCy3b+MCii1pI/IfLYU2BdhfJ7BkwahewK+dcA7fi9CGCpNwNZY41It+0Xav0G/+HcuPJQMdkEYfRsheg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de; spf=pass smtp.mailfrom=sntech.de; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b=cbreNX6i; arc=none smtp.client-ip=185.11.138.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sntech.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sntech.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sntech.de header.i=@sntech.de header.b="cbreNX6i" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=Drf+NVrVuz8HdLieCwaETCrvT5VW/a6sghwm+qTJzWg=; b=cbreNX6iIiLWQZ+zDS8RTJYuS7 krv7lSwz5rhhB2FAUxleRZgwGQGBnn/K++9g4EF3fE/GK4EFGIZuHsnzUE/QGK0p0dOyUHF50O4KW BN7ZNIl8ny/iclMCRllL0Fn/6bSUG1cAa6MutXCAuovX1OB7TcXJ2t+EwP7IOd/22zq/2lRudboKj BX/0bMG3uoCiWCrKnVOl0sfkQJ5lU3mcyYjMzMki1tlU8EktyDCtPAm9B8JGxS0/93ayEP1dvpMdQ nXkRhKSYHFwTcZ/0G+zEr4GZnoAhTgtKCTLCkuRuwaOOH3Y3YaKURDzKPlnge95vnvv4yvR/hd8ml kTluc3Ig==; Received: from i53875a50.versanet.de ([83.135.90.80] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFDiA-0006vE-CB; Wed, 14 May 2025 17:07:58 +0200 From: Heiko Stuebner To: heiko@sntech.de Cc: quentin.schulz@cherry.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Heiko Stuebner Subject: [PATCH v4 6/6] arm64: dts: rockchip: add px30-pp1516 base dtsi and board variants Date: Wed, 14 May 2025 17:07:45 +0200 Message-ID: <20250514150745.2437804-7-heiko@sntech.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250514150745.2437804-1-heiko@sntech.de> References: <20250514150745.2437804-1-heiko@sntech.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Heiko Stuebner PP1516 are Touchscreen devices built around the PX30 SoC and companion devices to PX30-Cobra, again with multiple display options. The devices feature an EMMC, OTG port and a 720x1280 display with a touchscreen and camera Signed-off-by: Heiko Stuebner Reviewed-by: Quentin Schulz --- arch/arm64/boot/dts/rockchip/Makefile | 2 + .../rockchip/px30-pp1516-ltk050h3146w-a2.dts | 39 ++ .../dts/rockchip/px30-pp1516-ltk050h3148w.dts | 39 ++ arch/arm64/boot/dts/rockchip/px30-pp1516.dtsi | 602 ++++++++++++++++++ 4 files changed, 682 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3146w-a= 2.dts create mode 100644 arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3148w.d= ts create mode 100644 arch/arm64/boot/dts/rockchip/px30-pp1516.dtsi diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/ro= ckchip/Makefile index 8151e8bb1cd3..899113f88a29 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -8,6 +8,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-engicam-px30-core-cto= uch2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-engicam-px30-core-ctouch2-of10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-engicam-px30-core-edimm2.2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-firefly-jd4-core-mb.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-pp1516-ltk050h3146w-a2.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-pp1516-ltk050h3148w.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-ringneck-haikou.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-ringneck-haikou-lvds-9904379.dtbo dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D px30-ringneck-haikou-video-demo.dtbo diff --git a/arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3146w-a2.dts b= /arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3146w-a2.dts new file mode 100644 index 000000000000..b71929bcb33e --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3146w-a2.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include "px30-pp1516.dtsi" + +/ { + model =3D "Theobroma Systems PP-1516 with LTK050H3146W-A2 Display"; + compatible =3D "tsd,px30-pp1516-ltk050h3146w-a2", "tsd,px30-pp1516", "roc= kchip,px30"; +}; + +&dsi { + status =3D "okay"; + + panel@0 { + compatible =3D "leadtek,ltk050h3146w-a2"; + reg =3D <0>; + backlight =3D <&backlight>; + iovcc-supply =3D <&vcc_1v8>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsp_rst>; + reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + vci-supply =3D <&vcc_2v8>; + + port { + mipi_in_panel: endpoint { + remote-endpoint =3D <&mipi_out_panel>; + }; + }; + }; +}; + +&dsi_out { + mipi_out_panel: endpoint { + remote-endpoint =3D <&mipi_in_panel>; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3148w.dts b/ar= ch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3148w.dts new file mode 100644 index 000000000000..a9bd5936c701 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-pp1516-ltk050h3148w.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include "px30-pp1516.dtsi" + +/ { + model =3D "Theobroma Systems PP-1516 with LTK050H3148W Display"; + compatible =3D "tsd,px30-pp1516-ltk050h3148w", "tsd,px30-pp1516", "rockch= ip,px30"; +}; + +&dsi { + status =3D "okay"; + + panel@0 { + compatible =3D "leadtek,ltk050h3148w"; + reg =3D <0>; + backlight =3D <&backlight>; + iovcc-supply =3D <&vcc_1v8>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dsp_rst>; + reset-gpios =3D <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + vci-supply =3D <&vcc_2v8>; + + port { + mipi_in_panel: endpoint { + remote-endpoint =3D <&mipi_out_panel>; + }; + }; + }; +}; + +&dsi_out { + mipi_out_panel: endpoint { + remote-endpoint =3D <&mipi_in_panel>; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/px30-pp1516.dtsi b/arch/arm64/boo= t/dts/rockchip/px30-pp1516.dtsi new file mode 100644 index 000000000000..3f9a133d7373 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/px30-pp1516.dtsi @@ -0,0 +1,602 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Cherry Embedded Solutions GmbH + */ + +/dts-v1/; +#include +#include +#include +#include "px30.dtsi" + +/ { + aliases { + mmc0 =3D &emmc; + }; + + chosen { + stdout-path =3D "serial5:115200n8"; + }; + + backlight: backlight { + compatible =3D "pwm-backlight"; + power-supply =3D <&vcc5v0_sys>; + pwms =3D <&pwm0 0 25000 0>; + }; + + beeper { + compatible =3D "pwm-beeper"; + pwms =3D <&pwm1 0 1000 0>; + }; + + emmc_pwrseq: emmc-pwrseq { + compatible =3D "mmc-pwrseq-emmc"; + pinctrl-0 =3D <&emmc_reset>; + pinctrl-names =3D "default"; + reset-gpios =3D <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>; + }; + + gpio-leds { + compatible =3D "gpio-leds"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&debug_led_pin>, <&heartbeat_led_pin>; + + /* + * LED2 on the PCB, left of the USB-C connector. + * Typically NOT populated. + */ + debug: led-0 { + label =3D "debug"; + gpios =3D <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "none"; + }; + + /* + * LED14 on the PCB, left of the PX30 SoC. + * Typically NOT populated. + */ + heartbeat: led-1 { + label =3D "heartbeat"; + gpios =3D <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "heartbeat"; + }; + }; + + vcc5v0_sys: regulator-vccsys { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + }; + + vcc_cam_avdd: regulator-vcc-cam-avdd { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_cam_avdd"; + gpio =3D <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cam_avdd_en>; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + vin-supply =3D <&vcc_2v8>; + }; + + vcc_cam_dovdd: regulator-vcc-cam-dovdd { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_cam_dovdd"; + gpio =3D <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cam_dovdd_en>; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + vin-supply =3D <&vcc_1v8>; + }; + + vcc_cam_dvdd: regulator-vcc-cam-dvdd { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_cam_dvdd"; + gpio =3D <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cam_dvdd_en>; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + vin-supply =3D <&vcc_3v3>; + }; + + vcc_lens_afvdd: regulator-vcc-lens-afvdd { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_lens_afvdd"; + gpio =3D <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cam_afvdd_en>; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + vin-supply =3D <&vcc_2v8>; + }; +}; + +&cpu0 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu1 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu2 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu3 { + cpu-supply =3D <&vdd_arm>; +}; + +&csi_dphy { + status =3D "okay"; +}; + +&display_subsystem { + status =3D "okay"; +}; + +&dsi_dphy { + status =3D "okay"; +}; + +&emmc { + bus-width =3D <8>; + cap-mmc-highspeed; + /* + * For hs200 support, U-Boot would have to set the RK809 DCDC4 + * rail to 1.8V from the default of 3.0V. It doesn't do that on + * devices out in the field, so disable hs200. + * mmc-hs200-1_8v; + */ + mmc-pwrseq =3D <&emmc_pwrseq>; + non-removable; + vmmc-supply =3D <&vcc_3v3>; + vqmmc-supply =3D <&vcc_emmc>; + status =3D "okay"; +}; + +&gpu { + mali-supply =3D <&vdd_log>; + status =3D "okay"; +}; + +/* I2C0 =3D PMIC, Touchscreen */ +&i2c0 { + status =3D "okay"; + + touchscreen@14 { + compatible =3D "goodix,gt911"; + reg =3D <0x14>; + AVDD28-supply =3D <&vcc_2v8>; + interrupt-parent =3D <&gpio0>; + interrupts =3D ; + irq-gpios =3D <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&tch_int &tch_rst>; + reset-gpios =3D <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; + VDDIO-supply =3D <&vcc_3v3>; + }; + + rk809: pmic@20 { + compatible =3D "rockchip,rk809"; + reg =3D <0x20>; + #clock-cells =3D <0>; + clock-output-names =3D "xin32k"; + interrupt-parent =3D <&gpio0>; + interrupts =3D ; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pmic_int>; + system-power-controller; + wakeup-source; + + vcc1-supply =3D <&vcc5v0_sys>; + vcc2-supply =3D <&vcc5v0_sys>; + vcc3-supply =3D <&vcc5v0_sys>; + vcc4-supply =3D <&vcc5v0_sys>; + vcc5-supply =3D <&vcc_3v3>; + vcc6-supply =3D <&vcc_3v3>; + vcc7-supply =3D <&vcc_3v3>; + vcc9-supply =3D <&vcc5v0_sys>; + + regulators { + vdd_log: DCDC_REG1 { + regulator-name =3D "vdd_log"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <950000>; + regulator-max-microvolt =3D <1350000>; + regulator-ramp-delay =3D <6001>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <950000>; + }; + }; + + vdd_arm: DCDC_REG2 { + regulator-name =3D "vdd_arm"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <950000>; + regulator-max-microvolt =3D <1350000>; + regulator-ramp-delay =3D <6001>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <950000>; + }; + }; + + vcc_ddr: DCDC_REG3 { + regulator-name =3D "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc_3v0_1v8: vcc_emmc: DCDC_REG4 { + regulator-name =3D "vcc_3v0_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3000000>; + }; + }; + + vcc_3v3: DCDC_REG5 { + regulator-name =3D "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3300000>; + }; + }; + + vcc_1v8: LDO_REG2 { + regulator-name =3D "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + + vcc_1v0: LDO_REG3 { + regulator-name =3D "vcc_1v0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <1000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1000000>; + }; + }; + + vcc_2v8: LDO_REG4 { + regulator-name =3D "vcc_2v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <2800000>; + }; + }; + + vccio_sd: LDO_REG5 { + regulator-name =3D "vccio_sd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <3000000>; + }; + }; + + vcc_sdio: LDO_REG6 { + regulator-name =3D "vcc_sdio"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + + vcc_lcd: LDO_REG7 { + regulator-name =3D "vcc_lcd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <1000000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <1000000>; + }; + }; + + vcc_1v8_lcd: LDO_REG8 { + regulator-name =3D "vcc_1v8_lcd"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + + vcca_1v8: LDO_REG9 { + regulator-name =3D "vcca_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt =3D <1800000>; + }; + }; + }; + }; +}; + +&i2c1 { + clock-frequency =3D <100000>; + status =3D "okay"; +}; + +/* I2C2 =3D Accelerometer + Camera */ +&i2c2 { + /* MEMSIC MXC4005 accelerometer is rated for I2C Fast Mode (<=3D400KHz) */ + /* OmniVision OV5675 camera is rated for I2C Fast Mode (<=3D400KHz) */ + clock-frequency =3D <400000>; + status =3D "okay"; + + focus: focus@c { + compatible =3D "dongwoon,dw9714"; + reg =3D <0xc>; + vcc-supply =3D <&vcc_lens_afvdd>; + }; + + accel@15 { + compatible =3D "memsic,mxc4005"; + reg =3D <0x15>; + interrupt-parent =3D <&gpio2>; + interrupts =3D ; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&accel_int>; + }; + + camera@36 { + compatible =3D "ovti,ov5675"; + reg =3D <0x36>; + clocks =3D <&cru SCLK_CIF_OUT>; + assigned-clocks =3D <&cru SCLK_CIF_OUT>; + assigned-clock-rates =3D <19200000>; + avdd-supply =3D <&vcc_cam_avdd>; + dvdd-supply =3D <&vcc_cam_dvdd>; + dovdd-supply =3D <&vcc_cam_dovdd>; + lens-focus =3D <&focus>; + orientation =3D <0>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&cif_clkout_m0 &cam_pwdn>; + reset-gpios =3D <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>; + rotation =3D <0>; + + port { + ucam_out: endpoint { + remote-endpoint =3D <&mipi_in_ucam>; + data-lanes =3D <1 2>; + link-frequencies =3D /bits/ 64 <450000000>; + }; + }; + }; +}; + +&io_domains { + vccio1-supply =3D <&vcc_sdio>; + vccio2-supply =3D <&vccio_sd>; + vccio3-supply =3D <&vcc_1v8>; + vccio4-supply =3D <&vcc_3v3>; + vccio5-supply =3D <&vcc_3v3>; + vccio6-supply =3D <&vcc_emmc>; + status =3D "okay"; +}; + +&isp { + status =3D "okay"; + + ports { + port@0 { + mipi_in_ucam: endpoint@0 { + reg =3D <0>; + data-lanes =3D <1 2>; + remote-endpoint =3D <&ucam_out>; + }; + }; + }; +}; + +&isp_mmu { + status =3D "okay"; +}; + +&pinctrl { + accel { + accel_int: accel-int { + rockchip,pins =3D + <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + camera { + cam_afvdd_en: cam-afvdd-en { + rockchip,pins =3D + <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + cam_avdd_en: cam-avdd-en { + rockchip,pins =3D + <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + cam_dovdd_en: cam-dovdd-en { + rockchip,pins =3D + <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + cam_dvdd_en: cam-dvdd-en { + rockchip,pins =3D + <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + cam_pwdn: cam-pwdn { + rockchip,pins =3D + <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + emmc { + emmc_reset: emmc-reset { + rockchip,pins =3D + <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + debug_led_pin: debug-led-pin { + rockchip,pins =3D + <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + heartbeat_led_pin: heartbeat-led-pin { + rockchip,pins =3D + <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + panel { + dsp_rst: dsp-rst { + rockchip,pins =3D + <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + tch_int: tch-int { + rockchip,pins =3D + <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + tch_rst: tch-rst { + rockchip,pins =3D + <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pmic { + pmic_int: pmic-int { + rockchip,pins =3D + <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +&pmu_io_domains { + pmuio1-supply =3D <&vcc_3v3>; + pmuio2-supply =3D <&vcc_3v3>; + status =3D "okay"; +}; + +&pwm0 { + status =3D "okay"; +}; + +&pwm1 { + status =3D "okay"; +}; + +&saradc { + vref-supply =3D <&vcc_1v8>; + status =3D "okay"; +}; + +&tsadc { + status =3D "okay"; +}; + +&u2phy { + status =3D "okay"; +}; + +&u2phy_host { + status =3D "okay"; +}; + +&u2phy_otg { + status =3D "okay"; +}; + +&uart5 { + pinctrl-0 =3D <&uart5_xfer>; + status =3D "okay"; +}; + +&usb20_otg { + dr_mode =3D "peripheral"; + status =3D "okay"; +}; + +&usb_host0_ehci { + status =3D "okay"; +}; + +&usb_host0_ohci { + status =3D "okay"; +}; + +&vopb { + status =3D "okay"; +}; + +&vopb_mmu { + status =3D "okay"; +}; + +&wdt { + status =3D "okay"; +}; --=20 2.47.2