From patchwork Thu Mar 27 12:54:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 876903 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 019E579E1 for ; Thu, 27 Mar 2025 12:54:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743080072; cv=none; b=fAA0SSVWesQ75KEZN/amxPyLvjGYvIEXR3x2SqD5ToLEkP0CnruQFGs7uONFqG6TrS3o8/4fkUQrWpqChqb6hbS9dz8Hz6t3teB2/col63a+MTiZLtFE2QCUKZzI+v7qaeCx8ZEhpIKrrNj/0M00LMrz5LuSckwAd0TQh2MbM2E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743080072; c=relaxed/simple; bh=vc/k4SllpV6EN2gFtfaNPm/iTJqimHgfmutvogY4Y1g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RaAxsczluZ4rruTjAPm2zAhcXx7xyFW0moLe/CIlmEPdNbNMtlS7yv7UotgO9AHOjs23Nu4V6sYPClmfmBQwPVt56tOonD0kSiJvWZmMQHh3qO+tywFSXDO8X2nBx9hmBSYMuCCU2xi9xQyR2BI/tAXn+4y8dPprv9nmBRle46Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=pF2dRpih; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="pF2dRpih" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-5e6c18e2c7dso1728914a12.3 for ; Thu, 27 Mar 2025 05:54:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743080069; x=1743684869; darn=vger.kernel.org; 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=+Z/jDuhjhyd1JpWgs6WS+2WUmAmbmIAQ7hooBmpGTW8=; b=pF2dRpihip1aWR6YJtUyP7LzUnWTLxQwgSL8u9ZR35FUNpQ6Itj061zHO2h9eJuQxJ aUry/ExzTKXzEmMz/wR3i0LWaGVx5OGZmKTqwO7D9q7+QQIsEn82I/tjj5WbMgS3A27R K7O/JgumuoTGx9ZuRIaAVQbVYuohRdB0CojxrQGPvQRxHIKPXz1rxRKmkpF7nC/sR4rE AcvrqMGEGL1sgpXZxPJfYVzvGgAW+yDgTQyFVZj6yVHZKkDaeokpYrT2qAE0Wr465CYb 9+UZ/SQmCiAmRiwJp5bXVgwVbArjv8t+bzD0+kXCo0R8NCJbbJt7W8c3KFJf56nPE+HP kAQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743080069; x=1743684869; 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=+Z/jDuhjhyd1JpWgs6WS+2WUmAmbmIAQ7hooBmpGTW8=; b=AMS856TzuErrH1IkOvqPiC3PPGYo0NMBZNcapkt9OjlAZUMjJRiQ/aSfQqzsUty5yI UBnBdI4xdB/N/slm+qhFeVENVnka84jHSnHamXU1tTkXp2NMHyhmg/JUc7c9sLOAnMaQ G+0BTbCEb8ujpqi+Ky7HuVj4ZX/lwSa0hDzQudVCjEuk1kisfZAac+Y69ERxisQchmvI 5J42whqNslMBObwoycrTLxP0m3H/W31LTYuYcU1TBPKFTaRvwoLBG8VjLY0MUzrgViVd h14DEEaYKgm7RuIOizFl1vqopDQMnREo0/GXgrCrLhJqpaZC1v6/Hs2G77+Qp+oM2b2N AJlg== X-Forwarded-Encrypted: i=1; AJvYcCX/IUeKetaHWfCL/DO8rUSq8M2EKcyAN/nnuhFimCM15nE3hQi6wjUnv2b03SSI1yAVB9xEWLiS3jnzgFkEs5KYjg==@vger.kernel.org X-Gm-Message-State: AOJu0YzbC6gOc+vObIl33BNlRk8VNoY3WFfUKWEYLn0FEXExhwG1P4Oi 1RIz44YwmPFy895ytwdTUqAO6p8fcTnV9JT/EnRwKTijnY4au6kv8qxJyp6Fb1Q= X-Gm-Gg: ASbGncs+kWyLMgWD9Nw4MsE+KOfUa1i8+AfqnFotfugCBqj3BscQtwCQo85HiWGr0jN Hs+q5nCIFVDXQfqYr62vtf83tsm+X0DxM1dpGt8YLUjmUp9nroROxyMBVg9ojy4klo1wXYqVdJ4 6cj9cBPzRHsUilwyMQEyJ+vxwIAzhu3f5nTnMyARjTkFyZkCLhwZioFEqpbQuNya4IG6557TeXQ vVSoPj75gVBiTYL1v44XxNOSlf+Mef6rDTTd4fz0ij6iwP1QtN+Q3eXTw9YxzeLnwPue9lNMyuE U5zyaQX+1kKiUidzO90T3QYp0X7PudNh04F0Wv29ggnMzJFZG7nqmdnFa3m4zk3fAYcdXfMrUeP swpG+41l7ozxIQ3x1M8VBWyKYunon X-Google-Smtp-Source: AGHT+IEXg6o4yUFie+ryQdY3mXcS5e/X89zhbbzwruTHODYlp1URcLQKOWy0BfUyFCsrxe3Lm/Qyhg== X-Received: by 2002:a17:907:9446:b0:ab7:9df1:e562 with SMTP id a640c23a62f3a-ac6fb1444e7mr264757666b.48.1743080069187; Thu, 27 Mar 2025 05:54:29 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac3efd47e9dsm1205410266b.167.2025.03.27.05.54.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:54:28 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 27 Mar 2025 12:54:27 +0000 Subject: [PATCH 1/2] firmware: exynos-acpm: populate devices from device tree data Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250327-acpm-children-v1-1-0afe15ee2ff7@linaro.org> References: <20250327-acpm-children-v1-0-0afe15ee2ff7@linaro.org> In-Reply-To: <20250327-acpm-children-v1-0-0afe15ee2ff7@linaro.org> To: Tudor Ambarus , Krzysztof Kozlowski , Alim Akhtar Cc: Peter Griffin , Will McVicker , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 From: Tudor Ambarus ACPM clients (PMIC, clocks, etc.) will be modeled as children of the ACPM interface. Populate children platform_devices from device tree. Signed-off-by: Tudor Ambarus Signed-off-by: André Draszik --- drivers/firmware/samsung/exynos-acpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/samsung/exynos-acpm.c b/drivers/firmware/samsung/exynos-acpm.c index 04c73692383b17ace33e95ce9534101bc68f089e..7873cdda127e4f1b6b2febccd054ba27aeaf9b28 100644 --- a/drivers/firmware/samsung/exynos-acpm.c +++ b/drivers/firmware/samsung/exynos-acpm.c @@ -633,7 +633,7 @@ static int acpm_probe(struct platform_device *pdev) platform_set_drvdata(pdev, acpm); - return 0; + return devm_of_platform_populate(dev); } /** From patchwork Thu Mar 27 12:54:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 876654 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 852AE20E310 for ; Thu, 27 Mar 2025 12:54:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743080073; cv=none; b=HHv7ZDfPbcDCw40H7FC4YP9rtnFB8BXAAQG3FmQEfOvQZSE1vqX2aqO9+JYkG+yaKSOdHpP5Ditm1zeMkQRR9eJZMS5CzoJjEnBIojWgyiSLKj+AKAXQZuW7jwBAyd/yAug97wE4q4zz/+pPqOPVuxXwVvf0XAsFWH5t/quVcXk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743080073; c=relaxed/simple; bh=Q/5u5XDcHF4BLyFYlsm+A+d8gAmcv4kixLqtMrXfRJY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O68U9qkEvQxuw2kt4UPw07WnwW0AR7RQsyNM7mJKfpQHyicgR9ZnA4TcSSkxm32WxGcfUWCijN2Dad/+KVRN4AkHFFZ/InyobNUIFdPZ1MZhm7FvHjoTZneXUy30qsnA5zvIeRNu7fWeCX92NEI4ySusJ3DTfQAeoS9bQaJPHsU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Ip2J9jAs; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Ip2J9jAs" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ac3eb3fdd2eso192028366b.0 for ; Thu, 27 Mar 2025 05:54:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743080070; x=1743684870; darn=vger.kernel.org; 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=2qo/hHt79rE3VZLJ7TZ98QyZq8pgpS3gSu0z1hicTW8=; b=Ip2J9jAsdTkbogEbPhYL3B4pqvlYDxer8hLMnUFidQSEYf5s+VIv0wpR5JCO7+C6QD QS7Veuv99iEmy7p5PYNNnRM4tx0IuwHoAEEKvBeIdlPyqQsZEcoLHzZmjG44c7V/D74h 7rH3yPZB8hG1XZtpIwaOvr2Wp6nT6f2HktqVzImFAHCgEJVL5bEOhLIUKze91I6gByFm g2SGwfowgIBuVFFIrs7NuqgFkkakBTQCCOPAE69OT7J4EeAGQoFGZBVSIU2fjmKZe5qm Kz6UpKK7jccXiPp1cwHu1WvrxrAIQ1MWRgR+VovFrChNOgx5+QpZKoElIA8BWUPzh/8Q P1SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743080070; x=1743684870; 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=2qo/hHt79rE3VZLJ7TZ98QyZq8pgpS3gSu0z1hicTW8=; b=QZTeljG70S8n8KOrJGQom3QIIAECfWNZ/pUFz4Dtie9se59DG9QROAR7LBvj2YjCJH rYoRAsezcgGsZy1/5g/VhGussQ/GHPtJiU7XdOOmOC94rfHkDpJWKb9Bm2sSBNbwAd6+ oleOC4Qw93VKU0IeCUkktq67guBRk1gqDc97/rK4kR9PDaEq183Bmp17U3det5g22WMP Z9QhcIGsgN4oZbEmPs5YLyqTTgLOiXdnI6oBSBi+7Yn+5g9vENkCmJBGLti1vxfMkOE2 i4qKfQ5TydRUaA5SWsco6OP4n0+rwbDOrptXUWHkdZwDB+HkIzRqO0SnB7HI685A19Sk 5C7g== X-Forwarded-Encrypted: i=1; AJvYcCWdnDnuYhDkNRbRcvBHlUwzJ7IkovdFBvRaA7CGAkl59aGVupgu06DzlDzCOCJMLVFw1AnBaRqIVEbB72JefgR/zQ==@vger.kernel.org X-Gm-Message-State: AOJu0YxVjR+bgvU94i05cnFY662R0QoVlHZtJwlNOjsUOjXdpIA2qLAX YIGI4dX/6mlhJj0+UQdDENHCO3f4LL6swkIZDp2BheWMkIu7n/199UiK5d0zRbY= X-Gm-Gg: ASbGncvcMv4VAYtq5tdOeffhDDZdMetDx0SGdHO8QmgdQzDtkOMPds0QOgaYFSQhi16 wUjn7Z6mYebKhTdLt+K0nYhyLJMp6+5oqPauhabf2sxjSWChSYy9lo9UIz0F07AbgG/1hw7QsGh KXWsURMClkO5uqoYyq8l+80WWwhIEdkSz1tzkZ4L1SbjzKdwTZho5ogO7hD8lZ38LTYvS8jejAD KV+0t6eqiEW1sIUCITwX1Zk1h51ETtipWsBCWqByynicdqePGG7sh5oe09Yk+aloVYnR4wDevMS /5svZMMllgUQa5Wi21vUQ0C6m1L+xM+hwTSz4HTkAorvSFsRrCqRxQYIYc7fRqf5z2FNAuadnJq PaQemLyUW6l5SZHCPRzNc0VUlGPEw X-Google-Smtp-Source: AGHT+IG8jc0XBjcqIGUvrW/gcmDgiKrcGkSXoJocsWny8eep3O/qi28YUXPgBj4BwkE0yMd/1FYIUA== X-Received: by 2002:a17:907:2d10:b0:ac2:49de:45c1 with SMTP id a640c23a62f3a-ac6fb173f7amr271477766b.50.1743080069724; Thu, 27 Mar 2025 05:54:29 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac3efd47e9dsm1205410266b.167.2025.03.27.05.54.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Mar 2025 05:54:29 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 27 Mar 2025 12:54:28 +0000 Subject: [PATCH 2/2] firmware: exynos-acpm: introduce devm_acpm_get_by_node() Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250327-acpm-children-v1-2-0afe15ee2ff7@linaro.org> References: <20250327-acpm-children-v1-0-0afe15ee2ff7@linaro.org> In-Reply-To: <20250327-acpm-children-v1-0-0afe15ee2ff7@linaro.org> To: Tudor Ambarus , Krzysztof Kozlowski , Alim Akhtar Cc: Peter Griffin , Will McVicker , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 To allow ACPM clients to simply be children of the ACPM node in DT, they need to be able to get the ACPM handle based on that ACPM node directly. Add an API to allow them to do so, devm_acpm_get_by_node(). At the same time, the previous approach of acquiring the ACPM handle via a DT phandle is now obsolete and we can remove devm_acpm_get_by_phandle(), which was there to facilitate that. There are no existing or anticipated upcoming users of that API, because all clients should be children of the ACPM node going forward. Note that no DTs have been merged that use the old approach, so doing this API change in this driver now will not affect any existing DTs or client drivers. Signed-off-by: André Draszik --- devm_acpm_get_by_node it is being exported to modules in this commit, because there will be an immediate user of this API as of v2 of https://lore.kernel.org/all/20250323-s2mpg10-v1-0-d08943702707@linaro.org/ --- drivers/firmware/samsung/exynos-acpm.c | 23 +++++++++------------- .../linux/firmware/samsung/exynos-acpm-protocol.h | 6 ++++-- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/drivers/firmware/samsung/exynos-acpm.c b/drivers/firmware/samsung/exynos-acpm.c index 7873cdda127e4f1b6b2febccd054ba27aeaf9b28..74f0ed9b5c0f73393932c46ab6341716745a0df4 100644 --- a/drivers/firmware/samsung/exynos-acpm.c +++ b/drivers/firmware/samsung/exynos-acpm.c @@ -667,20 +667,14 @@ static void devm_acpm_release(struct device *dev, void *res) * * Return: pointer to handle on success, ERR_PTR(-errno) otherwise. */ -static const struct acpm_handle *acpm_get_by_phandle(struct device *dev, - const char *property) +static const struct acpm_handle *acpm_get_by_node(struct device *dev, + struct device_node *acpm_np) { struct platform_device *pdev; - struct device_node *acpm_np; struct device_link *link; struct acpm_info *acpm; - acpm_np = of_parse_phandle(dev->of_node, property, 0); - if (!acpm_np) - return ERR_PTR(-ENODEV); - pdev = of_find_device_by_node(acpm_np); - of_node_put(acpm_np); if (!pdev) return ERR_PTR(-EPROBE_DEFER); @@ -709,14 +703,14 @@ static const struct acpm_handle *acpm_get_by_phandle(struct device *dev, } /** - * devm_acpm_get_by_phandle() - managed get handle using phandle. - * @dev: device pointer requesting ACPM handle. - * @property: property name containing phandle on ACPM node. + * devm_acpm_get_by_node() - managed get handle using node pointer. + * @dev: device pointer requesting ACPM handle. + * @np: ACPM device tree node. * * Return: pointer to handle on success, ERR_PTR(-errno) otherwise. */ -const struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev, - const char *property) +const struct acpm_handle *devm_acpm_get_by_node(struct device *dev, + struct device_node *np) { const struct acpm_handle **ptr, *handle; @@ -724,7 +718,7 @@ const struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev, if (!ptr) return ERR_PTR(-ENOMEM); - handle = acpm_get_by_phandle(dev, property); + handle = acpm_get_by_node(dev, np); if (!IS_ERR(handle)) { *ptr = handle; devres_add(dev, ptr); @@ -734,6 +728,7 @@ const struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev, return handle; } +EXPORT_SYMBOL_GPL(devm_acpm_get_by_node); static const struct acpm_match_data acpm_gs101 = { .initdata_base = ACPM_GS101_INITDATA_BASE, diff --git a/include/linux/firmware/samsung/exynos-acpm-protocol.h b/include/linux/firmware/samsung/exynos-acpm-protocol.h index 76255b5d06b1228bb8579d32aaa478036a5c344e..f628bf1862c25fa018a2fe5e7e123bf05c5254b9 100644 --- a/include/linux/firmware/samsung/exynos-acpm-protocol.h +++ b/include/linux/firmware/samsung/exynos-acpm-protocol.h @@ -11,6 +11,7 @@ #include struct acpm_handle; +struct device_node; struct acpm_pmic_ops { int (*read_reg)(const struct acpm_handle *handle, @@ -44,6 +45,7 @@ struct acpm_handle { struct device; -const struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev, - const char *property); +const struct acpm_handle *devm_acpm_get_by_node(struct device *dev, + struct device_node *np); + #endif /* __EXYNOS_ACPM_PROTOCOL_H */