From patchwork Tue Apr 16 13:50:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Wu X-Patchwork-Id: 1086332 X-Patchwork-Delegate: ykai007@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=rock-chips.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44k6KC0Yqbz9s4Y for ; Tue, 16 Apr 2019 23:53:34 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A1D24C21E68; Tue, 16 Apr 2019 13:52:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=RCVD_IN_SORBS_WEB autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id C1036C21E6A; Tue, 16 Apr 2019 13:51:33 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0E1FDC21E1B; Tue, 16 Apr 2019 13:51:24 +0000 (UTC) Received: from regular1.263xmail.com (regular1.263xmail.com [211.150.70.199]) by lists.denx.de (Postfix) with ESMTPS id F4040C21E08 for ; Tue, 16 Apr 2019 13:51:20 +0000 (UTC) Received: from david.wu?rock-chips.com (unknown [192.168.167.158]) by regular1.263xmail.com (Postfix) with ESMTP id CD51A39F; Tue, 16 Apr 2019 21:51:17 +0800 (CST) X-263anti-spam: KSV:0;BIG:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ADDR-CHECKED4: 1 X-ABS-CHECKED: 1 X-SKE-CHECKED: 1 X-ANTISPAM-LEVEL: 2 Received: from thinkpad-p51.mshome.net (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P7953T140108858644224S1555422667931136_; Tue, 16 Apr 2019 21:51:16 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: <07410fdc9dd82f11f488cbcbbb4cf6e5> X-RL-SENDER: david.wu@rock-chips.com X-SENDER: wdc@rock-chips.com X-LOGIN-NAME: david.wu@rock-chips.com X-FST-TO: u-boot@lists.denx.de X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: David Wu To: u-boot@lists.denx.de Date: Tue, 16 Apr 2019 21:50:56 +0800 Message-Id: <20190416135102.26667-5-david.wu@rock-chips.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190416135102.26667-1-david.wu@rock-chips.com> References: <20190416135102.26667-1-david.wu@rock-chips.com> MIME-Version: 1.0 Cc: xypron.glpk@gmx.de, David Wu , jay.xu@rock-chips.com Subject: [U-Boot] [PATCH v3 04/10] pinctrl: rockchip: Special treatment for RK3288 gpio0 pins' iomux X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" RK3288 pmu_gpio0 iomux setting have no higher 16 writing corresponding bits, need to read before write the register. Signed-off-by: David Wu Reviewed-by: Kever Yang --- Change in v3: - Add some comment drivers/pinctrl/rockchip/pinctrl-rk3288.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/rockchip/pinctrl-rk3288.c b/drivers/pinctrl/rockchip/pinctrl-rk3288.c index 1fa601d954..5040cd8f48 100644 --- a/drivers/pinctrl/rockchip/pinctrl-rk3288.c +++ b/drivers/pinctrl/rockchip/pinctrl-rk3288.c @@ -54,7 +54,15 @@ static int rk3288_set_mux(struct rockchip_pin_bank *bank, int pin, int mux) } } - data = (mask << (bit + 16)); + /* bank0 is special, there are no higher 16 bit writing bits. */ + if (bank->bank_num == 0) { + regmap_read(regmap, reg, &data); + data &= ~(mask << bit); + } else { + /* enable the write to the equivalent lower bits */ + data = (mask << (bit + 16)); + } + data |= (mux & mask) << bit; ret = regmap_write(regmap, reg, data);