Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp2671263ybh; Mon, 16 Mar 2020 07:35:37 -0700 (PDT) X-Google-Smtp-Source: ADFU+vujlBKpnYieF+9/jSRph6/x+4R6DX0NqTBquL2JnpNHXs17eMLcXwIUEYQO5jW5BWvvvsS2 X-Received: by 2002:aca:4287:: with SMTP id p129mr16955485oia.168.1584369337673; Mon, 16 Mar 2020 07:35:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584369337; cv=none; d=google.com; s=arc-20160816; b=Ft/rVwXoQi0qvT81Nf2n5OGyDIKN+/AADOXhI66spBcyjzFiRKQfQ7BFR7Sf6UCwi5 r7UP3d5XQKRZgOh/2nUlZv2oPl2MZj0fi5hgihyLsLQeACcvllOhiN6UMUA8TZeBbOsm ITrXdz7lSI4u2ID2kBYWRo+UDRpDpWhdWow8774rh9FBjB9Nd5CYcWwfbudccBRqHUdw DIADLaTkMmHGJgu+gaWAlE5m7kBmlV4fCNS3nblriJKfFjRcn9+zG+b8HH8e51zMs1Qz t9BsCjvCfFaeGwP3Wx11dtrhGHXX4FtY3nqED1rGLGi5VqSuJC0/iTFP4gBW46BnLV3R EqMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=ZDDZumFM4GKkqmise65KcQNrnejQ1Q6C9mhu8+xXRqI=; b=sOgXvsTGbi/ZvKfsZbtMsYzA9U2CBCCIgq3sVsoxFc8t0vNPNHIvWoGP4W/PuQYCWZ F9mOQOT+igSl0dKbqgDnVEJvScMe/nSk8JWiUknr8hYeXF2DeQWpNXPDj03unPxZc6/u DjyaDlKlJ3Ue3U9elbZ1gPHDJ+x5AN2w4ylub1jB0J0nxNjxg+VB5N7Oqtx3dw6TW/1W E60xLrQabQAUaN3sBwjSSJOSfMJCE1x+DLLTRlmrA6rdqpTDS1Sg0NNAUlybn9FxZvsB xHSwp1O5uwfe8yxi6k1wDpYYsTU6sEUieqPDXCzQ8NnEHNLWPHhMncey8eN2YxnxHK7A vf4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=AWG2bc+5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z9si41702otj.157.2020.03.16.07.35.25; Mon, 16 Mar 2020 07:35:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=AWG2bc+5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731598AbgCPOd5 (ORCPT + 99 others); Mon, 16 Mar 2020 10:33:57 -0400 Received: from mail-lf1-f65.google.com ([209.85.167.65]:35308 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731535AbgCPOd5 (ORCPT ); Mon, 16 Mar 2020 10:33:57 -0400 Received: by mail-lf1-f65.google.com with SMTP id 5so7148346lfr.2; Mon, 16 Mar 2020 07:33:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZDDZumFM4GKkqmise65KcQNrnejQ1Q6C9mhu8+xXRqI=; b=AWG2bc+5Ee9obty+kw+QqJmaHXD0x6LGBAzcB3LeMs18u7WkxgnQW7Y4GrtHYDcNM0 sefnHSJFaVkgZCWU85q+68eOtFB62Jd/P0u99x41+Fje0fVG8/8EBwEhfFEGkLHddt9n AGYTx1Zr5Oj5gYTX9I7DNlH/Wj4A3mD9qq2XkH8jtLsJwZ29gRfgS2Q+cpTM/WgFaT82 FLkO32mTGfRVq7nrfG1zcOeV9REmaD5g+6SlBu5a+/LRxUW/ZVPjMOrr1bE5g2SA7uA1 ym1ihLtMN+YsU28hNyTDzbewt5pJXlFkoIbSEVEUSYqvD768nslMn4YjNEGzRwqnvpWf NwGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZDDZumFM4GKkqmise65KcQNrnejQ1Q6C9mhu8+xXRqI=; b=eDeGrBTLv6wLTRZdqCXdsqHYMKPz9zg0goNDAh31x1HAS/Osd4hBkWlMsmzB4r41fq v+xVCc1Ux4UMB8FLtIjZmm5FWcT0SOW0cnt3rzP2f3dDZrsX/1UR2SNDpYt+RIBlN5vm LdvjyIeZg89H1LZ1l1ihIQyw/03X25HhQLhkvuhg3r0xC6BbhaVVZfxrKY927hA7h01m uzoY36ZZ7vJkmLorLdzEkqHyq+mkIJGNPddV7wg75qCjMXX8Li0E+e/G+KdIq/Zhyzw9 hKL/O2QaY5kUlLZHIz7AhPOVf4AkENOgRR062fTLWMOAbHts+nuKJK5/79dzHAFCdnyX F4oQ== X-Gm-Message-State: ANhLgQ06T322PWAQYwzkzKhOUBX5EdDErBvdMzotPDb90cQjsWuOfBAx XwyXUtZqUdRUaWAVrCV7798= X-Received: by 2002:a19:4350:: with SMTP id m16mr9059395lfj.67.1584369233381; Mon, 16 Mar 2020 07:33:53 -0700 (PDT) Received: from localhost (host-176-37-176-139.la.net.ua. [176.37.176.139]) by smtp.gmail.com with ESMTPSA id k14sm16045lfg.96.2020.03.16.07.33.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 16 Mar 2020 07:33:52 -0700 (PDT) From: Igor Opaniuk To: linux-arm-kernel@lists.infradead.org Cc: Max Krummenacher , Philippe Schenker , Stefan Agner , Marcel Ziswiler , Shawn Guo , Oleksandr Suvorov , Igor Opaniuk , Fabio Estevam , Mark Rutland , NXP Linux Team , Pengutronix Kernel Team , Rob Herring , Sascha Hauer , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 2/2] ARM: dts: colibri: introduce device trees with UHS-I support Date: Mon, 16 Mar 2020 16:33:45 +0200 Message-Id: <20200316143345.30823-2-igor.opaniuk@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200316143345.30823-1-igor.opaniuk@gmail.com> References: <20200316143345.30823-1-igor.opaniuk@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Igor Opaniuk 1. Introduce dtsi with overlay configuration for enabling UHS-I for Colibri iMX6S/DL V1.1x re-design. 2. Introduce new dts for the Colibri iMX6S/DL V1.1x on Colibri Evaluation Carrier Board V3.x. However, disable 1.8V for the Colibri Evaluation Board since this carrier board has 3.3V pull-ups on. 3. Provide proper configuration for VGEN3, which allows that rail to be automatically switched to 1.8 volts for proper UHS-I operation mode. Signed-off-by: Igor Opaniuk --- v5: - Fix copyright/licensing [Shawn Guo] - Don't enable 1.8V by default, as some carrier boards have 3.3V pull-ups, which leads to [ 164.058099] mmc0: error -110 whilst initialising SD card errors. [Marcel Ziswiler] - Change hierarchy: move SD-card properties to the module level device tree include (to explicitly state that these properties relate to module, not carrier board) + people can easily include it in their custom carrier board device trees. v4: - Document Colibri iMX6S/DL V1.1x re-design devicetree binding [Shawn Guo] - wakeup-source property fix [Shawn Guo] v3: - change hierarchy according to Marco's suggestions [Marco Felsch] - adjust compatible string adding v1.1 [Stefan Agner] v2: - rework hierarchy of dts files, and a separate dtsi for Colibri iMX6S/DL V1.1x re-design, where UHS-I was added [Marcel Ziswiler] - add comments about vgen3 power rail [Marcel Ziswiler] - fix other minor issues, addressing Marcel's comments. [Marcel Ziswiler] arch/arm/boot/dts/Makefile | 1 + .../boot/dts/imx6dl-colibri-v1_1-eval-v3.dts | 31 +++++++++++++ .../boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi | 44 +++++++++++++++++++ arch/arm/boot/dts/imx6qdl-colibri.dtsi | 11 ++++- 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts create mode 100644 arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index d6546d2676b9..97da51be1de6 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -412,6 +412,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6dl-aristainetos2_4.dtb \ imx6dl-aristainetos2_7.dtb \ imx6dl-colibri-eval-v3.dtb \ + imx6dl-colibri-v1_1-eval-v3.dtb \ imx6dl-cubox-i.dtb \ imx6dl-cubox-i-emmc-som-v15.dtb \ imx6dl-cubox-i-som-v15.dtb \ diff --git a/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts new file mode 100644 index 000000000000..223275f028f1 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * Copyright 2020 Toradex + */ + +/dts-v1/; + +#include "imx6dl-colibri-eval-v3.dts" +#include "imx6qdl-colibri-v1_1-uhs.dtsi" + +/ { + model = "Toradex Colibri iMX6DL/S V1.1 on Colibri Evaluation Board V3"; + compatible = "toradex,colibri_imx6dl-v1_1-eval-v3", + "toradex,colibri_imx6dl-v1_1", + "toradex,colibri_imx6dl-eval-v3", + "toradex,colibri_imx6dl", + "fsl,imx6dl"; +}; + +/* Colibri MMC */ +&usdhc1 { + status = "okay"; + /* + * Please make sure your carrier board does not pull-up any of + * the MMC/SD signals to 3.3 volt before attempting to activate + * UHS-I support. + * To let signaling voltage be changed to 1.8V, please + * delete no-1-8-v property (example below): + * /delete-property/no-1-8-v; + */ +}; diff --git a/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi b/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi new file mode 100644 index 000000000000..7672fbfc29be --- /dev/null +++ b/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * Copyright 2020 Toradex + */ + +&iomuxc { + pinctrl_usdhc1_100mhz: usdhc1grp100mhz { + fsl,pins = < + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170b1 + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100b1 + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170b1 + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170b1 + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170b1 + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170b1 + >; + }; + + pinctrl_usdhc1_200mhz: usdhc1grp200mhz { + fsl,pins = < + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170f1 + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f1 + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f1 + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f1 + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f1 + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f1 + >; + }; +}; + +/* Colibri MMC */ +&usdhc1 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_mmc_cd>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_mmc_cd>; + vmmc-supply = <®_module_3v3>; + vqmmc-supply = <&vgen3_reg>; + wakeup-source; + keep-power-in-suspend; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; +}; diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi index d03dff23863d..e85a41e84fd4 100644 --- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi @@ -229,7 +229,16 @@ regulator-always-on; }; - /* vgen3: unused */ + /* + * +V3.3_1.8_SD1 coming off VGEN3 and supplying + * the i.MX 6 NVCC_SD1. + */ + vgen3_reg: vgen3 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; vgen4_reg: vgen4 { regulator-min-microvolt = <1800000>; -- 2.17.1