From nobody Tue Sep 29 04:45:11 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 871374322E7 for ; Wed, 12 Aug 2026 11:50:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786535418; cv=none; b=tPT8PfuKUhs72ReWS2B0FrPRE9UkaMM3Jo0eMIFPIuza5GOikpZXoLpNc4O4qC7J72EGxP3u+y0IZ0wCJhPvenUNiuG4uzhGdwbthDSS862oz5uq87HJs8GzaUrRHjhofHXPL2X/GF1Ym7YxE1h0+Z5H4kJGES0HF7rVaFeSMFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786535418; c=relaxed/simple; bh=jys8N0hUwUVeAUkFqIdQ51u8KxBuO4eoF7NBhgLhAOI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eziXysigalREz2K9g8BcbxuRHNjWTcirbfgODKxJBdPpm3CUR5gU79S2gb+OYOoSmYnhizWAwa7ZiO75GwyaLRzRIXNVRiFNGCnn6JRJsM42ry8YIf0xmP1sX6D09zmgNY5HjUEjGwpNhu+QlzzY6deOz1uEaKcibTP1R//K3Ng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=rHGRCHeg; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rHGRCHeg" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-47ddf7b09e5so810826f8f.1 for ; Wed, 12 Aug 2026 04:50:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786535415; x=1787140215; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=h8DDq0fVkxOtQVJNzx35SQxIYx/lIrWJxfyXx2kLXPU=; b=rHGRCHeg5342TzbLOqrVqsmCk6XsJGYN8z781vw1ebWQbG51pNJZh3dU0uulF9M9iu 4rk8w9xfW7ZsZNhqtdgWfqzj7dLl0MgdXBbBlm50PR3EyQiPjrWMLWST94LbaRw1R7j0 xoz+B90B4L/GLcBvf/KzH+XHZG/NN1M2ayUs9HVWUK6FZJqRi3VCZPGfEw96jd4m6f6k ILBpGAhUlOy7ar/Vwy4ZRAUMW6eJtoabXfbX9pRpMKK8qXj+O1sxtstOWBmcxljhfF9H BsdQmoxLm1vnIK1F6Gf1ycYt7Luk8SOOFX92AP75F2NtZj15l5MOluuBht2y3003L1Y9 a9Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786535415; x=1787140215; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=h8DDq0fVkxOtQVJNzx35SQxIYx/lIrWJxfyXx2kLXPU=; b=LAqG87ZRWXKPQRNcAz3TKEmYUnC4UpyLHfzFlvn/EomUm6mJ2gvBigVW6mm8hGsfaL C4RrOoJJT0OVDh1EjDTixFhwPUSzCt5GMge9kDTu2Fg5Dp8N9Zf2NkzOwWQPLeLUoQUy 1dj3iLeD7zvc5+8on6H731jUZ/Vok7XN4Y32iAucCXlIGtYBdEu8z5DgT3uUihbDysRF WiwpR8gvZ7REgWifYHNqpk9rESzEPExOG4fRhK6ikj1zn7ZV/LCa5AkHVn1WwPfnEtLV veSLb4NS/aMAH699+CS4KOUngGSZw9eakEfryxK8S2ItnXCax+OV/PryXOneoIEp20wA ESxA== X-Forwarded-Encrypted: i=1; AHgh+Rpq18Xe1LVQWbSiZejfa9sIQ3Fjswjqx+BX7uYbf1+Q5f06GrrL05Zp7ffNkRy2yFYo0yPPG3uT1aDXRuQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx2xyRohsPnueu+TFNc2yu2UnzCfpGy4O/faoABf7ks2K2g66kJ dpm5wkRry3MsGXAB66VkQ9XEIQzrwme63MKv4TstILNSxml6oTBBX+m0 X-Gm-Gg: AR+sD138X+7Wdz40LcAPhS8b1b883/s77VwKGAi2A/QPF4lbvtL6/ckuVgyP6In/bXq gKi6t2ODgyTIsU/+97OMg+J+BB9VEveGxxnqTmjNHLvCCaNi0MTFBH9FdT/5OYpoWVoEWeDD2uo zwNSRiV5xg9B8v7YLncBr7IFbJ4H3gHW+STAJv7ftEOSoqjpf7/wLqu+VK2no2xGnQFPtHHWu0C mCc8TecuwDiP3WTHLdo5Dfv82soNHNV4+80i+gnCndNskXEzw1MnmX5lwwZMdc4+crOpDug6uYs EdCciBmCEgaUNYGYQCtczqcAHjca3UPkU87AModOZ/4jyb2mZafk8IZCp52tORPK0OeXRsA2Igt IAWcIUeAmnki91DYASImkNelbnlJf4mIRiQjqManeRyW4lEO407Amkbh2M7nV4pXqEAU5f/lbtx 3KJjLPUXg3fJ6jkYwmQ5l3Au+u06hy+Wt+3xXI5zIjwT8PiC6YSdpEHq9L8QB4LSSlMsZ2H9sGj 1akPjq8F30zVQ11L0TdrNZg X-Received: by 2002:a05:6000:41c6:b0:47f:f3f9:ae37 with SMTP id ffacd0b85a97d-48152b20e63mr6663056f8f.7.1786535414517; Wed, 12 Aug 2026 04:50:14 -0700 (PDT) Received: from localhost.localdomain ([2a00:23c4:a702:d301:94c0:1825:d248:50ae]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4815231c308sm6219090f8f.11.2026.08.12.04.50.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 04:50:14 -0700 (PDT) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Laurent Pinchart , Philipp Zabel , Bartosz Golaszewski , Magnus Damm Cc: Biju Das , linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH v3 1/3] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer Date: Wed, 12 Aug 2026 12:50:03 +0100 Message-ID: <20260812115010.108322-2-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260812115010.108322-1-biju.das.jz@bp.renesas.com> References: <20260812115010.108322-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das Some RZ SoCs (e.g. RZ/G3L) have a PWRRDY register that is controlled through a power sequencer rather than directly by the SYSC driver. Add a pwrrdy_pwrseq flag to struct rz_sysc_soc_id_init_data to mark SoCs with this property, and set it for RZ/G3L. When set, rz_sysc_probe() registers a "pwrseq-pwrrdy" auxiliary device so a dedicated driver can handle the PWRRDY sequencing. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven --- v2->v3: * Updated commit description by dropping devm_add_action_or_reset(). * Config now selects AUXILIARY_BUS to avoid compilation issues. * Dropped the cast in devm_auxiliary_device_create(). v1->v2: * Switched to devm_auxiliary_device_create(). * Added regmap parameter to rz_sysc_pwrrdy_pwrseq_init(),so that regmap can be passed as platform data. --- drivers/soc/renesas/Kconfig | 1 + drivers/soc/renesas/r9a08g046-sysc.c | 1 + drivers/soc/renesas/rz-sysc.c | 21 +++++++++++++++++++++ drivers/soc/renesas/rz-sysc.h | 2 ++ 4 files changed, 25 insertions(+) diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig index fdf18ed2dfc2..ab1c25fc2656 100644 --- a/drivers/soc/renesas/Kconfig +++ b/drivers/soc/renesas/Kconfig @@ -485,6 +485,7 @@ config RZN1_IRQMUX config SYSC_RZ bool "System controller for RZ SoCs" if COMPILE_TEST select MFD_SYSCON + select AUXILIARY_BUS =20 config SYSC_R9A08G045 bool "Renesas System controller support for R9A08G045 (RZ/G3S)" if COMPIL= E_TEST diff --git a/drivers/soc/renesas/r9a08g046-sysc.c b/drivers/soc/renesas/r9a= 08g046-sysc.c index 90db9d383539..cd129c727461 100644 --- a/drivers/soc/renesas/r9a08g046-sysc.c +++ b/drivers/soc/renesas/r9a08g046-sysc.c @@ -76,6 +76,7 @@ static const struct rz_sysc_soc_id_init_data rzg3l_sysc_s= oc_id_init_data __initc .devid_offset =3D 0xa04, .revision_mask =3D GENMASK(31, 28), .specific_id_mask =3D GENMASK(27, 0), + .pwrrdy_pwrseq =3D true, }; =20 const struct rz_sysc_init_data rzg3l_sysc_init_data __initconst =3D { diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c index 161e8c38eea6..79c6af934721 100644 --- a/drivers/soc/renesas/rz-sysc.c +++ b/drivers/soc/renesas/rz-sysc.c @@ -5,6 +5,7 @@ * Copyright (C) 2024 Renesas Electronics Corp. */ =20 +#include #include #include #include @@ -84,6 +85,22 @@ static int rz_sysc_soc_init(struct rz_sysc *sysc, const = struct of_device_id *mat return 0; } =20 +static int rz_sysc_pwrrdy_pwrseq_init(struct device *dev, struct regmap *r= egmap, + const struct rz_sysc_init_data *data) +{ + const struct rz_sysc_soc_id_init_data *soc_data =3D data->soc_id_init_dat= a; + struct auxiliary_device *adev; + + if (!soc_data->pwrrdy_pwrseq) + return 0; + + adev =3D devm_auxiliary_device_create(dev, "pwrseq-pwrrdy", regmap); + if (!adev) + return -ENODEV; + + return 0; +} + static const struct of_device_id rz_sysc_match[] =3D { #ifdef CONFIG_SYSC_R9A08G045 { .compatible =3D "renesas,r9a08g045-sysc", .data =3D &rzg3s_sysc_init_da= ta }, @@ -149,6 +166,10 @@ static int rz_sysc_probe(struct platform_device *pdev) if (IS_ERR(regmap)) return PTR_ERR(regmap); =20 + ret =3D rz_sysc_pwrrdy_pwrseq_init(dev, regmap, match->data); + if (ret) + return ret; + return of_syscon_register_regmap(dev->of_node, regmap); } =20 diff --git a/drivers/soc/renesas/rz-sysc.h b/drivers/soc/renesas/rz-sysc.h index 921ee0d26c47..e55f3258d703 100644 --- a/drivers/soc/renesas/rz-sysc.h +++ b/drivers/soc/renesas/rz-sysc.h @@ -20,6 +20,7 @@ * @revision_mask: SYSC SoC ID revision mask * @specific_id_mask: SYSC SoC ID specific ID mask * @print_id: print SoC-specific extended device identification + * @pwrrdy_pwrseq: has pwrrdy register controlled through power sequencer */ struct rz_sysc_soc_id_init_data { const char * const family; @@ -29,6 +30,7 @@ struct rz_sysc_soc_id_init_data { u32 specific_id_mask; void (*print_id)(struct device *dev, void __iomem *sysc_base, struct soc_device_attribute *soc_dev_attr); + bool pwrrdy_pwrseq; }; =20 /** --=20 2.43.0 From nobody Tue Sep 29 04:45:11 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.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 9E8B4434407 for ; Wed, 12 Aug 2026 11:50:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786535421; cv=none; b=Gxfwe2G1jtuiojDbtFNR0TPo/gnaFJ27ghf1DeOzovsVFNVCrjEXl8EKi3PEsIDu7uNdo2MR2F8XLZLJ3NTm6JP0guvTke6vVDT4zGSuN7nrF9nZf1dMRDjv9vBTGLehzlA9KQhhSirZNNVd2JhicncMb/LP4I8Nvib6r3tR43Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786535421; c=relaxed/simple; bh=O3XwjStOaxxkm6S+xsfQIly9TfHEqpXVApRGfmtkooE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PoYS21qH9hQ1L9aInAq1k1Q06y7FAJ4qovooL5fE8YyEkF85orPJkF1V/uqKSCT8XJRoQ47u2NbhmDEV5bqsdPrXe2p/6oDLj4Q+PG46gSWV1QAPVDgrhr2WU7D4/URJcY/HwYsWmVZZZkzgoPe0XstzDHJhcywkvSVPNN4NLwM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YXu+mgbV; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YXu+mgbV" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-49802c418b5so7549435e9.1 for ; Wed, 12 Aug 2026 04:50:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786535416; x=1787140216; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=BkkjL7JZr7VOG0pjsLKe6o2AuEC+HHEDjz0jBPa85Ow=; b=YXu+mgbVPNMjTX98vL19/rgiVQNJI57ztjLb6k1SgEB14ZWwMc9++2ikADZ4NDeAM3 iYOZ1jhmUcLWQypjIviphSzc60KkfdN8YqNJ71YtYxWHbLX6OxDvTTvkyqkFYl9YlrYU sI24hGmfe9Fg67mD1C+WOabkKUqZ1skGAX7IedIaCSdPYHSu/ZjkfWu21mwXDbRZtYyI 14oVV+3CcCPcncyLR/3Lq0p4wFBQnWyVpno6tNlJ4u9soV9L/4578K71fMZVmvt1M/oF gu5IBhmpCfsBIYunoz3avQs5evStKI0va2uIU9p3zCiKq5UI8KSPS6/Prx+gRenYqyfN Ou0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786535416; x=1787140216; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=BkkjL7JZr7VOG0pjsLKe6o2AuEC+HHEDjz0jBPa85Ow=; b=Y6h2l56EFbI5qwP6P0cLw9weXv8duojNERt1BbPQ4RiJUJwa6W+gwSn5u2QglrCTj/ i2eNjNuSR0z1CT+qWBGyH5837CyAa7Nqo2PtxLqmAFWyGKwuO0g0/XdxqnpqzifgPGIT aw8Xxtesg8GU/Q+BRvQpGkJsP4h5DCqmIw3ZtvKxezxZLmEyGR4sZeCTcKm/vuKLM6Wf 9oFnxELtVtP7jSF3QQW9m2ItW0bxvvErWTtA6FNGX7bRustCtuJZOADSi1W79zQsEIOp Abdgz6MjvJxyxU0OySvwJDnRxON8dItKydQBOLuJUlq3zTbVnmHwm4sdY5o3KhIwVlrU aL2g== X-Forwarded-Encrypted: i=1; AHgh+RoE9mqa2vs+z4d0SGwGuGIoHKZYXFqUy/t5S9+kVzF1eyXhgqc0pe7Aw/dYSi5A4PDKKSi+Mp+3/FDaX/0=@vger.kernel.org X-Gm-Message-State: AOJu0YyDGyWuzCH0CJevXbyb9DmbkoMRN+0hv5X1My0MtBinPI9oPiCx fBPPrp1ZX0dirQhU14CSL5XjXFWPHU/nlNUpZP23bVDfjxVzlo915MLk X-Gm-Gg: AR+sD11oBPQJpBigut+RBQRZ0QhRqutJMp/ps5lsO5GMXQnqVmrnphs2C7vPVIyhbSy UYqrQaCv7W0yNyEC5NpkSQL3VXANcM6FtvIYYo0Ck6U0ixPuIUSnOytqHsd1wzwyFl3rnNwB6XT Qs5eTNhao4bU0+SvfnjwbjmbHEUC/Uw66HfV5jjOOe60/6JVQ/cjdkVgPfMbdG+EgV17wSbPd+B 3rtaWUAZgKhREz0Agk/qe2oE0Kl97mvrRgSUR9ZxdJ+rcO070610fXjF0jbZRH2gfQr82kuJPEI TK5Ll3+f/70boBmWmqc38dsvFqEZ4VjYp4Fl3IBlZMFF+rjzwxpHZ9WT1hbDj7EWagkDGLaojAF BleKRu93sgF4WT2BR4AFRv4d6OEKGgNYDS9OI/jPAza1utJxsxkddY3LLToMIT2Nea8V0EUel2j nPaZj1uwsBwqFNrjfXFXRnYcA0HMZ8/ncTlEleFVNOTVdUpH8VTO2+x+XNX9enQn5nSSwOh/42p dglku1H2TUcSQ== X-Received: by 2002:a05:600c:8b52:b0:495:4491:b8c2 with SMTP id 5b1f17b1804b1-4997c0e6f2emr70408475e9.3.1786535415543; Wed, 12 Aug 2026 04:50:15 -0700 (PDT) Received: from localhost.localdomain ([2a00:23c4:a702:d301:94c0:1825:d248:50ae]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4815231c308sm6219090f8f.11.2026.08.12.04.50.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 04:50:15 -0700 (PDT) From: Biju X-Google-Original-From: Biju To: Bartosz Golaszewski , Geert Uytterhoeven , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Laurent Pinchart , Philipp Zabel , Magnus Damm Cc: Biju Das , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das , linux-renesas-soc@vger.kernel.org Subject: [PATCH v3 2/3] power: sequencing: Add Renesas RZ/G3L Power Ready driver Date: Wed, 12 Aug 2026 12:50:04 +0100 Message-ID: <20260812115010.108322-3-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260812115010.108322-1-biju.das.jz@bp.renesas.com> References: <20260812115010.108322-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das Add a power sequencing driver for the Renesas RZ/G3L PWRRDY module, which signals power readiness for various IPs (USB, DSI, CSI etc.) on the SoC. The driver binds as an auxiliary device to the parent SYSC driver, using its regmap to toggle the SYS_PWRRDY_N register bits, and exposes {usb,dsi,csi}-pwrrdy pwrseq targets. Signed-off-by: Biju Das --- v2->v3: * Kconfig selects AUXILIARY_BUS to avoid compilation issues. * Added match for consumer device and added of_device.h header file. * Replaced regmap_update_bits()->regmap_assign_bits() and updated the function parameter of pwrseq_rzg3l_set_pwrrdy(). * Simpilfied probe() return with PTR_ERR_OR_ZERO macro. v1->v2: * Added a comment in pwrseq_rzg3l_pwrrdy_match(). * Dropped dev_get_regmap() from probe as regmap is now part of platform data. * Added a blank line before devm_pwrseq_device_register() in probe. * Dropped the error message devm_pwrseq_device_register() as probe prints failure message. * Dropped local variables dev and regmap from probe(). --- drivers/power/sequencing/Kconfig | 9 ++ drivers/power/sequencing/Makefile | 1 + .../power/sequencing/pwrseq-renesas-pwrrdy.c | 147 ++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 drivers/power/sequencing/pwrseq-renesas-pwrrdy.c diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kc= onfig index 1c5f5820f5b7..286d4e300845 100644 --- a/drivers/power/sequencing/Kconfig +++ b/drivers/power/sequencing/Kconfig @@ -27,6 +27,15 @@ config POWER_SEQUENCING_QCOM_WCN this driver is needed for correct power control or else we'd risk not respecting the required delays between enabling Bluetooth and WLAN. =20 +config POWER_SEQUENCING_RENESAS_PWRRDY + tristate "Renesas Power Ready sequencing driver" + depends on SYSC_RZ || COMPILE_TEST + select AUXILIARY_BUS + help + Say Y here to enable the power sequencing driver for the Renesas + Power Ready signals. This driver handles the power ready signals + required to power on the various IP's on RZ/G3L platform. + config POWER_SEQUENCING_TH1520_GPU tristate "T-HEAD TH1520 GPU power sequencing driver" depends on (ARCH_THEAD && AUXILIARY_BUS) || COMPILE_TEST diff --git a/drivers/power/sequencing/Makefile b/drivers/power/sequencing/M= akefile index 0911d4618298..b33d08d82f43 100644 --- a/drivers/power/sequencing/Makefile +++ b/drivers/power/sequencing/Makefile @@ -4,5 +4,6 @@ obj-$(CONFIG_POWER_SEQUENCING) +=3D pwrseq-core.o pwrseq-core-y :=3D core.o =20 obj-$(CONFIG_POWER_SEQUENCING_QCOM_WCN) +=3D pwrseq-qcom-wcn.o +obj-$(CONFIG_POWER_SEQUENCING_RENESAS_PWRRDY) +=3D pwrseq-renesas-pwrrdy.o obj-$(CONFIG_POWER_SEQUENCING_TH1520_GPU) +=3D pwrseq-thead-gpu.o obj-$(CONFIG_POWER_SEQUENCING_PCIE_M2) +=3D pwrseq-pcie-m2.o diff --git a/drivers/power/sequencing/pwrseq-renesas-pwrrdy.c b/drivers/pow= er/sequencing/pwrseq-renesas-pwrrdy.c new file mode 100644 index 000000000000..8dfc65034a1c --- /dev/null +++ b/drivers/power/sequencing/pwrseq-renesas-pwrrdy.c @@ -0,0 +1,147 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Renesas RZ/G3L Power Ready driver + * + */ + +#include +#include +#include +#include +#include + +#define SYS_PWRRDY_N 0xd70 +#define SYS_PWRRDY_N_USB_MASK BIT(0) +#define SYS_PWRRDY_N_DSI_MASK BIT(1) +#define SYS_PWRRDY_N_CSI_MASK BIT(2) + +static int pwrseq_rzg3l_set_pwrrdy(struct pwrseq_device *pwrseq, u32 mask, + bool val) +{ + struct regmap *regmap =3D pwrseq_device_get_drvdata(pwrseq); + + return regmap_assign_bits(regmap, SYS_PWRRDY_N, mask, val); +} + +static int pwrseq_rzg3l_usb_pwrrdy_enable(struct pwrseq_device *pwrseq) +{ + return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_USB_MASK, 0); +} + +static int pwrseq_rzg3l_usb_pwrrdy_disable(struct pwrseq_device *pwrseq) +{ + return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_USB_MASK, 1); +} + +static const struct pwrseq_unit_data pwrseq_rzg3l_usb_pwrrdy_unit =3D { + .name =3D "usb-pwrrdy-power-sequence", + .enable =3D pwrseq_rzg3l_usb_pwrrdy_enable, + .disable =3D pwrseq_rzg3l_usb_pwrrdy_disable, +}; + +static int pwrseq_rzg3l_dsi_pwrrdy_enable(struct pwrseq_device *pwrseq) +{ + return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_DSI_MASK, 0); +} + +static int pwrseq_rzg3l_dsi_pwrrdy_disable(struct pwrseq_device *pwrseq) +{ + return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_DSI_MASK, 1); +} + +static const struct pwrseq_unit_data pwrseq_rzg3l_dsi_pwrrdy_unit =3D { + .name =3D "dsi-pwrrdy-sequence", + .enable =3D pwrseq_rzg3l_dsi_pwrrdy_enable, + .disable =3D pwrseq_rzg3l_dsi_pwrrdy_disable, +}; + +static int pwrseq_rzg3l_csi_pwrrdy_enable(struct pwrseq_device *pwrseq) +{ + return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_CSI_MASK, 0); +} + +static int pwrseq_rzg3l_csi_pwrrdy_disable(struct pwrseq_device *pwrseq) +{ + return pwrseq_rzg3l_set_pwrrdy(pwrseq, SYS_PWRRDY_N_CSI_MASK, 1); +} + +static const struct pwrseq_unit_data pwrseq_rzg3l_csi_pwrrdy_unit =3D { + .name =3D "csi-pwrrdy-power-sequence", + .enable =3D pwrseq_rzg3l_csi_pwrrdy_enable, + .disable =3D pwrseq_rzg3l_csi_pwrrdy_disable, +}; + +static const struct pwrseq_target_data pwrseq_rzg3l_usb_pwrrdy_target =3D { + .name =3D "usb-pwrrdy", + .unit =3D &pwrseq_rzg3l_usb_pwrrdy_unit, +}; + +static const struct pwrseq_target_data pwrseq_rzg3l_dsi_pwrrdy_target =3D { + .name =3D "dsi-pwrrdy", + .unit =3D &pwrseq_rzg3l_dsi_pwrrdy_unit, +}; + +static const struct pwrseq_target_data pwrseq_rzg3l_csi_pwrrdy_target =3D { + .name =3D "csi-pwrrdy", + .unit =3D &pwrseq_rzg3l_csi_pwrrdy_unit, +}; + +static const struct pwrseq_target_data *pwrseq_rzg3l_pwrrdy_targets[] =3D { + &pwrseq_rzg3l_usb_pwrrdy_target, + &pwrseq_rzg3l_dsi_pwrrdy_target, + &pwrseq_rzg3l_csi_pwrrdy_target, + NULL +}; + +static int pwrseq_rzg3l_pwrrdy_match(struct pwrseq_device *pwrseq, + struct device *dev) +{ + static const struct of_device_id pwrseq_rzg3l_consumer_match[] =3D { + { .compatible =3D "renesas,r9a08g046-mipi-dsi" }, + { .compatible =3D "renesas,r9a08g046-usbphy-ctrl" }, + { /* sentinel */ } + }; + const struct of_device_id *match; + + match =3D of_match_device(pwrseq_rzg3l_consumer_match, dev); + if (!match) + return PWRSEQ_NO_MATCH; + + return PWRSEQ_MATCH_OK; +} + +static int pwrseq_rzg3l_pwrrdy_probe(struct auxiliary_device *adev, + const struct auxiliary_device_id *id) +{ + struct pwrseq_device *pwrseq; + struct pwrseq_config config =3D { + .parent =3D &adev->dev, + .owner =3D THIS_MODULE, + .drvdata =3D adev->dev.platform_data, + .match =3D pwrseq_rzg3l_pwrrdy_match, + .targets =3D pwrseq_rzg3l_pwrrdy_targets, + }; + + pwrseq =3D devm_pwrseq_device_register(&adev->dev, &config); + + return PTR_ERR_OR_ZERO(pwrseq); +} + +static const struct auxiliary_device_id pwrseq_rzg3l_pwrrdy_id_table[] =3D= { + { .name =3D "rz_sysc.pwrseq-pwrrdy" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(auxiliary, pwrseq_rzg3l_pwrrdy_id_table); + +static struct auxiliary_driver pwrseq_rzg3l_pwrrdy_driver =3D { + .driver =3D { + .name =3D "pwrseq-rzg3l-pwrrdy", + }, + .probe =3D pwrseq_rzg3l_pwrrdy_probe, + .id_table =3D pwrseq_rzg3l_pwrrdy_id_table, +}; +module_auxiliary_driver(pwrseq_rzg3l_pwrrdy_driver); + +MODULE_AUTHOR("Biju Das "); +MODULE_DESCRIPTION("Renesas RZ/G3L Power Ready Driver"); +MODULE_LICENSE("GPL"); --=20 2.43.0 From nobody Tue Sep 29 04:45:11 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 5CE4643712F for ; Wed, 12 Aug 2026 11:50:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786535421; cv=none; b=Goh7V1M6FF4WIUxzlWrpWTa9QCNuQrxmZoUjv9IpdJzbbRqfspVMUqrUVbJF/fvuPQY/EvJp2ABnv8RjJX9IXJpfuHk2nk2ZGDf4oco1uLO4Fi/kg3rxD1DT7LOcOriGboCw0ZWNd8a/jX4RTpfvTvHbenWQd7+YrI2cPErQawU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786535421; c=relaxed/simple; bh=Bkl99Pal5ibOO8dI/lGeIcH3x7hxcMtQ7M2hNnEDrBM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NTCyNj6zJ/Dy3uxk0qAqpiY1EZ5wizMP4L0j3ELkWsPMiKO/D2Ddqg/9ZmHsXgkt15SXFNRFBA4SKNAE0FcWO/TmiSD2Sw8RzGb2uvAbZuH5VAMXXbCfd7SkYxz2hs8pXG99oYJd0P+wEGEJ+NzsON1lR43Kj/F5JI87qem/KwA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bVCoQ095; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bVCoQ095" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-490cf322ed0so7923055e9.1 for ; Wed, 12 Aug 2026 04:50:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786535417; x=1787140217; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=RdktkKuZclSrEU0L4DOkjob0X0ZTquWYHTfAfXLf4zs=; b=bVCoQ095JjAI/9qNyDcBZIZehb1vNNqDTOe3QZ2CXo7dTXFcTbZrqoWKAfKyb5kjh+ Dhl6aWf9N/kceXlx6BZ5sGy4A7TmRPkHPG+rRgiOcihlLXcT1q90TqrLGH87PeBPh1S9 8gfp+iwdSZrdd+k63/7ff7C3Vzw4vUqemC3qhy1sR9Npsq2RDVs10hC1sKHTZWnkQqBP EVqIlu2wrKIGOxIvSYxyxELodckLomDgbRQDFX9ae0xAI0vmAAEpec3bIhXU3YxuNjrS py5iT4u4803JR0nUWKjlupQG0NNubVxtlbD9FjMT1afARfxHU9RdnVdXsmOGgdDqgbYg uLQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786535417; x=1787140217; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=RdktkKuZclSrEU0L4DOkjob0X0ZTquWYHTfAfXLf4zs=; b=fjj5953XNz2B+DZgm7UM5R7ZAOIzVWP4RGqe4b5hP/bFTvIp6ud9kc7bbURhQ3t2GL P8ly0m1DW2XtUhiJoJ/qj/srwFTaYI/UyP2olWmUH1tp/bzAehnxAOQUnaBo/jAmBwJ6 swUzZHiwz1B6CIVn8XGtNuFVVW+/Lm5hout0ItY7drjlk9N8pofLSfBJJfRZJTiqn7eU skItL3frZMO5Ljt/R5ogNXTe+c/rYZlrPIqXLdjzR2u+HYXM6lqq9U5F0c9sK255T+2L WOWn4RBXz/6obi9q/sbSLx4LjQyrN2sMixlYSQ3AFBAo2mo1eljHFnx46GByNwdPEOUj 0PWw== X-Forwarded-Encrypted: i=1; AHgh+RpKMwWcw8X+HHTEvJn67qdiA2mbDtAq/fBPDtWVoOuj9sdKs/JwmxydhfzoLmfAUrgJov549/3eCtWZqZI=@vger.kernel.org X-Gm-Message-State: AOJu0YxNfdTvfNsBOfDVf7l3bxP6aku3TPEp3sbesUGhPcLVdcRWRB2X aQ33Dpsnpsvk5kZgJZYEViir3KAgb/cnynRJ16b9vh57GxxaXh8D2fsg X-Gm-Gg: AR+sD13d+0HKRtu4f2u9QLsmoSnv217r9n3XeY2sZQHdqkH94oITdno9w4ji9Bbbp93 GczO2zirjDdMeWc5uHQh5yY0jay/LfXh2fEnJzoodD8QJysn6Evro+qgQdVGv42GB028qzsMoc1 iwh0NLEcdNGyHGRsXmXYtPhnVq4nP2YmMKrflipEerxVlNvJlHWJvCPQNXr3p59kRd1ElfSGXnc x2yexKeGTFbGstLOF88ZuklPoZttedAnf3U7CHTbHitd46OEc2pFJuXeA651cNHDXXTPUGYKNKz aOS7UQFI1IPSGMV5ZCaBNQL376Mru9qzF2m7PLEP4HlcxvMytUzxc96p/vFr/6lfzpeepwNei/m cJpppB12+MkpP6FjXFVHhuUTtn8wiCaZvQkvxPkVP4CYHwy9JZCTnI/I9dgbdRaWWRoL37dI33Z pV8Ynt7S9ncIyI0TfAxvjiMjhwLrdff0bTSv7KMRT6NgDAMFkkAaf4tjezMNW8jbJBoQKpKYbBy qeivOA113hETw== X-Received: by 2002:a7b:c3d5:0:b0:493:bb6b:5bb5 with SMTP id 5b1f17b1804b1-4997c1079a3mr36724545e9.13.1786535416491; Wed, 12 Aug 2026 04:50:16 -0700 (PDT) Received: from localhost.localdomain ([2a00:23c4:a702:d301:94c0:1825:d248:50ae]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4815231c308sm6219090f8f.11.2026.08.12.04.50.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 04:50:16 -0700 (PDT) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Laurent Pinchart , Philipp Zabel , Bartosz Golaszewski , Magnus Damm Cc: Biju Das , linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH v3 3/3] soc: renesas: Kconfig: Select POWER_SEQUENCING_RENESAS_PWRRDY for R9A08G046 Date: Wed, 12 Aug 2026 12:50:05 +0100 Message-ID: <20260812115010.108322-4-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260812115010.108322-1-biju.das.jz@bp.renesas.com> References: <20260812115010.108322-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das The RZ/G3L SYSC driver registers a "pwrseq-pwrrdy" auxiliary device to handle the PWRRDY power sequencing, which requires the pwrseq-renesas-pwrrdy driver to bind to it. Select POWER_SEQUENCING_RENESAS_PWRRDY from SYSC_R9A08G046 so it's built whenever RZ/G3L SYSC support is enabled. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven --- v2->v3: * Kconfig selects POWER_SEQUENCING as POWER_SEQUENCING_RENESAS_PWRRDY is defined inside an if POWER_SEQUENCING block in drivers/power/sequencing/Kconfig v1->v2: * No change. --- drivers/soc/renesas/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig index ab1c25fc2656..bf242141ef6e 100644 --- a/drivers/soc/renesas/Kconfig +++ b/drivers/soc/renesas/Kconfig @@ -494,6 +494,8 @@ config SYSC_R9A08G045 config SYSC_R9A08G046 bool "Renesas System controller support for R9A08G046 (RZ/G3L)" if COMPIL= E_TEST select SYSC_RZ + select POWER_SEQUENCING + select POWER_SEQUENCING_RENESAS_PWRRDY =20 config SYS_R9A09G047 bool "Renesas System controller support for R9A09G047 (RZ/G3E)" if COMPIL= E_TEST --=20 2.43.0