Received: by 10.223.164.202 with SMTP id h10csp297893wrb; Tue, 14 Nov 2017 23:15:09 -0800 (PST) X-Google-Smtp-Source: AGs4zMZouT5WhrJzy1R7TmfmBD/DLSc4VLOwMnTs0UNCkR4bk82KdHCMkaw/307Iqbxo+LR6/cuT X-Received: by 10.159.249.3 with SMTP id bf3mr9982710plb.354.1510730109250; Tue, 14 Nov 2017 23:15:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510730109; cv=none; d=google.com; s=arc-20160816; b=f9PFqSafNKzGEuqjgzPHXcMQygXtjxXxiIYChoWhR/EdiysZUlzh3RwENtNij4dQiX +EN09BYFDeLvKEl+oBeU9h3WX+rCZvJl2DSBVi+UILlypcOiAdpJ1n3rGT+XtCAIgUAk Gx5ds6g8rhYLN51y05ruNNbuSb6xWBHPzIZcZZvhGqottecbRt0luCHhY//BjRmstvPl bHYicBrIofB3Fh0sbS7TaGfyRnNq0bSAlmO6RZYduriycwwWD/wCBdtpU+YjYKHhX3Er tjL8Yi/EDzzO4EvDS4MkRJrA8D7RB848wKukMdSc/27kqxFaaYLZc+lyJffsUavqdq99 R/SA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=XsqTbaTo3EXShpQwR4f5iOrn6PNGUGLnUKD1OWMKitE=; b=fa125vl+Du1giOK9QbHSfuww+yOBF111GVRMSihxd9fYW+ZALd5JyuxxesRJ1cl2+F 9S38n7AYlR44MpvH2mAmK2sy81lfEeojOwZ/SFkCo+ToERYBYtIOuX4uMhaa5aGk/xRF +fbzS216YL3HhSvanO+Bd+NFeZEb35QnMcAwija9eXhYXgF0mdB+bRO3ripmvnPiTc4l PE8byHO2z/TkEUek6lp4O1TPBb+K/krD/4B9X8aetyVP5SMMt+CBqzBiIcuthL3EC4w9 /oyaqOm3x/uXXzJaM5YfcsA29NTJECseCv6SUa28Gr4TeNbIpbbGj27Gzzdag89Mo5bb Ovsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LDunSiQp; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o14si9001264pli.607.2017.11.14.23.14.46; Tue, 14 Nov 2017 23:15:09 -0800 (PST) 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=@linaro.org header.s=google header.b=LDunSiQp; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754189AbdKODW6 (ORCPT + 87 others); Tue, 14 Nov 2017 22:22:58 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:53880 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751233AbdKODWu (ORCPT ); Tue, 14 Nov 2017 22:22:50 -0500 Received: by mail-pf0-f194.google.com with SMTP id b6so15754576pff.10 for ; Tue, 14 Nov 2017 19:22:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=XsqTbaTo3EXShpQwR4f5iOrn6PNGUGLnUKD1OWMKitE=; b=LDunSiQpDKdb+3RkOryfgqFIW08wap8bznKW2tNTvl24HahHucdK+5DtHUyeStiBYH LE5CV4yc1BeHbyXcptkdZ6pdHsQMm5VlUoFwu0Xfnrj8SIlXLJjcJnNSg9SWV/FnLSnO V4ZaMVljPOvM4JzYpEtyu6d0YqWaTijo3hA2w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=XsqTbaTo3EXShpQwR4f5iOrn6PNGUGLnUKD1OWMKitE=; b=L9Rjr/YnrnJxk1+gTLACOJKP2OlwG7jtERM1U08Jtc/hiSBTg7Z866j2b4ZoLQ2cG5 AmHW7gWeZJwXt1hIg2ktZtMIilhruuMZhF1Q60dybU7JNmNrX2GDpuUYFJ2RszyTF7qK hfH/ouAiO9mPt9B43N3uzEu4/Q9bTC6zkiqwxqnfr0/5s/HiTU0MON7hEUtGzqSZ14Vw SBKf1n+lblc6LpRBLFL1EMS72xat+wGbGNDaiwXGPjsQ6snHptkSBH+jK08hpq108AmU +BIyhtZuRWB5yTYWX3yVKNPtEu7volxLCyCHDw7LzX4tM8Ruk3hQX8Rwl6o8o9i1AaNk Et5A== X-Gm-Message-State: AJaThX6aX5bZIKLxy+1rMqeuJaBLc9Mrnw8u1zM0dVrtdJHOmmTzM56Q v0hJXwHtsrNJoxrEpteey+t+iA== X-Received: by 10.98.52.133 with SMTP id b127mr16153922pfa.58.1510716169718; Tue, 14 Nov 2017 19:22:49 -0800 (PST) Received: from dragon ([104.237.91.117]) by smtp.gmail.com with ESMTPSA id o123sm30732633pfb.102.2017.11.14.19.22.44 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 14 Nov 2017 19:22:49 -0800 (PST) Date: Wed, 15 Nov 2017 11:22:27 +0800 From: Shawn Guo To: Jiancheng Xue Cc: xuwei5@hisilicon.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, project-aspen-dev@linaro.org, hermit.wangheming@hisilicon.com, Younian Wang Subject: Re: [PATCH 2/3] arm64: dts: hisilicon: add pinctrl nodes for hi3798cv200-poplar board Message-ID: <20171115032224.GG11163@dragon> References: <1508325728-55823-1-git-send-email-xuejiancheng@hisilicon.com> <1508325728-55823-3-git-send-email-xuejiancheng@hisilicon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1508325728-55823-3-git-send-email-xuejiancheng@hisilicon.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 18, 2017 at 07:22:07AM -0400, Jiancheng Xue wrote: > From: Younian Wang > > Add pinctrl nodes for hi3798cv200-poplar board > > Signed-off-by: Younian Wang > Signed-off-by: Jiancheng Xue > --- > .../boot/dts/hisilicon/hi3798cv200-poplar.dts | 1 + > arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi | 71 +++ > arch/arm64/boot/dts/hisilicon/poplar-pinctrl.dtsi | 651 +++++++++++++++++++++ > 3 files changed, 723 insertions(+) > create mode 100644 arch/arm64/boot/dts/hisilicon/poplar-pinctrl.dtsi > > diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts > index b914287..6a0b7e9 100644 > --- a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts > +++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts > @@ -11,6 +11,7 @@ > > #include > #include "hi3798cv200.dtsi" > +#include "poplar-pinctrl.dtsi" > > / { > model = "HiSilicon Poplar Development Board"; > diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi b/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi > index 0d11dc7..5a73c68 100644 > --- a/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi > +++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi > @@ -106,6 +106,54 @@ > #reset-cells = <2>; > }; > > + pmx0: pinconf@8a21000 { > + compatible = "pinconf-single"; > + reg = <0x8a21000 0x180>; > + pinctrl-single,register-width = <32>; > + pinctrl-single,function-mask = <7>; > + pinctrl-single,gpio-range = < > + &range 0 8 2 /* GPIO 0 */ > + &range 8 1 0 /* GPIO 1 */ > + &range 9 4 2 > + &range 13 1 0 > + &range 14 1 1 > + &range 15 1 0 > + &range 16 5 0 /* GPIO 2 */ > + &range 21 3 1 > + &range 24 4 1 /* GPIO 3 */ > + &range 28 2 2 > + &range 86 1 1 > + &range 87 1 0 > + &range 30 4 2 /* GPIO 4 */ > + &range 34 3 0 > + &range 37 1 2 > + &range 38 3 2 /* GPIO 6 */ > + &range 41 5 0 > + &range 46 8 1 /* GPIO 7 */ > + &range 54 8 1 /* GPIO 8 */ > + &range 64 7 1 /* GPIO 9 */ > + &range 71 1 0 > + &range 72 6 1 /* GPIO 10 */ > + &range 78 1 0 > + &range 79 1 1 > + &range 80 6 1 /* GPIO 11 */ > + &range 70 2 1 > + &range 88 8 0 /* GPIO 12 */ > + >; > + > + range: gpio-range { > + #pinctrl-single,gpio-range-cells = <3>; > + }; > + }; > + > + pmx1: pinconf@8000044 { > + compatible = "pinctrl-single"; > + reg = <0x8000044 4>; > + pinctrl-single,register-width = <32>; > + pinctrl-single,function-mask = <1>; > + pinctrl-single,bit-per-mux; > + }; > + > uart0: serial@8b00000 { > compatible = "arm,pl011", "arm,primecell"; > reg = <0x8b00000 0x1000>; > @@ -209,6 +257,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 0 8>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -222,6 +271,13 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = < > + &pmx0 0 8 1 > + &pmx0 1 9 4 > + &pmx0 5 13 1 > + &pmx0 6 14 1 > + &pmx0 7 15 1 > + >; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -235,6 +291,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 16 5 &pmx0 5 21 3>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -248,6 +305,12 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = < > + &pmx0 0 24 4 > + &pmx0 4 28 2 > + &pmx0 6 86 1 > + &pmx0 7 87 1 > + >; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -261,6 +324,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 30 4 &pmx0 4 34 3 &pmx0 7 37 1>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -287,6 +351,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 38 3 &pmx0 0 41 5>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -300,6 +365,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 46 8>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -313,6 +379,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 54 8>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -326,6 +393,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 64 7 &pmx0 71 1>; There is one cell number missing from the second phandle. It should be: <&pmx0 0 64 7 &pmx0 7 71 1>; Otherwise, we will see following error message in kernel boot log when this GPIO device gets enabled. OF: /soc@f0000000/gpio@8b29000: arguments longer than property > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -339,6 +407,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 72 6 &pmx0 6 78 1 &pmx0 7 79 1>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -352,6 +421,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 80 6 &pmx0 6 70 2>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > @@ -365,6 +435,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > + gpio-ranges = <&pmx0 0 88 8>; > clocks = <&crg HISTB_APB_CLK>; > clock-names = "apb_pclk"; > status = "disabled"; > diff --git a/arch/arm64/boot/dts/hisilicon/poplar-pinctrl.dtsi b/arch/arm64/boot/dts/hisilicon/poplar-pinctrl.dtsi > new file mode 100644 > index 0000000..5a87a0e > --- /dev/null > +++ b/arch/arm64/boot/dts/hisilicon/poplar-pinctrl.dtsi > @@ -0,0 +1,651 @@ > +/* > + * pinctrl dts file for HiSilicon poplar board > + * > + * Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd. > + * > + * Released under the GPLv2 only. > + * SPDX-License-Identifier: GPL-2.0 > + */ > + > +#include > + > +/* value, enable bits, disable bits, mask */ > +#define PINCTRL_PULLDOWN(value, enable, disable, mask) \ > + (value << 13) (enable << 13) (disable << 13) (mask << 13) > +#define PINCTRL_PULLUP(value, enable, disable, mask) \ > + (value << 12) (enable << 12) (disable << 12) (mask << 12) > +#define PINCTRL_SLEW_RATE(value, mask) (value << 8) (mask << 8) > +#define PINCTRL_DRV_STRENGTH(value, mask) (value << 4) (mask << 4) > +#define GPIO5_MUX_CFG(offset, value, bit) (offset) (value << bit) (1 << bit) > + > +&pmx0 { > + pinctrl-names = "default"; > + pinctrl-0 = < There is an indent issue. > + &emmc_p1_pmx_cfg > + &emmc_p2_pmx_cfg > + &emmc_p3_pmx_cfg > + &emmc_p4_pmx_cfg > + &gpu_pmx_cfg > + &sim0_p1_pmx_cfg > + &sim0_p2_pmx_cfg > + &i2c0_pmx_cfg > + &gpio_pmx_cfg If we only want to configure mux mode for a GPIO pin, we do not need to have a pinctrl group for that, as GPIO subsystem will ask PINCTRL to set up the mux mode for the GPIO pin being requested, just like how those LED GPIO pins work on Poplar board. > + &bt_uart2_p1_pmx_cfg > + &bt_uart2_p2_pmx_cfg > + &pcm_pmx_cfg > + &spi0_p1_pmx_cfg > + &spi0_p2_pmx_cfg > + &tsi0_p1_pmx_cfg > + &tsi0_p2_pmx_cfg > + &tsi0_p3_pmx_cfg > + &tsi0_p4_pmx_cfg > + &i2c2_p1_pmx_cfg > + &i2c2_p2_pmx_cfg > + &mute_pmx_cfg > + &spdif_pmx_cfg > + &rgmii1_p1_pmx_cfg > + &rgmii1_p2_pmx_cfg > + &rgmii1_p3_pmx_cfg > + &sdio0_p1_pmx0_cfg > + &sdio0_p2_pmx0_cfg > + &sdio0_p3_pmx0_cfg IMHO, referencing all these pinctrl groups here is not as good as having client devices reference their pin groups as needed. These "hog" groups will always request the pins no matter whether corresponding devices is enabled or not. With client device referencing the phandle, the pins will only be requested when the device is enabled and probed successfully. Also, in that case, we can easily find out which devices use which pins. Shawn > + >; > + > + emmc_p1_pmx_cfg: emmc_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x000 MUX_M2 > + 0x004 MUX_M2 > + 0x008 MUX_M2 > + 0x00c MUX_M2 > + 0x010 MUX_M2 > + 0x014 MUX_M2 > + 0x018 MUX_M2 > + 0x01c MUX_M2 > + 0x024 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(0xb, 0xf) > + >; > + }; > + > + emmc_p2_pmx_cfg: emmc_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x028 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(0x9, 0xf) > + >; > + }; > + > + emmc_p3_pmx_cfg:emmc_p3_pmx_cfg { > + pinctrl-single,pins = < > + 0x02c MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + emmc_p4_pmx_cfg:emmc_p4_pmx_cfg { > + pinctrl-single,pins = < > + 0x030 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(1, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + gpu_pmx_cfg: gpu_pmx_cfg { > + pinctrl-single,pins = < > + 0x038 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + sim0_p1_pmx_cfg: sim0_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x054 MUX_M1 > + 0x058 MUX_M1 > + 0x05c MUX_M1 > + 0x064 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + sim0_p2_pmx_cfg: sim0_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x060 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(2, 3) > + >; > + }; > + > + i2c0_pmx_cfg: i2c0_pmx_cfg { > + pinctrl-single,pins = < > + 0x068 MUX_M1 > + 0x06c MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + gpio_pmx_cfg: gpio_pmx_cfg { > + pinctrl-single,pins = < > + 0x070 MUX_M2 > + 0x074 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + bt_uart2_p1_pmx_cfg: bt_uart2_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x078 MUX_M2 > + 0x07c MUX_M2 > + 0x080 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + bt_uart2_p2_pmx_cfg: bt_uart2_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x084 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(7, 7) > + >; > + }; > + > + pcm_pmx_cfg: pcm_pmx_cfg { > + pinctrl-single,pins = < > + 0x094 MUX_M2 > + 0x098 MUX_M2 > + 0x09c MUX_M2 > + 0x0a0 MUX_M2 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(7, 7) > + >; > + }; > + > + spi0_p1_pmx_cfg: spi0_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x0b8 MUX_M1 > + 0x0bc MUX_M1 > + 0x0c0 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(7, 7) > + >; > + }; > + > + spi0_p2_pmx_cfg: spi0_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x0c4 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + tsi0_p1_pmx_cfg: tsi0_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x0c8 MUX_M1 > + 0x0cc MUX_M1 > + 0x0d0 MUX_M1 > + 0x0d8 MUX_M1 > + 0x0dc MUX_M1 > + 0x0e0 MUX_M1 > + 0x0e4 MUX_M1 > + 0x0e8 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + tsi0_p2_pmx_cfg: tsi0_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x0d4 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(7, 7) > + >; > + }; > + > + tsi0_p3_pmx_cfg: tsi0_p3_pmx_cfg { > + pinctrl-single,pins = < > + 0x0ec MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(1, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + tsi0_p4_pmx_cfg: tsi0_p4_pmx_cfg { > + pinctrl-single,pins = < > + 0x0f0 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(1, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + i2c2_p1_pmx_cfg: i2c2_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x0f4 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(1, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + i2c2_p2_pmx_cfg: i2c2_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x0f8 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(1, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + mute_pmx_cfg: mute_pmx_cfg { > + pinctrl-single,pins = < > + 0x100 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(1, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + spdif_pmx_cfg: spdif_pmx_cfg { > + pinctrl-single,pins = < > + 0x104 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + rgmii1_p1_pmx_cfg: rgmii1_p1_pmx_cfg { > + pinctrl-single,pins = < > + 0x118 MUX_M1 > + 0x11c MUX_M1 > + 0x120 MUX_M1 > + 0x144 MUX_M1 > + 0x148 MUX_M1 > + 0x14c MUX_M1 > + 0x150 MUX_M1 > + 0x154 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + rgmii1_p2_pmx_cfg: rgmii1_p2_pmx_cfg { > + pinctrl-single,pins = < > + 0x124 MUX_M1 > + 0x128 MUX_M1 > + 0x12c MUX_M1 > + 0x130 MUX_M1 > + 0x134 MUX_M1 > + 0x13c MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(6, 7) > + >; > + }; > + > + rgmii1_p3_pmx_cfg: rgmii1_p3_pmx_cfg { > + pinctrl-single,pins = < > + 0x140 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(7, 7) > + >; > + }; > + > + sdio0_p1_pmx0_cfg: sdio0_p1_pmx0_cfg { > + pinctrl-single,pins = < > + 0x158 MUX_M1 > + 0x178 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(3, 3) > + >; > + }; > + > + sdio0_p2_pmx0_cfg: sdio0_p2_pmx0_cfg { > + pinctrl-single,pins = < > + 0x160 MUX_M1 > + 0x164 MUX_M1 > + 0x16c MUX_M1 > + 0x170 MUX_M1 > + 0x174 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(5, 7) > + >; > + }; > + > + sdio0_p3_pmx0_cfg: sdio0_p3_pmx0_cfg { > + pinctrl-single,pins = < > + 0x168 MUX_M1 > + >; > + pinctrl-single,bias-pulldown = < > + PINCTRL_PULLDOWN(0, 1, 0, 1) > + >; > + pinctrl-single,bias-pullup = < > + PINCTRL_PULLUP(0, 1, 0, 1) > + >; > + pinctrl-single,slew-rate = < > + PINCTRL_SLEW_RATE(1, 1) > + >; > + pinctrl-single,drive-strength = < > + PINCTRL_DRV_STRENGTH(0xc, 0xf) > + >; > + }; > +}; > + > +&pmx1{ > + pinctrl-names = "default"; > + pinctrl-0 = < > + &uart0_pmx > + &lowspeed_gpio_pmx > + &bt_led_pmx > + &user_led_pmx > + &ir_pmx > + &stb_key_pmx > + >; > + > + uart0_pmx: uart0_pmx { > + pinctrl-single,bits = < > + GPIO5_MUX_CFG(0, 0, 0) > + GPIO5_MUX_CFG(0, 0, 1) > + >; > + }; > + > + lowspeed_gpio_pmx: lowspeed_gpio_pmx { > + pinctrl-single,bits = < > + GPIO5_MUX_CFG(0, 0, 4) > + >; > + }; > + > + bt_led_pmx: bt_led_pmx { > + pinctrl-single,bits = < > + GPIO5_MUX_CFG(0, 1, 7) > + >; > + }; > + > + user_led_pmx: user_led_pmx { > + pinctrl-single,bits = < > + GPIO5_MUX_CFG(0, 0, 3) > + GPIO5_MUX_CFG(0, 0, 6) > + >; > + }; > + > + ir_pmx: ir_pmx { > + pinctrl-single,bits = < > + GPIO5_MUX_CFG(0, 0, 5) > + >; > + }; > + > + stb_key_pmx:stb_key_pmx { > + pinctrl-single,bits = < > + GPIO5_MUX_CFG(0, 0, 2) > + >; > + }; > +}; > -- > 2.7.4 > From 1581601597110678203@xxx Wed Oct 18 13:20:21 +0000 2017 X-GM-THRID: 1581601597110678203 X-Gmail-Labels: Inbox,Category Forums