From patchwork Tue Dec 5 13:46:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750378 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678434wrc; Tue, 5 Dec 2023 05:47:13 -0800 (PST) X-Google-Smtp-Source: AGHT+IFdadeUDH0GFjJICWvgkPUu0OGgi1pon6U0mkxt9gwpUKMqAmYaf+CO6Z9jyOzdcnYC2ZKO X-Received: by 2002:a7b:c8d1:0:b0:40b:5e59:99d6 with SMTP id f17-20020a7bc8d1000000b0040b5e5999d6mr298767wml.246.1701784032844; Tue, 05 Dec 2023 05:47:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784032; cv=none; d=google.com; s=arc-20160816; b=B/nNbKJ3K55L9nNwqoZB5P7sutG+XigNUtYl1aQcPKjr8NXc5XG9JT64x8hfkDTG4f W9bsmIiS8w07SBOG/ekmujYDsFctWVwS9LHekB7hlyDok1k9dd6aWZt/1dSo9dtMUNSr DVC0Uq2wPa+1SW0CH6rE+14wcZZKpT8PnaQJMGgwZVIvpvZLjQmzTfJ2+wfaLwIDgzvT 7zR+K/bPfbMejHdUCISE1fqe1MLwj2HpLa88pakISC+gPciNm5Y3qgSbRZs+rs7ADPl8 1TgnuwJmS5xNBFgeRGOxf4V4dCzmEqWatf0aLjOzT/NgBotmxA2D7T0xKrm6M399wiWz Su8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=cJvrPaAaFSzZAMsWc01sNx5dzJpVx3P9bhLC6r+6rtw=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=nnwWckVkNvAyRuRYaz5YjyLQkloUXZoJlOdmlXdFUr0sVF9F32M6l9Qbh4/ZJ8LlFw N8oC2P3HflvNst/5kvFh2PeqHcpM1iqlfoLc4zpYdaRRDaOGi++rWy/XZOmsL9kiv8h6 /4yjbPD1V8+XIEiK39HMLCdHl55MS1Gpw4MX84+7uE9XxmnXt4C+f2pFOKp0Tu1rVxHQ 0wpR5XwuJSFKXV4RZvWfiUGmfrfMKNUOoDmQsSnGF+6Ksuz+qHzgAOLtaMOhZKD9TMGM cfqLsa+aGvWQgRe3VLtXvoL5+/9+3qkM3lzueSq6aFHyzs9rE5inv72OlsDUJTur5F1k PMDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LFFiD3V1; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id l2-20020a05600012c200b003333eadf26esi3257826wrx.240.2023.12.05.05.47.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:12 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LFFiD3V1; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B84CF8757E; Tue, 5 Dec 2023 14:47:01 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="LFFiD3V1"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AA70F8772E; Tue, 5 Dec 2023 14:47:00 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com [IPv6:2a00:1450:4864:20::233]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A66B58753E for ; Tue, 5 Dec 2023 14:46:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-2c9f413d6b2so36217981fa.1 for ; Tue, 05 Dec 2023 05:46:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784017; x=1702388817; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=cJvrPaAaFSzZAMsWc01sNx5dzJpVx3P9bhLC6r+6rtw=; b=LFFiD3V1O+RecvQIllLf46lyugPuMBRPoVbODZKV0s5jWnDkUaL5MfsmIVkJGFJxn9 WCCh3sxpFricqfuxjbY5ioJ3IjTdWUzSbWrWkAxTtKwRU8fJmF8wovSPCDQYgMQNjoSN W23We152iJc1Z43bTQc7SGNb83DgLTZePtMpyZl0YNZzyXeu5H8H6ZkOvxu/GmIIaHW+ Wg12ektKDH4LHHhHwKg0vvAN707/e8d9F7PrCEtOtRSwWNdkjj/YohBNa8ae9QaVqrPG gL5XGboU1n4gg7Qox+iK9RmvoFqOs4wI8NLXzt0n3hynpLzYIh949jxBfjo65Yy5LP9l XdZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784017; x=1702388817; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cJvrPaAaFSzZAMsWc01sNx5dzJpVx3P9bhLC6r+6rtw=; b=YfRGioxhCAWbk1bJYdFj842Cin9d7Pt+KOowzTLZ7sfHUleqoDqI5suZUvzFxXO1Px OduI0tjkIkrQR2mwhNdAHHOpvZNTgI6CppxLDPpqBh2dAhI2NbLS0O7T3SxOcR6K/Uc1 g7iljGHFxTQ6LpDZt1sfA4IwRSBqsn98vgOZMs0s9T+e/jUR5HPxsFEQfinEiK5/6f9T Wk6wdSVgS/33DlreuyrWjnCCiv9o2oKuvjQMOsiN8lqjPUPJpzLbJQDE58rMoNp/zGW4 CJ+8mEpkoIPK/5xgL0+zcS9gGC4YWqWrYA2wCMWDQOcYj1hGny5uG6H24YZUEvRm9hK7 OUFw== X-Gm-Message-State: AOJu0YwWr8yfi3fyTqbc4BR3/Q1A1sC2NcxbTVFu0oLqf+EvMcKiSLZe UmyP4U2j1k7Eg0IhKS+kBMSq+w== X-Received: by 2002:a2e:8341:0:b0:2ca:5d4:c16d with SMTP id l1-20020a2e8341000000b002ca05d4c16dmr925143ljh.54.1701784017628; Tue, 05 Dec 2023 05:46:57 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.46.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:46:57 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:46 +0000 Subject: [PATCH v6 1/9] gpio: qcom_pmic: fix silent dev_read_addr downcast MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-1-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=1680; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=mkl4qdGXiwrGXE9Al51l5zCtDJYGuwmoU6dNcPnevbE=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zbMRvUlftyqs18vbLLhJ8tGVs1n7sqYyFXALHnYOS T6Suqqro5SFQZCDQVZMkUX8xDLLprWX7TW2L7gAM4eVCWQIAxenAExE9TnDP6NJXE5yh13Yow2+ XDBosd35Z9ebD7e/vH34+t3ax+de31Bh+Gc80fHz+bJw3Uv/jqd2JbOesrA4u3eNSF/YtrOn9n2 LMdkAAA== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean priv->pid is uint32_t, but dev_read_addr() returns a uint64_t on arm64, with the upper bits being used for error codes. Do error checking before downcasting to u32 to prevent errors being silently ignored. Reviewed-by: Sumit Garg Reviewed-by: Neil Armstrong Tested-by: Sumit Garg Signed-off-by: Caleb Connolly Reviewed-by: Simon Glass --- drivers/gpio/qcom_pmic_gpio.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/qcom_pmic_gpio.c b/drivers/gpio/qcom_pmic_gpio.c index 65feb453ebc3..e5841f502953 100644 --- a/drivers/gpio/qcom_pmic_gpio.c +++ b/drivers/gpio/qcom_pmic_gpio.c @@ -221,11 +221,14 @@ static int qcom_gpio_probe(struct udevice *dev) { struct qcom_gpio_bank *priv = dev_get_priv(dev); int reg; + u64 pid; - priv->pid = dev_read_addr(dev); - if (priv->pid == FDT_ADDR_T_NONE) + pid = dev_read_addr(dev); + if (pid == FDT_ADDR_T_NONE) return log_msg_ret("bad address", -EINVAL); + priv->pid = pid; + /* Do a sanity check */ reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE); if (reg != REG_TYPE_VAL) @@ -328,11 +331,14 @@ static int qcom_pwrkey_probe(struct udevice *dev) { struct qcom_gpio_bank *priv = dev_get_priv(dev); int reg; + u64 pid; - priv->pid = dev_read_addr(dev); - if (priv->pid == FDT_ADDR_T_NONE) + pid = dev_read_addr(dev); + if (pid == FDT_ADDR_T_NONE) return log_msg_ret("bad address", -EINVAL); + priv->pid = pid; + /* Do a sanity check */ reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE); if (reg != 0x1) From patchwork Tue Dec 5 13:46:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750379 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678515wrc; Tue, 5 Dec 2023 05:47:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IFuvI8awmeerSNNWj+kMicP4KzPxPJmjuMcONanUllMofwndAAVZ6ZYGH0UxPPS8Q3sTTxB X-Received: by 2002:a5d:51c2:0:b0:332:e667:4277 with SMTP id n2-20020a5d51c2000000b00332e6674277mr4737582wrv.40.1701784043773; Tue, 05 Dec 2023 05:47:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784043; cv=none; d=google.com; s=arc-20160816; b=Gj0B6yeRFWRLWTTR5S1iI79isJcjWV/5PNdD6maSIgmcXFzX8m2N+Ok+kgMIH/kvuA UorUQXoL8eAHSOWbAdo6vT2eeYqN7nozYpYMTELtW4If3S0TwAGBsQbf4brQBnKNGqgS OlLPsb2vO0svKuevdpHfOcuddUjDPeOI17ZRr6+iPIXufE4J5eYIESZEqdJZxxfQcIVF gIX8+C++xHbf1NZFbqxob68UdR50VMtOYK3Ch7+KUur7+TnwLo1AHZ0nQjnZhRMTHdje NwBLzo0G1xaPDmYteWxk7Jb1EhvMqa2Diw8Xh5f09JLURLkqphvJespLGj8kuLRgibzF rA2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=9iWXp1j6Zn5yn85tl3X1/LhNwDy3tZsfmK4PgeIrUo8=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=GKFt9fhm8+e/pLqD9kL0hDghBVupHnfYYW6YevOt5+q3YtelzdoEIArPOv4H1pbMzo KiUUr1QKzWWx3S5addFn+MaGlAb90agzDX/7/QLfbinL0v0rS2TIlZClEUwrUZGx1gY2 Sf3bwi/TZguKo4/kkdUfllmz7bEMp7Ji9KcQs8/k7N7NJMIwTLfKI4WcZ9wUF45Xf0cD yg6gjD5N5wbTG8At2LuZ6CyP1cIpvEClhGPu6qUC5Qq0yqv9P1VNKkmMQ1R2P1NfABJ5 jlH+ODxMGBX2OLkxFN9Br0ygFoaHrACPUCsr5OsX3wq9fkVdBlsCv3pNVe0XNZIPiPcI aw5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gpX9I38C; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id q7-20020adfab07000000b003333f9629ffsi3175015wrc.656.2023.12.05.05.47.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:23 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gpX9I38C; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3B7C187860; Tue, 5 Dec 2023 14:47:03 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="gpX9I38C"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 24FCB8782F; Tue, 5 Dec 2023 14:47:02 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 0B00587447 for ; Tue, 5 Dec 2023 14:47:00 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2ca09601127so24566941fa.1 for ; Tue, 05 Dec 2023 05:47:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784019; x=1702388819; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9iWXp1j6Zn5yn85tl3X1/LhNwDy3tZsfmK4PgeIrUo8=; b=gpX9I38CtK74GzdeKbmolXdHAmSTcTr52UffowgY9Dy0NxRjw00wup7We7/vKUChm1 gVF4EFPxRZ34fO2hyKjWLzUdukDMLJNCZXWBGQRC3nr2jSVvyptHvDcMdRz517pQJ7i6 38VodtavrEFK1/0AY5U+kRZXhKsEyHwVjZJHmeRHAZrFvP6MZZMk8YoHN5FhZgj/1LCr aHZy/yHRbtb59n8fin4cwP3Z6i4s5jxBKKA/8bFDNCYnzLZ2jRaa+HzQtt5A2yp6EA6I rGeTqLWC9M+Fh66V9ngASJ1z6V1HxkO4qePOrxVxGbno3YP1Mwg71ofZcZpA3vYg6MxY 0oWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784019; x=1702388819; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9iWXp1j6Zn5yn85tl3X1/LhNwDy3tZsfmK4PgeIrUo8=; b=lJOFKLWWUmS8CnoboDOsONirMA4dN7/5O5NXyrkREjSftRpbbn3A9UdhWNS2o6yZuk gDLT3s0poziEPMx3fzJfymQGurpJSb6CTzDI1qFU2bC7UPK2pdhlWgiW1MHv3SymMFlT GQU+JBrZUd/DqcB/olNJkMitZldTtyTXy5McdKvCdHVkEXVEG9G4W1caaXecLgbZWavw VAewM4T8YqTQruGx02lf7IJQYLvtl7Cc2ASeqhnhqaOESwwem5w1KDqV2z8zI8bHBiCR mRaprov3u/CnuF8HFz9USOIrxrPm2x3OKyk7gE/H3I2y3hdR9w1ss3rk26p1Wqtt4Oos EFdQ== X-Gm-Message-State: AOJu0YwpdGT7qTJMiJb1JLq/y0yLHmUufSl/Iw2hhB56wvriKq/KiDcO xD2hxTAG967QtrK5WDIbC2zE7w== X-Received: by 2002:a2e:9803:0:b0:2ca:c96:f4b with SMTP id a3-20020a2e9803000000b002ca0c960f4bmr1242301ljj.51.1701784019389; Tue, 05 Dec 2023 05:46:59 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.46.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:46:58 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:47 +0000 Subject: [PATCH v6 2/9] button: qcom-pmic: introduce Qualcomm PMIC button driver MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-2-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=6731; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=XC2aVmHfeLDBs5m9O4Y8n3fofD3xhmDRMJW4d1VDMUk=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zbNzHol9uXzn8o5PoRc/va97bPjxft6sc79eupiHR fxfyaba3lHKwiDIwSArpsgifmKZZdPay/Ya2xdcgJnDygQyhIGLUwAmInad4X+adM8f1/oHt48c Xrvm+PlWh8IfySeSVvBtPhLxpljVh4ufkWEymx6L7Nuoqc+VVp44XyY0226FGe//U5z7yi54XFH by+0BAA== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Qualcomm PMICs include a "pon" function which handles two buttons, the power button and "resin" button (usually volume down). Introduce a new driver following upstream Linux DT to enable these and map them to Enter and Down respectively to enable use in boot menus. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly Reviewed-by: Simon Glass --- MAINTAINERS | 1 + drivers/button/Kconfig | 9 +++ drivers/button/Makefile | 1 + drivers/button/button-qcom-pmic.c | 165 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 176 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index f6d63c8ab563..8cd102eaa070 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -572,6 +572,7 @@ M: Neil Armstrong R: Sumit Garg S: Maintained F: arch/arm/mach-snapdragon/ +F: drivers/button/button-qcom-pmic.c F: drivers/clk/qcom/ F: drivers/gpio/msm_gpio.c F: drivers/mmc/msm_sdhci.c diff --git a/drivers/button/Kconfig b/drivers/button/Kconfig index 8ce2de37d62a..097b05f822e7 100644 --- a/drivers/button/Kconfig +++ b/drivers/button/Kconfig @@ -27,4 +27,13 @@ config BUTTON_GPIO The GPIO driver must used driver model. Buttons are configured using the device tree. +config BUTTON_QCOM_PMIC + bool "Qualcomm power button" + depends on BUTTON + depends on PMIC_QCOM + help + Enable support for the power and "resin" (usually volume down) buttons + on Qualcomm SoCs. These will be configured as the Enter and Down keys + respectively, allowing navigation of bootmenu with buttons on device. + endmenu diff --git a/drivers/button/Makefile b/drivers/button/Makefile index bbd18af14940..68555081a47a 100644 --- a/drivers/button/Makefile +++ b/drivers/button/Makefile @@ -5,3 +5,4 @@ obj-$(CONFIG_BUTTON) += button-uclass.o obj-$(CONFIG_BUTTON_ADC) += button-adc.o obj-$(CONFIG_BUTTON_GPIO) += button-gpio.o +obj-$(CONFIG_BUTTON_QCOM_PMIC) += button-qcom-pmic.o \ No newline at end of file diff --git a/drivers/button/button-qcom-pmic.c b/drivers/button/button-qcom-pmic.c new file mode 100644 index 000000000000..34a976d1e6c6 --- /dev/null +++ b/drivers/button/button-qcom-pmic.c @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Qualcomm generic pmic gpio driver + * + * (C) Copyright 2015 Mateusz Kulikowski + * (C) Copyright 2023 Linaro Ltd. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_TYPE 0x4 +#define REG_SUBTYPE 0x5 + +struct qcom_pmic_btn_priv { + u32 base; + u32 status_bit; + int code; + struct udevice *pmic; +}; + +#define PON_INT_RT_STS 0x10 +#define KPDPWR_ON_INT_BIT 0 +#define RESIN_ON_INT_BIT 1 + +#define NODE_IS_PWRKEY(node) (!strncmp(ofnode_get_name(node), "pwrkey", strlen("pwrkey"))) +#define NODE_IS_RESIN(node) (!strncmp(ofnode_get_name(node), "resin", strlen("resin"))) + +static enum button_state_t qcom_pwrkey_get_state(struct udevice *dev) +{ + struct qcom_pmic_btn_priv *priv = dev_get_priv(dev); + + int reg = pmic_reg_read(priv->pmic, priv->base + PON_INT_RT_STS); + + if (reg < 0) + return 0; + + return (reg & BIT(priv->status_bit)) != 0; +} + +static int qcom_pwrkey_get_code(struct udevice *dev) +{ + struct qcom_pmic_btn_priv *priv = dev_get_priv(dev); + + return priv->code; +} + +static int qcom_pwrkey_probe(struct udevice *dev) +{ + struct button_uc_plat *uc_plat = dev_get_uclass_plat(dev); + struct qcom_pmic_btn_priv *priv = dev_get_priv(dev); + ofnode node = dev_ofnode(dev); + int ret; + u64 base; + + /* Ignore the top-level pon node */ + if (!uc_plat->label) + return 0; + + /* the pwrkey and resin nodes are children of the "pon" node, get the + * PMIC device to use in pmic_reg_* calls. + */ + priv->pmic = dev->parent->parent; + + /* Get the address of the parent pon node */ + base = dev_read_addr(dev->parent); + if (base == FDT_ADDR_T_NONE) { + printf("%s: Can't find address\n", dev->name); + return -EINVAL; + } + + priv->base = base; + + /* Do a sanity check */ + ret = pmic_reg_read(priv->pmic, priv->base + REG_TYPE); + if (ret != 0x1 && ret != 0xb) { + printf("%s: unexpected PMIC function type %d\n", dev->name, ret); + return -ENXIO; + } + + ret = pmic_reg_read(priv->pmic, priv->base + REG_SUBTYPE); + if ((ret & 0x7) == 0) { + printf("%s: unexpected PMCI function subtype %d\n", dev->name, ret); + return -ENXIO; + } + + if (NODE_IS_PWRKEY(node)) { + priv->status_bit = 0; + priv->code = KEY_ENTER; + } else if (NODE_IS_RESIN(node)) { + priv->status_bit = 1; + priv->code = KEY_DOWN; + } else { + /* Should not get here! */ + printf("Invalid pon node '%s' should be 'pwrkey' or 'resin'\n", + ofnode_get_name(node)); + return -EINVAL; + } + + return 0; +} + +static int button_qcom_pmic_bind(struct udevice *parent) +{ + struct udevice *dev; + ofnode node; + int ret; + + dev_for_each_subnode(node, parent) { + struct button_uc_plat *uc_plat; + const char *label; + + if (!ofnode_is_enabled(node)) + continue; + + ret = device_bind_driver_to_node(parent, "qcom_pwrkey", + ofnode_get_name(node), + node, &dev); + if (ret) { + printf("Failed to bind %s! %d\n", label, ret); + return ret; + } + uc_plat = dev_get_uclass_plat(dev); + if (NODE_IS_PWRKEY(node)) { + uc_plat->label = "pwrkey"; + } else if (NODE_IS_RESIN(node)) { + uc_plat->label = "vol_down"; + } else { + printf("Unknown button node '%s' should be 'pwrkey' or 'resin'\n", + ofnode_get_name(node)); + device_unbind(dev); + } + } + + return 0; +} + +static const struct button_ops button_qcom_pmic_ops = { + .get_state = qcom_pwrkey_get_state, + .get_code = qcom_pwrkey_get_code, +}; + +static const struct udevice_id qcom_pwrkey_ids[] = { + { .compatible = "qcom,pm8916-pon" }, + { .compatible = "qcom,pm8941-pon" }, + { .compatible = "qcom,pm8998-pon" }, + { } +}; + +U_BOOT_DRIVER(qcom_pwrkey) = { + .name = "qcom_pwrkey", + .id = UCLASS_BUTTON, + .of_match = qcom_pwrkey_ids, + .bind = button_qcom_pmic_bind, + .probe = qcom_pwrkey_probe, + .ops = &button_qcom_pmic_ops, + .priv_auto = sizeof(struct qcom_pmic_btn_priv), +}; From patchwork Tue Dec 5 13:46:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750380 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678584wrc; Tue, 5 Dec 2023 05:47:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IHMQbpLSxFr81xFW2D5oepQKzgEgilg/KRhFPGLNhJJ49RFsmEoj0Ue5elenov2KgsYLw8k X-Received: by 2002:adf:ea83:0:b0:333:3b99:af9d with SMTP id s3-20020adfea83000000b003333b99af9dmr2763226wrm.46.1701784055541; Tue, 05 Dec 2023 05:47:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784055; cv=none; d=google.com; s=arc-20160816; b=y2dFsTnRtRSFD+0JeD5X/4VQjnILmvlcfHIa4G+cNsR81ldEpjXTNXZBkFTm7CX14y 0BM1JPnby/8LPUuoFUpo2DwQVzYWK67P4SAkIg57EYSsyKJBsgecVjOgUH9tWDhAUCW5 r51NyXwLW11NsEJs6neNo5yL2/muWx2r7RbnOq3kHli7taHSlte6j43xz0bc7YMuVmNv W0I/hFGFTS+bepsB97FAtghJWufS1Iqfwoq7lcWkh5kl4JQ+0Z7o0kyMqMORLcK8lxA8 p32FtWvwjHShePRkXhLUSLx5q4F8o+kdk/GwcSb/gRoEyeMeYvwX9JAgSUoT8iHwdldN ApYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=Cwu2Op+F79hblZCOIGSGQpCBX6IBfpY8c1qZK1zffto=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=FA4QrQMqLbhQtg8aBfRQ5RDJakVSdR/5dlCVzo+m+8PxOjB+9rqyEVnUiIUa3S1CsM UQ6ZgNK3rqXQXYCkMFyHxxsznqOHWfFbzfgGZrIoVDdcnSbujJTuQMsRChV9f/r4lO0a EDDw2KVnRPx/nfVu0kb8XxNP1OCUI2DyO4zZj9v4NHEN2n16SRrVL7DKZbUFzWD0K7lr xx/B9Pe7Ptt9c/Lj59dNV2wO/5DUxScA+k2Wy1iPGlo1hjyCvWtdVHis4QuD6k2XocGZ 0JLZLahl6MHjF0liy0XuwNCez+StNJcBDj7RPvNqVO0I18ZEugXk7VKPPUJ/+k1cB0e0 8kNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="lhC/B4XZ"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id c9-20020adfe709000000b00333393a761fsi3653754wrm.724.2023.12.05.05.47.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:35 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="lhC/B4XZ"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9D4A387896; Tue, 5 Dec 2023 14:47:04 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="lhC/B4XZ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BAE5387626; Tue, 5 Dec 2023 14:47:03 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 78D978753E for ; Tue, 5 Dec 2023 14:47:01 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2c9f4bb2e5eso41077041fa.1 for ; Tue, 05 Dec 2023 05:47:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784021; x=1702388821; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Cwu2Op+F79hblZCOIGSGQpCBX6IBfpY8c1qZK1zffto=; b=lhC/B4XZBh41TipX+Nh65qY5fcSuJJsixr9JFVvXAx49R91q79lsUAcNUZVGl1R9Eo W7LBYdEk0Tdo0Bba9cApGK7BRHMbMZPan2loBZadsjESvUfgRXlq2sFxjGkP5D8v4o2E 7zCvHIA/h2Y9KQGk6zwn16XQraF2gJNWdaNh1S6VhBmpXdSgJcWhLNvo69QhMCxtap2e kpQWBgpxn7ai6uIIMweP930TqqkQRnIrwJmNUbT9dxx+51VL8LouronsKnaXl+BiHbue 6ch83o/Cio0pScdPB+PwiJUHi7giG76XXEHHCCalkB1EV0q4r5riSSaL8oveoqWKx0kX 4Dlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784021; x=1702388821; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Cwu2Op+F79hblZCOIGSGQpCBX6IBfpY8c1qZK1zffto=; b=RyrE0v9AqRnPWJhQMBeSSgc/s/78mTSVJED8+X4k9EhqSebsXKz65mOfAxbkD1a3NW DzmBtVxqTrYGuQfGsE7jv6jV0LOhv8RQsTcRvF+m+zDguycuoggRebreBJxaGTl7eOPF WBEqZb0Ux/aMfvn81IqzOlw/mJJt5b28uU0/B1cLRLZgg1FbTDY6GJ6cmk5eQauDVpGC w442Y1GIDndgDI8dBlry9NCwpj9wlFwfT5v48QtGrPc302Rd+ZOf3pXzUErbWnXLCRhm w8fAfrJOGoa7L9xmRZI2Hku1b3PdtGiBZ3EeSd1cJspsfAuH1vzTuKHWIJYocm7dWcq6 XHIA== X-Gm-Message-State: AOJu0YxnJdTr1L0rQPKpkmKSNBgjQUyUzsTNT5RAfadXLThNy81SmOcb QLan8oVhHfLszJRAVBwjit2QKg== X-Received: by 2002:a2e:9906:0:b0:2ca:41b:74de with SMTP id v6-20020a2e9906000000b002ca041b74demr1478603lji.72.1701784020782; Tue, 05 Dec 2023 05:47:00 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.46.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:00 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:48 +0000 Subject: [PATCH v6 3/9] mach-snapdragon: switch to PMIC button driver MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-3-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=13318; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=9iiCNuG6oEugMwqZrc07BgJS8B1DXIdkgYVbd66RUU8=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXPvA7tsfVYXXv623HEPQ8c3nzdT2t8z8VRtCpbae dZ3Dv+3jlIWBkEOBlkxRRbxE8ssm9ZettfYvuACzBxWJpAhDFycAjCRFSsZGfawFr5gyns0KaDi iqwj8+s9tz5OXbN27keHciOf7T+0lxxn+Gd8tXJv//popRnyc5ebVHMdF9LSuGv2tCzRfHHv5YQ 3i3QA X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The PMIC button driver is a much better representation of the hardware here, adjust the boards to use upstream DT and the PMIC button driver instead of exposing the buttons as GPIOs and relying on the GPIO-button driver. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly --- arch/arm/dts/dragonboard410c-uboot.dtsi | 11 ------ arch/arm/dts/dragonboard410c.dts | 22 +++++++++--- arch/arm/dts/dragonboard820c-uboot.dtsi | 12 ------- arch/arm/dts/dragonboard820c.dts | 23 ++++++++---- arch/arm/dts/dragonboard845c-uboot.dtsi | 11 ------ arch/arm/dts/dragonboard845c.dts | 4 +++ arch/arm/dts/sdm845.dtsi | 23 +++++++++--- arch/arm/dts/starqltechn-uboot.dtsi | 10 ------ arch/arm/dts/starqltechn.dts | 20 +++-------- arch/arm/mach-snapdragon/Kconfig | 3 ++ arch/arm/mach-snapdragon/init_sdm845.c | 45 +++++------------------- board/qualcomm/dragonboard410c/dragonboard410c.c | 31 ++++++---------- board/qualcomm/dragonboard820c/dragonboard820c.c | 29 +++++---------- 13 files changed, 91 insertions(+), 153 deletions(-) diff --git a/arch/arm/dts/dragonboard410c-uboot.dtsi b/arch/arm/dts/dragonboard410c-uboot.dtsi index 3b0bd0ed0a1b..cec64bf80f99 100644 --- a/arch/arm/dts/dragonboard410c-uboot.dtsi +++ b/arch/arm/dts/dragonboard410c-uboot.dtsi @@ -42,14 +42,3 @@ gpios = <&pm8916_gpios 3 0>; }; }; - - -&pm8916_pon { - key_vol_down { - gpios = <&pm8916_pon 1 0>; - }; - - key_power { - gpios = <&pm8916_pon 0 0>; - }; -}; diff --git a/arch/arm/dts/dragonboard410c.dts b/arch/arm/dts/dragonboard410c.dts index 9230dd3fd96c..c41fee977813 100644 --- a/arch/arm/dts/dragonboard410c.dts +++ b/arch/arm/dts/dragonboard410c.dts @@ -147,11 +147,23 @@ #address-cells = <0x1>; #size-cells = <0x1>; - pm8916_pon: pm8916_pon@800 { - compatible = "qcom,pm8916-pwrkey"; - reg = <0x800 0x96>; - #gpio-cells = <2>; - gpio-controller; + pon@800 { + compatible = "qcom,pm8916-pon"; + reg = <0x800 0x100>; + mode-bootloader = <0x2>; + mode-recovery = <0x1>; + + pwrkey { + compatible = "qcom,pm8941-pwrkey"; + debounce = <15625>; + bias-pull-up; + }; + + pm8916_resin: resin { + compatible = "qcom,pm8941-resin"; + debounce = <15625>; + bias-pull-up; + }; }; pm8916_gpios: pm8916_gpios@c000 { diff --git a/arch/arm/dts/dragonboard820c-uboot.dtsi b/arch/arm/dts/dragonboard820c-uboot.dtsi index 457728a43ecb..d93c7c1fbdee 100644 --- a/arch/arm/dts/dragonboard820c-uboot.dtsi +++ b/arch/arm/dts/dragonboard820c-uboot.dtsi @@ -30,15 +30,3 @@ }; }; }; - -&pm8994_pon { - key_vol_down { - gpios = <&pm8994_pon 1 0>; - label = "key_vol_down"; - }; - - key_power { - gpios = <&pm8994_pon 0 0>; - label = "key_power"; - }; -}; diff --git a/arch/arm/dts/dragonboard820c.dts b/arch/arm/dts/dragonboard820c.dts index ad201d48749c..0d9c9f7a4922 100644 --- a/arch/arm/dts/dragonboard820c.dts +++ b/arch/arm/dts/dragonboard820c.dts @@ -109,12 +109,23 @@ #address-cells = <0x1>; #size-cells = <0x1>; - pm8994_pon: pm8994_pon@800 { - compatible = "qcom,pm8994-pwrkey"; - reg = <0x800 0x96>; - #gpio-cells = <2>; - gpio-controller; - gpio-bank-name="pm8994_key."; + pm8994_pon: pon@800 { + compatible = "qcom,pm8916-pon"; + reg = <0x800 0x100>; + mode-bootloader = <0x2>; + mode-recovery = <0x1>; + + pwrkey { + compatible = "qcom,pm8941-pwrkey"; + debounce = <15625>; + bias-pull-up; + }; + + pm8994_resin: resin { + compatible = "qcom,pm8941-resin"; + debounce = <15625>; + bias-pull-up; + }; }; pm8994_gpios: pm8994_gpios@c000 { diff --git a/arch/arm/dts/dragonboard845c-uboot.dtsi b/arch/arm/dts/dragonboard845c-uboot.dtsi index 7728f4f4a3e5..775f45c0149f 100644 --- a/arch/arm/dts/dragonboard845c-uboot.dtsi +++ b/arch/arm/dts/dragonboard845c-uboot.dtsi @@ -24,14 +24,3 @@ }; }; }; - -&pm8998_pon { - key_vol_down { - gpios = <&pm8998_pon 1 0>; - label = "key_vol_down"; - }; - key_power { - gpios = <&pm8998_pon 0 0>; - label = "key_power"; - }; -}; diff --git a/arch/arm/dts/dragonboard845c.dts b/arch/arm/dts/dragonboard845c.dts index b4f057ac6537..054f253eb32a 100644 --- a/arch/arm/dts/dragonboard845c.dts +++ b/arch/arm/dts/dragonboard845c.dts @@ -41,4 +41,8 @@ }; }; +&pm8998_resin { + status = "okay"; +}; + #include "dragonboard845c-uboot.dtsi" diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi index 4798ace0ff8b..cd5d890e9a45 100644 --- a/arch/arm/dts/sdm845.dtsi +++ b/arch/arm/dts/sdm845.dtsi @@ -78,12 +78,25 @@ #address-cells = <0x1>; #size-cells = <0x1>; - pm8998_pon: pm8998_pon@800 { - compatible = "qcom,pm8998-pwrkey"; + pm8998_pon: pon@800 { + compatible = "qcom,pm8998-pon"; + reg = <0x800 0x100>; - #gpio-cells = <2>; - gpio-controller; - gpio-bank-name = "pm8998_key."; + mode-bootloader = <0x2>; + mode-recovery = <0x1>; + + pm8998_pwrkey: pwrkey { + compatible = "qcom,pm8941-pwrkey"; + debounce = <15625>; + bias-pull-up; + }; + + pm8998_resin: resin { + compatible = "qcom,pm8941-resin"; + debounce = <15625>; + bias-pull-up; + status = "disabled"; + }; }; pm8998_gpios: pm8998_gpios@c000 { diff --git a/arch/arm/dts/starqltechn-uboot.dtsi b/arch/arm/dts/starqltechn-uboot.dtsi index 034d5c1c07ed..55c6d18412ba 100644 --- a/arch/arm/dts/starqltechn-uboot.dtsi +++ b/arch/arm/dts/starqltechn-uboot.dtsi @@ -25,13 +25,3 @@ }; }; -&pm8998_pon { - key_vol_down { - gpios = <&pm8998_pon 1 0>; - label = "key_vol_down"; - }; - key_power { - gpios = <&pm8998_pon 0 0>; - label = "key_power"; - }; -}; diff --git a/arch/arm/dts/starqltechn.dts b/arch/arm/dts/starqltechn.dts index 5b6372bee79a..0842e19adb60 100644 --- a/arch/arm/dts/starqltechn.dts +++ b/arch/arm/dts/starqltechn.dts @@ -45,22 +45,6 @@ format = "a8r8g8b8"; }; - gpio-keys { - compatible = "gpio-keys"; - - key-pwr { - label = "Power"; - linux,code = ; - gpios = <&pm8998_pon 0 GPIO_ACTIVE_LOW>; - }; - - key-vol-down { - label = "Volume Down"; - linux,code = ; - gpios = <&pm8998_pon 1 GPIO_ACTIVE_LOW>; - }; - }; - soc: soc { serial@a84000 { status = "okay"; @@ -68,6 +52,10 @@ }; }; +&pm8998_resin { + status = "okay"; +}; + &tlmm { muic_i2c: muic-i2c-n { pins = "GPIO_33", "GPIO_34"; diff --git a/arch/arm/mach-snapdragon/Kconfig b/arch/arm/mach-snapdragon/Kconfig index 3c9f3bee3f18..ad6671081910 100644 --- a/arch/arm/mach-snapdragon/Kconfig +++ b/arch/arm/mach-snapdragon/Kconfig @@ -17,6 +17,7 @@ config SDM845 select LINUX_KERNEL_IMAGE_HEADER imply CLK_QCOM_SDM845 imply PINCTRL_QCOM_SDM845 + imply BUTTON_QCOM_PMIC config LNX_KRNL_IMG_TEXT_OFFSET_BASE default 0x80000000 @@ -30,6 +31,7 @@ config TARGET_DRAGONBOARD410C select ENABLE_ARM_SOC_BOOT0_HOOK imply CLK_QCOM_APQ8016 imply PINCTRL_QCOM_APQ8016 + imply BUTTON_QCOM_PMIC help Support for 96Boards Dragonboard 410C. This board complies with 96Board Open Platform Specifications. Features: @@ -45,6 +47,7 @@ config TARGET_DRAGONBOARD820C bool "96Boards Dragonboard 820C" imply CLK_QCOM_APQ8096 imply PINCTRL_QCOM_APQ8096 + imply BUTTON_QCOM_PMIC help Support for 96Boards Dragonboard 820C. This board complies with 96Board Open Platform Specifications. Features: diff --git a/arch/arm/mach-snapdragon/init_sdm845.c b/arch/arm/mach-snapdragon/init_sdm845.c index 1f8850239437..067acc9a6f44 100644 --- a/arch/arm/mach-snapdragon/init_sdm845.c +++ b/arch/arm/mach-snapdragon/init_sdm845.c @@ -5,6 +5,7 @@ * (C) Copyright 2021 Dzmitry Sankouski */ +#include #include #include #include @@ -32,46 +33,18 @@ __weak int board_init(void) /* Check for vol- and power buttons */ __weak int misc_init_r(void) { - struct udevice *pon; - struct gpio_desc resin; - int node, ret; + struct udevice *btn; + int ret; + enum button_state_t state; - ret = uclass_get_device_by_name(UCLASS_GPIO, "pm8998_pon@800", &pon); + ret = button_get_by_label("pwrkey", &btn); if (ret < 0) { - printf("Failed to find PMIC pon node. Check device tree\n"); - return 0; + printf("Couldn't find power button!\n"); + return ret; } - node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon), - "key_vol_down"); - if (node < 0) { - printf("Failed to find key_vol_down node. Check device tree\n"); - return 0; - } - if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0, - &resin, 0)) { - printf("Failed to request key_vol_down button.\n"); - return 0; - } - if (dm_gpio_get_value(&resin)) { - env_set("key_vol_down", "1"); - printf("Volume down button pressed\n"); - } else { - env_set("key_vol_down", "0"); - } - - node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon), - "key_power"); - if (node < 0) { - printf("Failed to find key_power node. Check device tree\n"); - return 0; - } - if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0, - &resin, 0)) { - printf("Failed to request key_power button.\n"); - return 0; - } - if (dm_gpio_get_value(&resin)) { + state = button_get_state(btn); + if (state == BUTTON_ON) { env_set("key_power", "1"); printf("Power button pressed\n"); } else { diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c index 371b3262f8c5..350e0e9e20aa 100644 --- a/board/qualcomm/dragonboard410c/dragonboard410c.c +++ b/board/qualcomm/dragonboard410c/dragonboard410c.c @@ -5,6 +5,7 @@ * (C) Copyright 2015 Mateusz Kulikowski */ +#include #include #include #include @@ -108,32 +109,20 @@ int board_usb_init(int index, enum usb_init_type init) /* Check for vol- button - if pressed - stop autoboot */ int misc_init_r(void) { - struct udevice *pon; - struct gpio_desc resin; - int node, ret; + struct udevice *btn; + int ret; + enum button_state_t state; - ret = uclass_get_device_by_name(UCLASS_GPIO, "pm8916_pon@800", &pon); + ret = button_get_by_label("vol_down", &btn); if (ret < 0) { - printf("Failed to find PMIC pon node. Check device tree\n"); - return 0; + printf("Couldn't find power button!\n"); + return ret; } - node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon), - "key_vol_down"); - if (node < 0) { - printf("Failed to find key_vol_down node. Check device tree\n"); - return 0; - } - - if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0, - &resin, 0)) { - printf("Failed to request key_vol_down button.\n"); - return 0; - } - - if (dm_gpio_get_value(&resin)) { + state = button_get_state(btn); + if (state == BUTTON_ON) { env_set("preboot", "setenv preboot; fastboot 0"); - printf("key_vol_down pressed - Starting fastboot.\n"); + printf("vol_down pressed - Starting fastboot.\n"); } return 0; diff --git a/board/qualcomm/dragonboard820c/dragonboard820c.c b/board/qualcomm/dragonboard820c/dragonboard820c.c index 6785bf58e949..2f0db628368b 100644 --- a/board/qualcomm/dragonboard820c/dragonboard820c.c +++ b/board/qualcomm/dragonboard820c/dragonboard820c.c @@ -5,6 +5,7 @@ * (C) Copyright 2017 Jorge Ramirez-Ortiz */ +#include #include #include #include @@ -139,30 +140,18 @@ void reset_cpu(void) /* Check for vol- button - if pressed - stop autoboot */ int misc_init_r(void) { - struct udevice *pon; - struct gpio_desc resin; - int node, ret; + struct udevice *btn; + int ret; + enum button_state_t state; - ret = uclass_get_device_by_name(UCLASS_GPIO, "pm8994_pon@800", &pon); + ret = button_get_by_label("pwrkey", &btn); if (ret < 0) { - printf("Failed to find PMIC pon node. Check device tree\n"); - return 0; + printf("Couldn't find power button!\n"); + return ret; } - node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon), - "key_vol_down"); - if (node < 0) { - printf("Failed to find key_vol_down node. Check device tree\n"); - return 0; - } - - if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0, - &resin, 0)) { - printf("Failed to request key_vol_down button.\n"); - return 0; - } - - if (dm_gpio_get_value(&resin)) { + state = button_get_state(btn); + if (state == BUTTON_ON) { env_set("bootdelay", "-1"); printf("Power button pressed - dropping to console.\n"); } From patchwork Tue Dec 5 13:46:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750381 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678688wrc; Tue, 5 Dec 2023 05:47:48 -0800 (PST) X-Google-Smtp-Source: AGHT+IE6PhVy7m16MbDIc9cTFm0Rt4cut4tK2VPzCGt5Z5jnKawwYgdr3Z41/AuJ4A9YzRPF5mor X-Received: by 2002:adf:ec49:0:b0:333:2e15:632c with SMTP id w9-20020adfec49000000b003332e15632cmr4661790wrn.10.1701784068217; Tue, 05 Dec 2023 05:47:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784068; cv=none; d=google.com; s=arc-20160816; b=fhMCp/t8IajzjKm7GoszKLdOLQ02xUG6kHsfWdfnr6uDiFT22OKKjjqK5iYAVlaSS6 3ix+Xkj6EFEB6KOU99X7umOQ1hwdJuIsDdgeSkTzGtZ7yrGzn7eurkbVarBY6J7EqTfy 8Htj0ncUgKuX2nvfh2aqdKt5m7RkQXsXXfB+ZSA7toQ+rbqcCYWPw4ZYp1tJuCFc5w/F nlYodLtUx10NLNwDccjH+gD97xj/N0ExPbGlJjdNPTsXMm4lmwiojCZT9AIO5awBjIQm hD2lj0kXeGLbuvmC06qBKfIcdf4mO7YydDZ/orep4n/WEpsZzLc85BoltBTcGVvwa/12 TvGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=BUOXJJrwuYx59XcbNPsr8AkqI4r/WwnLiXmnZJz33t8=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=N9xNH5/fdJNbBNv98qlzQzy9Yu8tpPP2bbkvQjg8mhwjMrkZY6iQavIElgwPkZY2c5 aVPFEWYvVWlE3CPcsDPOHXhcm6w7jwpGKZvAkmCss+MNhWya2VymzpocDRktgyx5kR9p 6YZMJUYG82UZfjlhOGOJJxVx7pBGH1ZpOw2Idd2g8P7R/Ufvupm/WfwOdkZ1VQbRloXG i2UN08LNtAkJz9qFuUi058SYLH5o88xryAfM2NzIx14vRF4ZDsju0RqC2yANl7RktYqc tdPAZFLJ1d2n7C/2Kg0Aez55lv59ccHLiz66xxTD6UlZAIZr2sWQrXVksmhwq2WWBUX7 51Bw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=e5Vx3mpd; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id y15-20020adfe6cf000000b003333ffcd585si2984948wrm.353.2023.12.05.05.47.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:48 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=e5Vx3mpd; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 079668784C; Tue, 5 Dec 2023 14:47:07 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="e5Vx3mpd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 12CB0878A9; Tue, 5 Dec 2023 14:47:05 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com [IPv6:2a00:1450:4864:20::22d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1047C87447 for ; Tue, 5 Dec 2023 14:47:03 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-2c9f559b82cso33670711fa.0 for ; Tue, 05 Dec 2023 05:47:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784022; x=1702388822; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=BUOXJJrwuYx59XcbNPsr8AkqI4r/WwnLiXmnZJz33t8=; b=e5Vx3mpdBbLxs+4lO42fO3OkaZSZ9wIG4dVm1chYAP1hkA3P08S7yIDFQ8+GgrmxUf Vc+ewkBMxEAx79Kau76ai0HR79xCnRgVMzIMvGZIWm/QrKGsVKKPFOFsLicdAOuk3qdx 7oiLarg1JGCrxgY0TXTBlZkxUHxNc3/mt4rBpq4PN0++hCI0cNEuR6ICJnFC7YRU1ByY jLcAKuPmfRRTDjp4pL/NDouLSaxkF5bj+JZTQVqFFk7FfTK9dzkQF8qB+FtRNj8XRHeE eUhw8RioK/VSJA6iMxgn986EMFRhAbpf8wW/vCv3IKUgPRoirej+Lt5PGZNrqH0T/eRD +NpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784022; x=1702388822; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BUOXJJrwuYx59XcbNPsr8AkqI4r/WwnLiXmnZJz33t8=; b=hr1drUVriOuTHGDEefsG7DF6uJCqhnS/irkE4+DGygV/nZEiwGwRqSjfPtKZ4WIjpf b8WemXnnsIeieA8Zl4f6MfJYcYZRJB8Sn44vrI0G0wiGJ1sIPv9lHywBUlJsAzA8D4/R WVXJ2oqupqTrYbUkDiaLibGFmCHeaLfIKR09PbZEzbswOhnYIWAVcdHmFKD2Seg6nrDk WBd0qt+TI9TI5cL5aB/o0VHQyKPu/uSSSO3p7kTiEbrO4Ri7o7iuUcIMAbt01+jVeHMU 8kDDTFWofV2iLW0hTapSXfvcBjqakGXJei1xhuqNRRA+pZCX8a5JCTa/ZyVP50t0VRZ1 8MwQ== X-Gm-Message-State: AOJu0YzMYowjb/9LOsGdGI+WbcFcX8BwOGtKGRJ7Vo8jvyNH1eK78aby perQxnEYVGi++qZhcuonfn1bRQ== X-Received: by 2002:a2e:81c8:0:b0:2c9:b88c:b492 with SMTP id s8-20020a2e81c8000000b002c9b88cb492mr3338729ljg.23.1701784022026; Tue, 05 Dec 2023 05:47:02 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.47.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:01 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:49 +0000 Subject: [PATCH v6 4/9] gpio: qcom_pmic: drop pon GPIO driver MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-4-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=4249; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=Ra58TtEdxTT9kmMZDxiOnSwxFfu6ulamxF4t4PULT6I=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXO7rmxZvDb/2Bm2ffunHGoKuH5WtIfh54Tw2kMVy +bs0Z94uqOUhUGQg0FWTJFF/MQyy6a1l+01ti+4ADOHlQlkCAMXpwBMRPQyI8O2n1eKP/Y7iW/O KKm48n73nvLD7In1HgfqYv/NXnjHStmb4X8N9y7FtJnCe72ut3KYMqb9XyF771H/lAM3H8W+716 0d/dZAA== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Remove the (now unused) GPIO driver for the power and resin buttons on the PMIC. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly --- drivers/gpio/Kconfig | 5 +- drivers/gpio/qcom_pmic_gpio.c | 104 ------------------------------------------ 2 files changed, 2 insertions(+), 107 deletions(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index ba42b0768e12..e00b2f2fcfe3 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -309,12 +309,11 @@ config CMD_PCA953X config QCOM_PMIC_GPIO bool "Qualcomm generic PMIC GPIO/keypad driver" depends on DM_GPIO && PMIC_QCOM + select BUTTON help Support for GPIO pins and power/reset buttons found on Qualcomm SoCs PMIC. - Default name for GPIO bank is "pm8916". - Power and reset buttons are placed in "pwkey_qcom" bank and - have gpio numbers 0 and 1 respectively. + The GPIO bank is called "pmic" config PCF8575_GPIO bool "PCF8575 I2C GPIO Expander driver" diff --git a/drivers/gpio/qcom_pmic_gpio.c b/drivers/gpio/qcom_pmic_gpio.c index e5841f502953..7b83c67fa464 100644 --- a/drivers/gpio/qcom_pmic_gpio.c +++ b/drivers/gpio/qcom_pmic_gpio.c @@ -275,107 +275,3 @@ U_BOOT_DRIVER(qcom_pmic_gpio) = { .priv_auto = sizeof(struct qcom_gpio_bank), }; - -/* Add pmic buttons as GPIO as well - there is no generic way for now */ -#define PON_INT_RT_STS 0x10 -#define KPDPWR_ON_INT_BIT 0 -#define RESIN_ON_INT_BIT 1 - -static int qcom_pwrkey_get_function(struct udevice *dev, unsigned offset) -{ - return GPIOF_INPUT; -} - -static int qcom_pwrkey_get_value(struct udevice *dev, unsigned offset) -{ - struct qcom_gpio_bank *priv = dev_get_priv(dev); - - int reg = pmic_reg_read(dev->parent, priv->pid + PON_INT_RT_STS); - - if (reg < 0) - return 0; - - switch (offset) { - case 0: /* Power button */ - return (reg & BIT(KPDPWR_ON_INT_BIT)) != 0; - break; - case 1: /* Reset button */ - default: - return (reg & BIT(RESIN_ON_INT_BIT)) != 0; - break; - } -} - -/* - * Since pmic buttons modelled as GPIO, we need empty direction functions - * to trick u-boot button driver - */ -static int qcom_pwrkey_direction_input(struct udevice *dev, unsigned int offset) -{ - return 0; -} - -static int qcom_pwrkey_direction_output(struct udevice *dev, unsigned int offset, int value) -{ - return -EOPNOTSUPP; -} - -static const struct dm_gpio_ops qcom_pwrkey_ops = { - .get_value = qcom_pwrkey_get_value, - .get_function = qcom_pwrkey_get_function, - .direction_input = qcom_pwrkey_direction_input, - .direction_output = qcom_pwrkey_direction_output, -}; - -static int qcom_pwrkey_probe(struct udevice *dev) -{ - struct qcom_gpio_bank *priv = dev_get_priv(dev); - int reg; - u64 pid; - - pid = dev_read_addr(dev); - if (pid == FDT_ADDR_T_NONE) - return log_msg_ret("bad address", -EINVAL); - - priv->pid = pid; - - /* Do a sanity check */ - reg = pmic_reg_read(dev->parent, priv->pid + REG_TYPE); - if (reg != 0x1) - return log_msg_ret("bad type", -ENXIO); - - reg = pmic_reg_read(dev->parent, priv->pid + REG_SUBTYPE); - if ((reg & 0x5) == 0) - return log_msg_ret("bad subtype", -ENXIO); - - return 0; -} - -static int qcom_pwrkey_of_to_plat(struct udevice *dev) -{ - struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev); - - uc_priv->gpio_count = 2; - uc_priv->bank_name = dev_read_string(dev, "gpio-bank-name"); - if (uc_priv->bank_name == NULL) - uc_priv->bank_name = "pwkey_qcom"; - - return 0; -} - -static const struct udevice_id qcom_pwrkey_ids[] = { - { .compatible = "qcom,pm8916-pwrkey" }, - { .compatible = "qcom,pm8994-pwrkey" }, - { .compatible = "qcom,pm8998-pwrkey" }, - { } -}; - -U_BOOT_DRIVER(pwrkey_qcom) = { - .name = "pwrkey_qcom", - .id = UCLASS_GPIO, - .of_match = qcom_pwrkey_ids, - .of_to_plat = qcom_pwrkey_of_to_plat, - .probe = qcom_pwrkey_probe, - .ops = &qcom_pwrkey_ops, - .priv_auto = sizeof(struct qcom_gpio_bank), -}; From patchwork Tue Dec 5 13:46:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750382 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678766wrc; Tue, 5 Dec 2023 05:47:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IH9obCHG9JS3bUT3ddUJk0zIUgjS/BUoGffOieOHzscTYDoNPSfGzqaJbPs+gjeCszEOvB9 X-Received: by 2002:a5d:510d:0:b0:333:3fc7:f2bf with SMTP id s13-20020a5d510d000000b003333fc7f2bfmr2704773wrt.134.1701784079316; Tue, 05 Dec 2023 05:47:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784079; cv=none; d=google.com; s=arc-20160816; b=L9iIlBKD3wHr5gIJ4qZL8z7RnUQDEVa8oc5O5oOQDhCkE5lcG+YGnT1a+E1qdPtxZx alU5HhbuuIFbjh+9Ei1uHeziQnBAagZnmlFuuFfhPhaOLYVffaSbpH9VqtL+6QaFeXbp MnIScrhhQwYoMYrZy3yRlevM30EFOUtYPOqxj7K3GIXSZSBERe0t+7n0c4QE0Lx5G4Tg 1o6og9XqEGbhztoDdaVHRxVcC58uKFYtQuiGzp1Cel+0ttaggAn18iFpvcUGrbimTRbO eLxaLdLqXie3cjlyO9z0Uaq/f+hPWJ7/JYKzF6LKzXEjlgnJy6BrO0nCKEFfyJ5rQdlx 3uMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=ToeRg/qTzycp+tXwM62aTvWEHWd1IbuiLlCcu4hbrf0=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=wjMNlDEX5Odn5pmArecKZc5Bh3wvZAiHaRKYh9VobRl4n8jJzBFqagdVpfITVOgw+C MU1j6pFPXPq5tZ73h4uZAvbOK17I4M02vxDXWFEm64+gXDkZddzlwSYzEwNEOGh6qS4W fC+EJbf8j30NLp27Ibe8wTdWosRI8YUQ5X2vND+ZUbHQfWFdY7ora5IBEcguONy6zlex U3O8g3q41K+FJuW/OqLi0CuwQgTq1ZYxQZ8CMGFsFP/QxhO8dkFv5+LEH3vFbCzgtU1o SXC9uL4zWmDhciyhIMvgYH+pkR8k2QTa9KAsWaAeeyFa74J0iejvazJLhoTw4AFbMpoc lIsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=k+LAhg9n; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id f10-20020a056000036a00b0032f7c4a499csi6083396wrf.109.2023.12.05.05.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:59 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=k+LAhg9n; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 65B74878BA; Tue, 5 Dec 2023 14:47:07 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="k+LAhg9n"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 38B9D87626; Tue, 5 Dec 2023 14:47:06 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4B10387745 for ; Tue, 5 Dec 2023 14:47:04 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2c9f57d9952so37987361fa.3 for ; Tue, 05 Dec 2023 05:47:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784023; x=1702388823; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ToeRg/qTzycp+tXwM62aTvWEHWd1IbuiLlCcu4hbrf0=; b=k+LAhg9nktRHJ/i6RTFz07vim1/dSgSKSP8YRrRnHVxLtgr2Jw+U6uXhdxDWZ1YEmi 6MPjEIkw6mLH6Px1Rhj/WNj3hNZuww06AMA857MZ5orpENH6oJeQTxcNQUlu3xeGTMBr +Z9bWIJ8SzdfAtpmRt26H/GEycH4OARHN/sHQIKqKk7nxZ/NcH4opP8Lcd0rOu/Z8U95 0R62Eu8HwnVHhHt7ZfFDdQd8FGKXQpQagqZ1b2QelEHOSayg25JR4bOjKx+gO4uQg408 ujj9qzQKPu62B4bP4HDa+BpMtSgzZESzxqlDYTM9fqur6XdLo7NAshhHS/AC+K55Biui n4yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784023; x=1702388823; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ToeRg/qTzycp+tXwM62aTvWEHWd1IbuiLlCcu4hbrf0=; b=TV05IotwO0lH6ogEBemahcMbe+oicPSXtUp0QNfLq0PczxqvmindrUO2vOID5UbHzE 7HMNH33/KWAgdmPFOYl/YNzv30IWpF6yb1WqbC84XG/jpFl/HRdFkJg02PN1MdnvSsT5 Ax4qymFjHuZqlkVx47enVgCijC1QxpQ9YfpEH6XFPVNN9hvRCDpX2BPVzUqlwynu57N2 uzwZM69uv52Fv12oPdQYrUq/V88MoU3b/Z/J0JsQzbx8ED4Qj9jetkHJEUsw65UsTf7Q rxuw0O0tePAxfQgiA3TzaUEHgKMfn4gaFpB7a9EpHauWWWhejv/kcI2saMWmPBI+n4gr DrWw== X-Gm-Message-State: AOJu0YyfMcpCcY5YLQZtkKXgF7+ppCIFPk0D2X9c8rTujnDJ3AbYfoMb AJvMQ9kEY3+UNFzjBVWFUBymbg== X-Received: by 2002:a2e:8181:0:b0:2ca:dc7:6596 with SMTP id e1-20020a2e8181000000b002ca0dc76596mr1150249ljg.77.1701784023734; Tue, 05 Dec 2023 05:47:03 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.47.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:03 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:50 +0000 Subject: [PATCH v6 5/9] gpio: qcom_pmic: support upstream DT MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-5-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=1856; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=tryPUJEelsn2aYdAYdxSHQ9xFfUTee+qQvSaqHDrkvA=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXPbN1haas9m3u6bGfOvJr5ws3Ssi92OPTL6S2ImG 4l9dzbpKGVhEORgkBVTZBE/scyyae1le43tCy7AzGFlAhnCwMUpABOJf8zw3+v7oW1bTzzqu/Hh 6u8jl+UytiX++fU1aumOe0HLhCfUTuBkZFi4V++iudFxsYmLHWf775aOlvxhqCbx3H3dqyqVt47 vvDwB X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream uses the gpio-ranges property to define the number of GPIOs, support for parsing this when gpio-count is unspecified Additionally, drop the bank-name property as it isn't used in upstream, and we can just hardcode the bank name instead. Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly Reviewed-by: Simon Glass --- drivers/gpio/qcom_pmic_gpio.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/qcom_pmic_gpio.c b/drivers/gpio/qcom_pmic_gpio.c index 7b83c67fa464..5221bd27825e 100644 --- a/drivers/gpio/qcom_pmic_gpio.c +++ b/drivers/gpio/qcom_pmic_gpio.c @@ -245,14 +245,39 @@ static int qcom_gpio_probe(struct udevice *dev) return 0; } +/* + * Parse basic GPIO count specified via the gpio-ranges property + * as specified in Linux devicetrees + * Returns < 0 on error, otherwise gpio count + */ +static int qcom_gpio_of_parse_ranges(struct udevice *dev) +{ + int ret; + struct ofnode_phandle_args args; + + ret = ofnode_parse_phandle_with_args(dev_ofnode(dev), "gpio-ranges", + NULL, 3, 0, &args); + if (ret) + return log_msg_ret("gpio-ranges", ret); + + return args.args[2]; +} + static int qcom_gpio_of_to_plat(struct udevice *dev) { struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev); + int ret; uc_priv->gpio_count = dev_read_u32_default(dev, "gpio-count", 0); - uc_priv->bank_name = dev_read_string(dev, "gpio-bank-name"); - if (uc_priv->bank_name == NULL) - uc_priv->bank_name = "qcom_pmic"; + if (!uc_priv->gpio_count) { + ret = qcom_gpio_of_parse_ranges(dev); + if (ret > 0) + uc_priv->gpio_count = ret; + else + return ret; + } + + uc_priv->bank_name = "pmic"; return 0; } From patchwork Tue Dec 5 13:46:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750383 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678859wrc; Tue, 5 Dec 2023 05:48:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IHAvLU/h5fkFho21Zu3lNxPPQ7m1tWBvtiM4uH9QeK3pa5yY5CGF+IZoZJZkaNc9RaTlfoh X-Received: by 2002:a7b:cd97:0:b0:40b:4ff7:76f1 with SMTP id y23-20020a7bcd97000000b0040b4ff776f1mr510820wmj.1.1701784090053; Tue, 05 Dec 2023 05:48:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784090; cv=none; d=google.com; s=arc-20160816; b=nDP7SV+2l43QbBDPLB4t4dqyNyqRmxRu5lD+T8x5XKWE/D3uyNa/7VUF5abh5L+2pL IfUxyGqv6X5/b+rK9cm/RNmwgCxrwzHZEceElEXBOdEuQxu+VTk+zwlh0xevee0iwPrp 5t0hvRW7Lb8qNOhaY4EktsxyYH1xb3UB6Yvvy2yemrXAZAxKqQc48v+wq+hi7cU1M5BF 4FRaxaUMlEIhP7bV4U/p8MjkTqx1AynrUOcYHWTF9ZD5xGxaKcUGFu/mzo+4JdHUTwbK HdSaVfl5Yb5MV5BEjv+eKw54LGFhHINQTKetOJUsQj9hOZijgyc5lggYdnbXxLI8uo0y geVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=alb04N3oaBkRkGdVa9rxQCjSq3ixOo/r+A2MXjNtWWU=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=QU6Kq0Wp7enox5AOcE6sjMMZB0fosU/pnse5XaXfzDwUuuFgId18mL7vBFyxiaAHVC 2rqoVFmu3p7fxwvwaFmONiHTIzWBSFYKi92AYNzz6m8RN9q1XwoEJVVGlgcxLRv9RfXo M9ZFXMwNkBBWVtM+qCYVaD2KhiDqCjgsCVKN3a4GXzmiHGRvgb53xLfeuSSP7r9EKfsN HeGkBg676VrDOwNP9XFztqNy3OytO/vRHA41+Av+HtZ0YYt9sp3kMsryEsOvWdh5Om+t xMdoJ/JgXHD4voAFeH6FAWciLb6I1WNaa33MjODA8WElmZoteX9uK/e6yAk/8FI9xq1h YGow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GOnBq9gw; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id k20-20020a7bc314000000b0040b537d6d96si5897860wmj.140.2023.12.05.05.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:48:10 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GOnBq9gw; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C429987745; Tue, 5 Dec 2023 14:47:09 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="GOnBq9gw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id ADA97870F4; Tue, 5 Dec 2023 14:47:07 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 819DA8779E for ; Tue, 5 Dec 2023 14:47:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2c9f85eff28so41619331fa.3 for ; Tue, 05 Dec 2023 05:47:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784025; x=1702388825; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=alb04N3oaBkRkGdVa9rxQCjSq3ixOo/r+A2MXjNtWWU=; b=GOnBq9gwY0m8KUNNi+pC/tmBLnMpMoeb8jgOXSy4v/dijqOOcjEGXIrpT4oyQj9qOU nH3JT1r4ymMvholG8u4lICL4tvGkhN81vTmfdTQZAg7rm6zrRJmToKZanX8M7GkzKZ1M XNNNARqLiYZUHlJ4WAu4dj3EQz6u/YpaWJVoHcx2OQLqHclJuGq4nz0MrBoxh2rAP6XW CukWws2PFm2ejOcl8rYIbXeFusW5ziMRDnVkdERp0IcXrXUw5VNFG5pQ4Yig55Tou1CJ enHUZBK17AcZxHt9u4nPfAJTCbaHrIvJEB12ofEFYQDRzymoEHND+QePhX2qoExXq/QV DlpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784025; x=1702388825; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=alb04N3oaBkRkGdVa9rxQCjSq3ixOo/r+A2MXjNtWWU=; b=S6HIEzh3EshSAK1OZn/dg65LOYTrpCFbkqTpivbXk/2n9MoxaJsRhf6A4Ayuoo5o0Y xkUNtE5U7w5yfS6UGV1aqtK2QECDGfjo/mvuWL/W+h1oWzTK7fWRf94TbIDwMUtTEVGN eFXYCxMh3tFPI6T0TpxyzUZoyqrDFmGUF/sJ1hOzwhbrVxyRpROQxWoKYDPmL7d2ynuG KW33uNT2Uq4R5//K1T5qQq8HLlBYnyvpCgld6bY+ISa9o5sJHfzAZiN2eYUwn+IXxMsM IKezA/3xev/YKMlMnnV+2DqLMcmM0vCiNUNT2FRJyKyWKYiwmQfBfi4un4yt8s3zoY+F RFtw== X-Gm-Message-State: AOJu0Yxc524KnSKvu8m6Aa0NaB9RDJh86Z+vMjqs5Ocm7DLkrk9h07FR B21UzYuNaIMaRa+YN/SNTVS7vQ== X-Received: by 2002:a2e:b0f4:0:b0:2ca:f0:47f6 with SMTP id h20-20020a2eb0f4000000b002ca00f047f6mr1660662ljl.10.1701784024959; Tue, 05 Dec 2023 05:47:04 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.47.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:04 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:51 +0000 Subject: [PATCH v6 6/9] dts: qcom: adjust pmic gpio to use upstream bindings MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-6-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=2390; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=uPuJrNlKNVfI90nMq6KonKZn0x/ra44MAMSOWoTg69E=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXM9Nyf8mvntvRz/PI+lW33+2157zXaL16dH/Xhvx quvxxN/dJSyMAhyMMiKKbKIn1hm2bT2sr3G9gUXYOawMoEMYeDiFICJzJvJ8E+HbZVtxde3L5nN n7xdlhy5QjT3xiPxTO7Zr/RKZnSFeEUz/FPN+zvZ7/+KDey/HwXbGb6Q+9fksMj2zx77RXxmhzg 2OE0GAA== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Use the upstream gpio-ranges property instead of gpio-count, and drop the bank-name property for Qualcomm boards. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly --- arch/arm/dts/dragonboard410c.dts | 3 +-- arch/arm/dts/dragonboard820c.dts | 3 +-- arch/arm/dts/qcs404-evb.dts | 3 +-- arch/arm/dts/sdm845.dtsi | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/arch/arm/dts/dragonboard410c.dts b/arch/arm/dts/dragonboard410c.dts index c41fee977813..6a4e3ccf17b1 100644 --- a/arch/arm/dts/dragonboard410c.dts +++ b/arch/arm/dts/dragonboard410c.dts @@ -170,9 +170,8 @@ compatible = "qcom,pm8916-gpio"; reg = <0xc000 0x400>; gpio-controller; - gpio-count = <4>; + gpio-ranges = <&pm8916_gpios 0 0 4>; #gpio-cells = <2>; - gpio-bank-name="pmic"; }; }; diff --git a/arch/arm/dts/dragonboard820c.dts b/arch/arm/dts/dragonboard820c.dts index 0d9c9f7a4922..146a0af8aafe 100644 --- a/arch/arm/dts/dragonboard820c.dts +++ b/arch/arm/dts/dragonboard820c.dts @@ -132,9 +132,8 @@ compatible = "qcom,pm8994-gpio"; reg = <0xc000 0x400>; gpio-controller; - gpio-count = <24>; + gpio-ranges = <&pm8994_gpios 0 0 22>; #gpio-cells = <2>; - gpio-bank-name="pm8994."; }; }; diff --git a/arch/arm/dts/qcs404-evb.dts b/arch/arm/dts/qcs404-evb.dts index 84224a8a3d39..bd2e303e10f4 100644 --- a/arch/arm/dts/qcs404-evb.dts +++ b/arch/arm/dts/qcs404-evb.dts @@ -378,9 +378,8 @@ compatible = "qcom,pms405-gpio"; reg = <0xc000 0x400>; gpio-controller; - gpio-count = <12>; + gpio-ranges = <&pms405_gpios 0 0 12>; #gpio-cells = <2>; - gpio-bank-name="pmic"; }; }; }; diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi index cd5d890e9a45..a26e9f411ee0 100644 --- a/arch/arm/dts/sdm845.dtsi +++ b/arch/arm/dts/sdm845.dtsi @@ -103,9 +103,8 @@ compatible = "qcom,pm8998-gpio"; reg = <0xc000 0x1a00>; gpio-controller; - gpio-count = <21>; + gpio-ranges = <&pm8998_gpios 0 0 26>; #gpio-cells = <2>; - gpio-bank-name = "pm8998."; }; }; From patchwork Tue Dec 5 13:46:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750384 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1678954wrc; Tue, 5 Dec 2023 05:48:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGfTzrOfXBlH8H9HtlZwmvo6Kmy50Z686yZm1QLjmNEMr/sRy1MQv9yIafmMGN1nhgUl0cp X-Received: by 2002:a5d:6085:0:b0:333:2fd2:2ef2 with SMTP id w5-20020a5d6085000000b003332fd22ef2mr3784703wrt.107.1701784102148; Tue, 05 Dec 2023 05:48:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784102; cv=none; d=google.com; s=arc-20160816; b=C6J8hyBBwMZC0/d83RVkfXUPahVfRdXwaTzkt3ujMC0y8TK2u5d4PzTWZAgDUiPP5J 1y30fgrVw7iFpti6DhXEQTwhiqimidnoM6wr6AJxKDkLoe64GJ1IC46PCUhkGPYdtqZm Kqefle2Z1q4pdBymEi4pfjNsNOiltRaO3DSPC2Yei9OBTMpICT4R9EPfwQrGgOwYYuA/ CjPBjjDHH7BGSI18RSJGReqoumerCZsSenHZM5YJKBM90uq9c+kxOCJx39Erd+FStksg tWroINDTGueCrXK96E7v+VTlIk9lBHC7IsezZ9iKtOMm5V5AKZOwRVRUS75uMaXIOkg+ Wfjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=pNzDeS4jLfZs8jyIubeuNekC0RpWcM0qlQMwk11zzE4=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=CSl5ADMo2jM1Art5t3wxRVY7i3T5EIx/xmsJY1JbZvtQpXqKfNJUgfb2DpMeIxWisM 8ebZByJOhF2K4rjSZ+wYebktxTyZuodhUrCb1W5W5xb7sNHow0WICez2Uf7YQoGZYev8 Bw7egcRlGcbYnm2lqoSqwuVLscT8Oq6mQHso+PNTGpE1nTAchMWsKHoLInybtIulgXWK S7J4+n7tsKMMUEWK5jj0ttA+vGRn2Y7HrAbnpDK/w3QhJXREPp0+xfqDioSN9DsePYhq ehKjJ5kURCWBpM7A/kRTosJI/2l1A+ECoLPF1KETrHgT1DoKaykPW5i5ksEoRjIeUyJn vEbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GZEuZ+Gx; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id o8-20020a5d47c8000000b00333419d76bbsi2975523wrc.445.2023.12.05.05.48.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:48:22 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GZEuZ+Gx; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 38C04878CF; Tue, 5 Dec 2023 14:47:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="GZEuZ+Gx"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D512E87626; Tue, 5 Dec 2023 14:47:08 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E5E188756E for ; Tue, 5 Dec 2023 14:47:06 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2c9f9db9567so30390211fa.3 for ; Tue, 05 Dec 2023 05:47:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784026; x=1702388826; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=pNzDeS4jLfZs8jyIubeuNekC0RpWcM0qlQMwk11zzE4=; b=GZEuZ+GxyRYH83z3TFcLZ6gHwioOxet3O+ZZzRAYkLVy1tZ1XllQzNKyFU4d5/5RBt 6VNYaZP2N/PXya7y7mPJqO1KqGG9c1pvZO3ueA7IRpePDcTsxV4Z5HbpDwq9s/+eX6An 3S/PtwB3NFi2AIRbsmac9kZiKZqlN+zh6ZL7tINRV7DGnYLe0RpQ9eUCQjfduNcRTNZX NsA7BR4L9Qe2EAsnFRxpWS54YLsbljYhSRLNkPE51zuRtNUIEHO/Zwg12mPlr1VfQtvQ UVvHQsKTf8fO0fPxYJOA+g3zELc2uK2QGHmDwd0QmRzEDxeiZaA07ZQUuZ8WxN67HBxX +XoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784026; x=1702388826; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pNzDeS4jLfZs8jyIubeuNekC0RpWcM0qlQMwk11zzE4=; b=X2WG05HXdOHn0XPIVoSc8CExlvSWYdQouaebE2e04IIyqVx3oTwSysxc4IuT36p6tR UMDU2wPxngPNY0LcymoAMQr1DU4Cy5Qg+lkvYFkSTHwDm1SNSyxFUo33cBRT3qTWxn4j 4KCwkE6Ku1cR/+4+wwSp/P7dgNplYIkZFQPTiEUsRQTd5zbMwruI8V/uPczMl7LL6CFS l5esch+QnpWEEGku0v++iivgG1EHqOxDRrm2P3oM7k3O/z96o/CMppvt45IhlM7jr8Kv iU79rNJ2giTUmJ1FlUXLZAjd46qI44naPc6mPs0YEcG5wba02qdpWZ+1QAkAGnPekYGZ cJeg== X-Gm-Message-State: AOJu0YxJXY4z+NKc/+iYuBKtgDuudDw7WGVBhK7FXXDxMBTJ56a8wfIL H5l1BeNv1gwlTW2TG7obkNkKsQ== X-Received: by 2002:a2e:9b97:0:b0:2c9:eb97:b76c with SMTP id z23-20020a2e9b97000000b002c9eb97b76cmr2872717lji.88.1701784026358; Tue, 05 Dec 2023 05:47:06 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.47.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:05 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:52 +0000 Subject: [PATCH v6 7/9] gpio: qcom_pmic: drop gpio-count property MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-7-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=2548; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=KIbcCNwhjqBjvG3k7+wa2fqlrubCe/j4Q+RD3LW3KPE=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXN1S22fbi3u3uHTV7Ttl5nao7LOnL1FIRtW7/z59 +4qXRvLjlIWBkEOBlkxRRbxE8ssm9ZettfYvuACzBxWJpAhDFycAjCRAGGG/0Ev1378E2V902m7 Jle3xP8W24tdh/hEG9c8OdOyTrqoPZLhn5Kp3cUTXguqVc6sM7AQ0GPXDHbt/Fnx5bRYWw3Tzwf yzQA= X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean This property is not part of the dt bindings and all boards use the new gpio-ranges property instead. Drop support for this. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly --- doc/device-tree-bindings/gpio/pm8916_gpio.txt | 48 --------------------------- drivers/gpio/qcom_pmic_gpio.c | 13 +++----- 2 files changed, 5 insertions(+), 56 deletions(-) diff --git a/doc/device-tree-bindings/gpio/pm8916_gpio.txt b/doc/device-tree-bindings/gpio/pm8916_gpio.txt deleted file mode 100644 index 58185b833524..000000000000 --- a/doc/device-tree-bindings/gpio/pm8916_gpio.txt +++ /dev/null @@ -1,48 +0,0 @@ -Driver for part of pm8916 PMIC - gpio and power/reset keys - -This device should be child of SPMI pmic. - -1) GPIO driver - -Required properties: -- compatible: "qcom,pm8916-gpio" -- reg: peripheral ID, size of register block -- gpio-controller -- gpio-count: number of GPIOs -- #gpio-cells: 2 - -Optional properties: -- gpio-bank-name: name of bank (as default "pm8916" is used) - -Example: - -pmic_gpios: gpios@c000 { - compatible = "qcom,pm8916-gpio"; - reg = <0xc000 0x400>; - gpio-controller; - gpio-count = <4>; - #gpio-cells = <2>; - gpio-bank-name="pmic"; -}; - - -2) Power/Reset key driver - -Required properties: -- compatible: "qcom,pm8916-pwrkey" -- reg: peripheral ID, size of register block -- gpio-controller -- #gpio-cells: 2 - -Optional properties: -- gpio-bank-name: name of bank (as default "pm8916_key" is used) - - -Example: - -pmic_pon: pon@800 { - compatible = "qcom,pm8916-pwrkey"; - reg = <0x800 0x96>; - #gpio-cells = <2>; - gpio-controller; -}; diff --git a/drivers/gpio/qcom_pmic_gpio.c b/drivers/gpio/qcom_pmic_gpio.c index 5221bd27825e..6167c8411678 100644 --- a/drivers/gpio/qcom_pmic_gpio.c +++ b/drivers/gpio/qcom_pmic_gpio.c @@ -268,14 +268,11 @@ static int qcom_gpio_of_to_plat(struct udevice *dev) struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev); int ret; - uc_priv->gpio_count = dev_read_u32_default(dev, "gpio-count", 0); - if (!uc_priv->gpio_count) { - ret = qcom_gpio_of_parse_ranges(dev); - if (ret > 0) - uc_priv->gpio_count = ret; - else - return ret; - } + ret = qcom_gpio_of_parse_ranges(dev); + if (ret > 0) + uc_priv->gpio_count = ret; + else + return ret; uc_priv->bank_name = "pmic"; From patchwork Tue Dec 5 13:46:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750385 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1679015wrc; Tue, 5 Dec 2023 05:48:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IH1gWwP2B53ISJLM4i7qWdVP8Ss0UK6d6039xqQjQERcw/L0i5rqHp+IwFgIov2TtX/NACN X-Received: by 2002:a5d:4c8c:0:b0:333:3c19:5c1b with SMTP id z12-20020a5d4c8c000000b003333c195c1bmr2491011wrs.58.1701784111782; Tue, 05 Dec 2023 05:48:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784111; cv=none; d=google.com; s=arc-20160816; b=NX3RbKdsHGHuetVNONmRPQrymReRCVLJVh+Iv/Uq6UPA9mTll3//E3oOIEu1hNwtgy pL22i8Ip8av5mQoZ0kgkS6qGkpOBiB719nsF6wUhF3i8BrWV9wxGUFlGwOUEWaPsudh5 Kg82btPlUzmixAGBiJMC66OZJegEb8rq/YOjxqgkgKZlLvIsvg6glDH8VY0Qk3TUpwUG D83qp0DK1KRBoI6UnQiZkoe5dAb+YfVfQ6Sgrbr9Z4/NqHGU7ld/dzjCQeXm84qsBEl2 eeAZaZFg/TrRA/ZRQXWCyN11g5oYlK/lUdvNio1QUIu/jZbxcOtLLZ3Oszxmv8DwLLlK gTgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=oSVKwPCpUfU+pNF0Xc6YbmXdtGmRtY0Wqn9ElJEQEfU=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=uEZoh1OiHQqbdOO5g1ENRhB6gHnCXdzkdz0ol1cARCk/1cPg7pDYwX77+Xb9ktNVyi i+1uljgQICsVyCPNfZro7wPnf9HYldVKqitE8mUlFm1FdmalNW4ZwH00Jfwqa1lLkwMW tqbCWhnEbnpHcw7sF6wUWy+yoLY5M5hPaSt7B6s1wISii4x6y14MTpwYJmkwx2/cjlID JP0iJFC1AhkY+kX7CdHuw40iTMATvfth46QIa7zwIYav3NX81rF4kS4zhgowznHgqZUc /0BNa8Uu924nkf8d8pWAUoTJ1NLdgCMfaQUTxbTcYwnUFq6IVZ9/Kc4nuwCCmi2szWXK foag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Dsbf5Cdk; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id z6-20020adfec86000000b00333394993a8si3763977wrn.761.2023.12.05.05.48.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:48:31 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Dsbf5Cdk; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9C3E88782F; Tue, 5 Dec 2023 14:47:11 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Dsbf5Cdk"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5B7B9878D1; Tue, 5 Dec 2023 14:47:10 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 465A6870F4 for ; Tue, 5 Dec 2023 14:47:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2c9ea37ac87so48259551fa.3 for ; Tue, 05 Dec 2023 05:47:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784027; x=1702388827; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=oSVKwPCpUfU+pNF0Xc6YbmXdtGmRtY0Wqn9ElJEQEfU=; b=Dsbf5Cdk1Ht23NV9ap2ZHaS/4Fmr+DLbGEdp+CKVH3tKDFJN0XmE/L5h8E5xuQ7szg TdQjWMs5xBCq6wQMTffNsud2gDth1w26M7PXZDkjMXIiE4KLn7I9KxONJEauoQCiQGiw Ipm43SaDE+jl3MMA0QnfO7I7WldJdQDoboQ++vKxrhA2n3kosrrYRrRJbffUplUfemZ3 cSzu8SomOfC4UwF6sGZ+19uVxLXfDtI2OUUdfGWp0MfOJKwCwOVXZB6yC+uO4rcNfq1J YRj1aMzN6X0sR7ETwVNOeNJfJD6gLdOamugUXn1UFQNwsft1F5J7P3GEpu3BcSkvwaGV jdVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784027; x=1702388827; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oSVKwPCpUfU+pNF0Xc6YbmXdtGmRtY0Wqn9ElJEQEfU=; b=b27cwRXu3LmEqAucIv2LBNyU9jGLN1XvK4vjdVkJDoZ1PxJJ2gt796Djg/53o2UZi1 0+vZqyZMENLAbOawvQvnAIvzQYwJyROY7m4/OqNXnzAtbl3oFyTfdhatc0uLSFfLHn5x 1Aq4sVfOzsO7EWjPYnzEpSVVAP6LlNZ3j/LvDS5kdb2pjh8DxJPuqOIFh21OODWSwqGQ Jrp4QTyQbapdt/PZVm1cbv+KtkJuQKSod7Jt/gOolH070mcqYxqT1gEdBRWN93BgQGIN 05yVjPs/UaQ+Jwp5Cjq1TQSpD+cYWR6+e1Dq6yWxDAGw/lOUgeMuVyUGMSo5tLmdombx 2GSw== X-Gm-Message-State: AOJu0YyggMTAfkpfORt55ULfeLEyudieJTlDxc9Nb21qUYImqJPJnTmQ RXZvS5KwdoTuM1vkPRmZ7+Zpdw== X-Received: by 2002:a2e:9d0c:0:b0:2ca:2bd:3cf1 with SMTP id t12-20020a2e9d0c000000b002ca02bd3cf1mr1587962lji.8.1701784027649; Tue, 05 Dec 2023 05:47:07 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.47.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:07 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:53 +0000 Subject: [PATCH v6 8/9] spmi: msm: fix register range names MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-8-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=6866; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=T9w4U36ymjfw6HJqQmOKxMGleoY2Y7gEQwltDdAA430=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXMzX+9nDz5T+3y16oWgu+Zn/Y3y/+bsFkq7tUHAL XIGX+PSjlIWBkEOBlkxRRbxE8ssm9ZettfYvuACzBxWJpAhDFycAjCRn1sYGSap1siEv2yezn/k 2NF7m/Ytve1mN++4j4zPs0mXhEqbpWIZ/uc/fP980ZV/9zabJXUeqj5z/AjrQd4Di3mqGBekFJ2 LN7IEAA== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The core and chnl register ranges were swapped on SDM845. Fix it, and fetch the register ranges by name instead of by index. Drop the cosmetic "version" variable and clean up the debug logging. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly --- arch/arm/dts/qcs404-evb.dts | 7 +++-- arch/arm/dts/sdm845.dtsi | 2 +- doc/device-tree-bindings/spmi/spmi-msm.txt | 26 ----------------- drivers/spmi/spmi-msm.c | 46 ++++++++++++------------------ 4 files changed, 23 insertions(+), 58 deletions(-) diff --git a/arch/arm/dts/qcs404-evb.dts b/arch/arm/dts/qcs404-evb.dts index bd2e303e10f4..07bf7dd0b32f 100644 --- a/arch/arm/dts/qcs404-evb.dts +++ b/arch/arm/dts/qcs404-evb.dts @@ -362,9 +362,10 @@ spmi@200f000 { compatible = "qcom,spmi-pmic-arb"; - reg = <0x200f000 0x1000 - 0x2400000 0x400000 - 0x2c00000 0x400000>; + reg = <0x200f000 0x001000>, + <0x2400000 0x800000>, + <0x2c00000 0x800000>; + reg-names = "core", "chnls", "obsrvr"; #address-cells = <0x1>; #size-cells = <0x1>; diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi index a26e9f411ee0..96c9749a52c0 100644 --- a/arch/arm/dts/sdm845.dtsi +++ b/arch/arm/dts/sdm845.dtsi @@ -63,7 +63,7 @@ reg = <0xc440000 0x1100>, <0xc600000 0x2000000>, <0xe600000 0x100000>; - reg-names = "cnfg", "core", "obsrvr"; + reg-names = "core", "chnls", "obsrvr"; #address-cells = <0x1>; #size-cells = <0x1>; diff --git a/doc/device-tree-bindings/spmi/spmi-msm.txt b/doc/device-tree-bindings/spmi/spmi-msm.txt deleted file mode 100644 index ae47673b768b..000000000000 --- a/doc/device-tree-bindings/spmi/spmi-msm.txt +++ /dev/null @@ -1,26 +0,0 @@ -Qualcomm SPMI arbiter/bus driver - -This is bus driver for Qualcomm chips that use SPMI to communicate with PMICs. - -Required properties: -- compatible: "qcom,spmi-pmic-arb" -- reg: Register block adresses and sizes for various parts of device: - 1) PMIC arbiter channel mapping base (PMIC_ARB_REG_CHNLn) - 2) SPMI write command (master) registers (PMIC_ARB_CORE_SW_DEC_CHANNELS) - 3) SPMI read command (observer) registers (PMIC_ARB_CORE_REGISTERS_OBS) - -Optional properties (if not set by parent): -- #address-cells: 0x1 - childs slave ID address -- #size-cells: 0x1 - -All PMICs should be placed as a child nodes of bus arbiter. -Automatic detection of childs is currently not supported. - -Example: - -spmi@200f000 { - compatible = "qcom,spmi-pmic-arb"; - reg = <0x200f800 0x200 0x2400000 0x400000 0x2c00000 0x400000>; - #address-cells = <0x1>; - #size-cells = <0x1>; -}; diff --git a/drivers/spmi/spmi-msm.c b/drivers/spmi/spmi-msm.c index 27a035c0a595..5fe8a70abca7 100644 --- a/drivers/spmi/spmi-msm.c +++ b/drivers/spmi/spmi-msm.c @@ -70,7 +70,7 @@ enum pmic_arb_channel { struct msm_spmi_priv { phys_addr_t arb_chnl; /* ARB channel mapping base */ - phys_addr_t spmi_core; /* SPMI core */ + phys_addr_t spmi_chnls; /* SPMI channels */ phys_addr_t spmi_obs; /* SPMI observer */ /* SPMI channel map */ uint8_t channel_map[SPMI_MAX_SLAVES][SPMI_MAX_PERIPH]; @@ -95,10 +95,10 @@ static int msm_spmi_write(struct udevice *dev, int usid, int pid, int off, /* Disable IRQ mode for the current channel*/ writel(0x0, - priv->spmi_core + SPMI_CH_OFFSET(channel) + SPMI_REG_CONFIG); + priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_CONFIG); /* Write single byte */ - writel(val, priv->spmi_core + SPMI_CH_OFFSET(channel) + SPMI_REG_WDATA); + writel(val, priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_WDATA); /* Prepare write command */ reg |= SPMI_CMD_EXT_REG_WRITE_LONG << SPMI_CMD_OPCODE_SHIFT; @@ -113,12 +113,12 @@ static int msm_spmi_write(struct udevice *dev, int usid, int pid, int off, ch_offset = SPMI_CH_OFFSET(channel); /* Send write command */ - writel(reg, priv->spmi_core + SPMI_CH_OFFSET(channel) + SPMI_REG_CMD0); + writel(reg, priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_CMD0); /* Wait till CMD DONE status */ reg = 0; while (!reg) { - reg = readl(priv->spmi_core + SPMI_CH_OFFSET(channel) + + reg = readl(priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_STATUS); } @@ -186,47 +186,37 @@ static struct dm_spmi_ops msm_spmi_ops = { static int msm_spmi_probe(struct udevice *dev) { struct msm_spmi_priv *priv = dev_get_priv(dev); - phys_addr_t config_addr; + phys_addr_t core_addr; u32 hw_ver; - u32 version; int i; - int err; - config_addr = dev_read_addr_index(dev, 0); - priv->spmi_core = dev_read_addr_index(dev, 1); - priv->spmi_obs = dev_read_addr_index(dev, 2); + core_addr = dev_read_addr_name(dev, "core"); + priv->spmi_chnls = dev_read_addr_name(dev, "chnls"); + priv->spmi_obs = dev_read_addr_name(dev, "obsrvr"); - hw_ver = readl(config_addr + PMIC_ARB_VERSION); + hw_ver = readl(core_addr + PMIC_ARB_VERSION); if (hw_ver < PMIC_ARB_VERSION_V3_MIN) { priv->arb_ver = V2; - version = 2; - priv->arb_chnl = config_addr + APID_MAP_OFFSET_V1_V2_V3; + priv->arb_chnl = core_addr + APID_MAP_OFFSET_V1_V2_V3; } else if (hw_ver < PMIC_ARB_VERSION_V5_MIN) { priv->arb_ver = V3; - version = 3; - priv->arb_chnl = config_addr + APID_MAP_OFFSET_V1_V2_V3; + priv->arb_chnl = core_addr + APID_MAP_OFFSET_V1_V2_V3; } else { priv->arb_ver = V5; - version = 5; - priv->arb_chnl = config_addr + APID_MAP_OFFSET_V5; - - if (err) { - dev_err(dev, "could not read APID->PPID mapping table, rc= %d\n", err); - return -1; - } + priv->arb_chnl = core_addr + APID_MAP_OFFSET_V5; } - dev_dbg(dev, "PMIC Arb Version-%d (0x%x)\n", version, hw_ver); + dev_dbg(dev, "PMIC Arb Version-%d (%#x)\n", hw_ver >> 28, hw_ver); if (priv->arb_chnl == FDT_ADDR_T_NONE || - priv->spmi_core == FDT_ADDR_T_NONE || + priv->spmi_chnls == FDT_ADDR_T_NONE || priv->spmi_obs == FDT_ADDR_T_NONE) return -EINVAL; - dev_dbg(dev, "priv->arb_chnl address (%llu)\n", priv->arb_chnl); - dev_dbg(dev, "priv->spmi_core address (%llu)\n", priv->spmi_core); - dev_dbg(dev, "priv->spmi_obs address (%llu)\n", priv->spmi_obs); + dev_dbg(dev, "priv->arb_chnl address (%#08llx)\n", priv->arb_chnl); + dev_dbg(dev, "priv->spmi_chnls address (%#08llx)\n", priv->spmi_chnls); + dev_dbg(dev, "priv->spmi_obs address (%#08llx)\n", priv->spmi_obs); /* Scan peripherals connected to each SPMI channel */ for (i = 0; i < SPMI_MAX_PERIPH; i++) { uint32_t periph = readl(priv->arb_chnl + ARB_CHANNEL_OFFSET(i)); From patchwork Tue Dec 5 13:46:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 750386 Delivered-To: patch@linaro.org Received: by 2002:adf:9b9d:0:b0:333:3a04:f257 with SMTP id d29csp1679089wrc; Tue, 5 Dec 2023 05:48:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IFik6nSrGxwr2StFjfqzH3MzlpTtjRWq8o1bsLZT0F08Cj3Tmzthl1RuBfWomCHCy9tExY8 X-Received: by 2002:a5d:6dae:0:b0:333:4acc:2fdc with SMTP id u14-20020a5d6dae000000b003334acc2fdcmr1574267wrs.58.1701784122416; Tue, 05 Dec 2023 05:48:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701784122; cv=none; d=google.com; s=arc-20160816; b=ZYQq9nvzblaAup2DfBtgbCYOu2DoDwkbcNYx+pPjGW4KMdaLPiJGjgSySQGXg27DYz I9aFzDd6yHJ6vFp2WoWzpS0M7Q/2yu+QjEZwI835dvLPpnTaF+vn6+4WDaK71biMfp/s s/K0rPBShU7MbiZ07tsqPNZOEO8YQK4jzJbIO5KoizuRLjP3o6KsuIGTlYOrYZ8d5137 f4f3s6WmXpD8nI/UxkXJmYeef0gFgnM/hYL/YT9CBZRL+dtUY1U7h5u40xUtI4+d/W85 xQtN4iYNrrUoR6wVh+rLoER3CqfXzRFpTUaQqHMLG72mZNaSlCOqZDwGS1QHdmNuMiWy a5Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=0IM0fW9uXqSMV1BCpMmBKS79BQtYouW0qlOzkB5YEhQ=; fh=57wjcTC2B872pbvvKlxFgwzI1s9QKuSBoEg/SeZNaxI=; b=Qr259vcMB6P1zYRnxE74MvZ60KLD0RwnG1xk499bLXxaj1FkkLrD5MXxS8ge9gSeUg JdL0RCo0Mo67DQn8CnYc/4sCLSZ7STCPlEKcYIBgoFfEKZO+UmW17JFBnxETOi/9sMR6 lnFiyMdLisXreIXm5fNQv8s7iGQPMucRkg+Qly1AAzAUx8B6ADUBkmhjfqQlY2jAWDu7 DQ38oWKFeIMPvQSvaKHWI9/GQsdLVjaSTXfO1b5thstb4Ja/lvUIBECsuA9cP6PerF2W 3kWRbDwbjEWZQXk9tvc2zcp+K9Qv8sZOj6lyt0YxuArZLpuEab3RoEFnScXeD1rbyc2d DfBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OncJr0aO; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id x10-20020a5d6b4a000000b0033169b70911si5867688wrw.179.2023.12.05.05.48.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:48:42 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OncJr0aO; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1F67F878D1; Tue, 5 Dec 2023 14:47:13 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="OncJr0aO"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A8857878C5; Tue, 5 Dec 2023 14:47:11 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9D5A38756E for ; Tue, 5 Dec 2023 14:47:09 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x235.google.com with SMTP id 38308e7fff4ca-2c9ef682264so41355901fa.3 for ; Tue, 05 Dec 2023 05:47:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1701784029; x=1702388829; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0IM0fW9uXqSMV1BCpMmBKS79BQtYouW0qlOzkB5YEhQ=; b=OncJr0aOlFpodjKChdZz7rnZSPatgueFQYKcbn3mr3U9VtGc+vbZNa/TiBkmVR3ma8 l6ENix57aYUC4EwabAK3kXqbZqQrkQrkPiB4ut+8mtQfWIv+oJOHIZ8OS9BS+Vg/dScH HIWEP7iOtoRiCx96bShIPWHtkC6ZVFqLc4ewAU5lOdFqmNw/pw3weEiaxIyyphblK/II I33I/e/D82jP8NzRqs/zaYi1j2r9yIXNvdnL4RJuwYXIoPAGMI1HwqZac9+BIfklxcaS k8hRrBBypHsbuHk7/jf2y2YswmK+/4pzEJYNYwZLEGm8zlCEDko1eid7pUTUNyoB/V65 j4Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701784029; x=1702388829; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0IM0fW9uXqSMV1BCpMmBKS79BQtYouW0qlOzkB5YEhQ=; b=jmexKIGk1qvsJ84viDZvSViqR+WP0duM3Bu9gg2Uvt1ecxeWr/+Q7VnlvbZ4GJ7ICS 1XmmmCPF/C1T2Uvyr40W/ZaiqQiwuinUaRzVOyhxZ9000cfF2IQ/W9T/uDV62bo2b8JK VM9S1b5r4SRoDcTxypTILj0S2Gkz/yyFrAePrfFatOZ5qRR8EFMp94QQGuH5urCFxE81 dwGiuKl2i3LmlqN82Ep8DaUx8xH/hZHgPGcVUOOzI7lF0oGisFhDVROezArtqj7t2AE7 6OiXROS9wuueGwcLZqqZ8CAwox+0+t0OcvJPThoT+bo2eKivlMUcCs01gbRyp5fFrJHO fAiA== X-Gm-Message-State: AOJu0Yy8GldFGYnPSADP+CxkkhKrqE7t0M12Bt9SRr9n5uNxHROQTzb9 e170flncv+TOt0OdjIlu4c2TtQ== X-Received: by 2002:a2e:94c1:0:b0:2ca:733:2edd with SMTP id r1-20020a2e94c1000000b002ca07332eddmr1277090ljh.29.1701784029037; Tue, 05 Dec 2023 05:47:09 -0800 (PST) Received: from lion.localdomain ([79.79.179.141]) by smtp.gmail.com with ESMTPSA id d10-20020a2e928a000000b002ca0e0c837asm369688ljh.100.2023.12.05.05.47.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 05:47:08 -0800 (PST) From: Caleb Connolly Date: Tue, 05 Dec 2023 13:46:54 +0000 Subject: [PATCH v6 9/9] pmic: qcom: dont use dev_read_addr to get USID MIME-Version: 1.0 Message-Id: <20231205-b4-qcom-dt-compat-v6-9-61d104a8f920@linaro.org> References: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> In-Reply-To: <20231205-b4-qcom-dt-compat-v6-0-61d104a8f920@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Stephan Gerhold , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=5484; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=9ytif4x9U94M7vgDvzmautDnQYaOj5aF7f1BUfpALPg=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhtR8zXOv9nGVx1+7rX7x8I/2rMx5l6xPB6Y9uWw17Tt3V HPf9N8RHaUsDIIcDLJiiiziJ5ZZNq29bK+xfcEFmDmsTCBDGLg4BWAiB9Yx/I/ViPqldDJxTruR pTZLZu+9ayEFvN8KjHjWsWXv2HnXRIeRYcH/qX6NrZPz513KeH7n943vtWxWmzZ27uh2UxY+wf9 wMSsA X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Linux DTs stuff a value indicating if the USID is a USID or a GSID in the reg property, the Linux SPMI driver then reads the two address cells separately. U-boot's dev_read_addr() doesn't know how to handle this, so use ofnode_read_u32_index() to get just the USID. The Qcom pmic driver doesn't have support for GSID handling, so just ignore the second value for now. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg Signed-off-by: Caleb Connolly --- doc/device-tree-bindings/pmic/qcom,spmi-pmic.txt | 94 ------------------------ drivers/power/pmic/pmic_qcom.c | 13 +++- 2 files changed, 10 insertions(+), 97 deletions(-) diff --git a/doc/device-tree-bindings/pmic/qcom,spmi-pmic.txt b/doc/device-tree-bindings/pmic/qcom,spmi-pmic.txt deleted file mode 100644 index eb78e3ae7703..000000000000 --- a/doc/device-tree-bindings/pmic/qcom,spmi-pmic.txt +++ /dev/null @@ -1,94 +0,0 @@ - Qualcomm SPMI PMICs multi-function device bindings - -The Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084 -PMICs. These PMICs use a QPNP scheme through SPMI interface. -QPNP is effectively a partitioning scheme for dividing the SPMI extended -register space up into logical pieces, and set of fixed register -locations/definitions within these regions, with some of these regions -specifically used for interrupt handling. - -The QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are -interfaced to the chip via the SPMI (System Power Management Interface) bus. -Support for multiple independent functions are implemented by splitting the -16-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes -each. A function can consume one or more of these fixed-size register regions. - -Required properties: -- compatible: Should contain one of: - "qcom,pm660", - "qcom,pm660l", - "qcom,pm7325", - "qcom,pm8004", - "qcom,pm8005", - "qcom,pm8019", - "qcom,pm8028", - "qcom,pm8110", - "qcom,pm8150", - "qcom,pm8150b", - "qcom,pm8150c", - "qcom,pm8150l", - "qcom,pm8226", - "qcom,pm8350c", - "qcom,pm8841", - "qcom,pm8901", - "qcom,pm8909", - "qcom,pm8916", - "qcom,pm8941", - "qcom,pm8950", - "qcom,pm8953", - "qcom,pm8994", - "qcom,pm8998", - "qcom,pma8084", - "qcom,pmd9635", - "qcom,pmi8950", - "qcom,pmi8962", - "qcom,pmi8994", - "qcom,pmi8998", - "qcom,pmk8002", - "qcom,pmk8350", - "qcom,pmr735a", - "qcom,smb2351", - or generalized "qcom,spmi-pmic". -- reg: Specifies the SPMI USID slave address for this device. - For more information see: - Documentation/devicetree/bindings/spmi/spmi.yaml - -Required properties for peripheral child nodes: -- compatible: Should contain "qcom,xxx", where "xxx" is a peripheral name. - -Optional properties for peripheral child nodes: -- interrupts: Interrupts are specified as a 4-tuple. For more information - see: - Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml -- interrupt-names: Corresponding interrupt name to the interrupts property - -Each child node of SPMI slave id represents a function of the PMIC. In the -example below the rtc device node represents a peripheral of pm8941 -SID = 0. The regulator device node represents a peripheral of pm8941 SID = 1. - -Example: - - spmi { - compatible = "qcom,spmi-pmic-arb"; - - pm8941@0 { - compatible = "qcom,pm8941", "qcom,spmi-pmic"; - reg = <0x0 SPMI_USID>; - - rtc { - compatible = "qcom,rtc"; - interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; - interrupt-names = "alarm"; - }; - }; - - pm8941@1 { - compatible = "qcom,pm8941", "qcom,spmi-pmic"; - reg = <0x1 SPMI_USID>; - - regulator { - compatible = "qcom,regulator"; - regulator-name = "8941_boost"; - }; - }; - }; diff --git a/drivers/power/pmic/pmic_qcom.c b/drivers/power/pmic/pmic_qcom.c index ad8daf43f06f..f2ac6494811d 100644 --- a/drivers/power/pmic/pmic_qcom.c +++ b/drivers/power/pmic/pmic_qcom.c @@ -66,12 +66,19 @@ static const struct udevice_id pmic_qcom_ids[] = { static int pmic_qcom_probe(struct udevice *dev) { struct pmic_qcom_priv *priv = dev_get_priv(dev); + int ret; - priv->usid = dev_read_addr(dev); - - if (priv->usid == FDT_ADDR_T_NONE) + /* + * dev_read_addr() can't be used here because the reg property actually + * contains two discrete values, not a single 64-bit address. + * The address is the first value. + */ + ret = ofnode_read_u32_index(dev_ofnode(dev), "reg", 0, &priv->usid); + if (ret < 0) return -EINVAL; + debug("usid: %d\n", priv->usid); + return 0; }