From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) (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 E5462343D63 for ; Fri, 17 Oct 2025 11:21:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700109; cv=none; b=asmFf+oRbSfnX1pk0d5JjjKSpB/vxO9WI3xh5XDciwsnyiZvyT8kXcP1t3qPfQ6LQs1mjzmYKm+MBn4k78z3CR6SUuQ7Q2/WfL4p2QWZHG6uC77/fdETrZek0UXd8fdQQdRHHsk95910MPLhdKCdLhGBIq6xZkN5rz5InenIjTM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700109; c=relaxed/simple; bh=3PA3zZ+Ug3aOY46+y0Bpyk/iEy6BvKUkO02G5BbMuws=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XQi2SbjhsY9iqmGCYlDGqHh5Evx+Mt0+8Wsfg6AGyvRTg9r0aH7Wd+TI3kEcuyBqv1wId7rs8RSe/HF1eQGxrf+u1gKrW5m+g+YD2rbwGTEwr3vLYaBjc5OvY9EOrKcdkt9BRF+3rMr4tPbxPcXcBl8e9NAmE0LdAVPs31C2J8E= 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=FtNfbbO1; arc=none smtp.client-ip=209.85.208.46 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="FtNfbbO1" Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-63bea08a326so2450536a12.3 for ; Fri, 17 Oct 2025 04:21:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700106; x=1761304906; 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; bh=e4/f1Kl14CmgCOWKe9f3nn8ieC/PRwpFMREaWVG2sFY=; b=FtNfbbO1kBmcoTInlAWLFrZc2Umjz4n9LVviYJbBbxMtSUTHKkN5wjcYlSfCuHKp4R z/2gcSHyrfrs2DoFyUxosP6DqzCxeVmqowTvKPeBB+UUfe7jJ0s3vZAXykR5hhpp6xbD XWlypoHIfPVIYZA55mk4EyPwfz8BSVXz6qhDtcQfqvqhoXlwvzz6yH4O9NAeW00K8GtI L0FyzpcCuOTl+wagtvxxmM1iYgEqkGIq9FLiWYz04ZsLJNJCv4umH5Wd7ssSbI6H7YxC u8rhMygAVbRXl4LkYy2W7rbcDLSTBbfcyKFB5/6+z5GNFj4wNB1byDbFbvj+AV1OlKrw byVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700106; x=1761304906; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e4/f1Kl14CmgCOWKe9f3nn8ieC/PRwpFMREaWVG2sFY=; b=mdN59de7QnERuARUpl08IQ9oq5ZzMxvFTuQ3ePbMylU80Jq+TRQUQMZnUZHkhZTAJc ydb9dUOOSqwx+C1PX2z05pqcSJ58bxlK5Cuu+NqH3Srg/o43fOs+lZGgWk30xBR+zSwe PgnpzbTBt/UUaFAE/YUw9Nba3UO95HrjRp0v9jEi2d/GfEdUSo8+vPkxpU+zr9paqw8C CzLKTcvvDxBL8b73HwcJ/xnI9ioN6CxpxSDqWCEQ+okD1p7LZP+lOAMwMWl4E1Uk7vPD tvx7ND3lgHtjntfyX8aYwBqSYvWzVj44NVNgvwRxrPX2MJ0d93uGlhRKeqJb+jbiB9qN lNKw== X-Forwarded-Encrypted: i=1; AJvYcCX3mav10JNbEbBueTvtE9j3EmCqg4qprMJ/4h9ihhwVoZf+UVkoxyXE0Ly8MCUPBsZEWzGK3/yvpum/H8U=@vger.kernel.org X-Gm-Message-State: AOJu0YxxURGBzoz/FnEKNP4c++1dTHHi3+xZOji/yQOh3XcJzc+3RXIA 4sc88bDw7mv0oVIeN8zWNZupTna355reQUlo4XQ9+F57NbMtsqC3Z32m X-Gm-Gg: ASbGncssnCJjYf/Knl/FfAkuxjtQAYDGHuNK2YuP03ydfyfcANnoKDxmvCMMwbQOvnV lbFZJLXsj7fR0g2+AuicYrGE25AedrGufHYH7u/umSHXpqqGsM3AzAmbUCcoisLOoaMv3XKCSPi 76E1xJAFK+D9D6qxsQquG/tb3+vApeoQUPOACS3/4EYQOeHPvRZkMEUdlwtw5pHjeM36r+D/md/ AtMXk8fV58fKi/1h/T96+ZV6FOX6DVv7EVxUFmQXZtEabWi6Lh90gtE/LRx4fIibfu40SwVEfO5 jJX2TRlqGWyK5uhed8Nk0RS4egiWXj/pPTB9i5tHtF2N11MuDqjhL0ikR6T6n30OR1If/bQ1501 a2r9a78N/RFYV2rdE/1PXdKM1pLG+qghIDwtxnqYUFsfiy8rwdUYAMp60Q249w/kWdyyaEAEYPe lFCyigqtTRlBqvYatAj+bWX1MNeBMVY1uUa0iHDQ== X-Google-Smtp-Source: AGHT+IHd6jblu2510v9bkHq/90oro00PKRRM0JXmjf8CbpRE4cA2knCufq3mdwx/AEKOqtQsu+8i5w== X-Received: by 2002:a17:907:9691:b0:b64:6776:1ee2 with SMTP id a640c23a62f3a-b6473f42d78mr334179566b.52.1760700105898; Fri, 17 Oct 2025 04:21:45 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:45 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 1/8] reset: imx8mp-audiomix: Fix bad mask values Date: Fri, 17 Oct 2025 04:20:18 -0700 Message-ID: <20251017112025.11997-2-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea As per the i.MX8MP TRM, section 14.2 "AUDIO_BLK_CTRL", table 14.2.3.1.1 "memory map", the definition of the EARC control register shows that the EARC controller software reset is controlled via bit 0, while the EARC PHY software reset is controlled via bit 1. This means that the current definitions of IMX8MP_AUDIOMIX_EARC_RESET_MASK and IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK are wrong since their values would imply that the EARC controller software reset is controlled via bit 1 and the EARC PHY software reset is controlled via bit 2. Fix them. Fixes: a83bc87cd30a ("reset: imx8mp-audiomix: Prepare the code for more res= et bits") Cc: stable@vger.kernel.org Signed-off-by: Laurentiu Mihalcea Reviewed-by: Daniel Baluta Reviewed-by: Frank Li --- drivers/reset/reset-imx8mp-audiomix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-im= x8mp-audiomix.c index 6b357adfe646..eceb37ff5dc5 100644 --- a/drivers/reset/reset-imx8mp-audiomix.c +++ b/drivers/reset/reset-imx8mp-audiomix.c @@ -14,8 +14,8 @@ #include =20 #define IMX8MP_AUDIOMIX_EARC_RESET_OFFSET 0x200 -#define IMX8MP_AUDIOMIX_EARC_RESET_MASK BIT(1) -#define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK BIT(2) +#define IMX8MP_AUDIOMIX_EARC_RESET_MASK BIT(0) +#define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK BIT(1) =20 #define IMX8MP_AUDIOMIX_DSP_RUNSTALL_OFFSET 0x108 #define IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK BIT(5) --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (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 8FDBB343D9B for ; Fri, 17 Oct 2025 11:21:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700112; cv=none; b=KHrs//WvBM7kAyKw1maN0BdXuHzLGcX9/DI46gu+ApY30KZtERvy8tAD+m+sq5XDW3oBdP6KqRAi3rA5XcFPJJIUgyOccHQY2rlY7Sqrbi8CcMKUswyWl77ndr2RL6vTSN7ePa1PH0nPM7N5s/4HbsbTC2spfqs1nS3ygLJjVZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700112; c=relaxed/simple; bh=a/aoSr6OJ+vXil4ATAG/Gem8UWTO+xyhbN9HKM1V+QY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tq2SWRldiwFMlL0DjWwE1BnUNRe4Bu5Nbl5OwsNAS+gwt39PorximCH3jwlgLf3wR61Jap+NlwIPTh6Ldcl7Bu+CkobOZmkCerL+mMVTqjl9xyy8B3FqNSdlaNctlBR6RvSfLUsGOstciopzz0svXM4QzTL/1zDlqgRk2JGSlYg= 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=c2BB4u1Q; arc=none smtp.client-ip=209.85.218.44 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="c2BB4u1Q" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b3da3b34950so287828566b.3 for ; Fri, 17 Oct 2025 04:21:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700109; x=1761304909; 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; bh=oxZng1eP3nkpNL2x3zSCyGZ+U+wKEAYbZhmRCawRv6g=; b=c2BB4u1QrUfOCA5RQ0A2HEG7QYSQ5Ia4W0lhZRsbYmLeX4EisBgJT2ogzxd1mE/R2u N9AJLrFXYQ83ZWNOPBZ/WwuFmNoY+uVM0/mtVujy/WHqURtYuBFbODvpC/HKtuPQZJsq Gj0xezYGiWGDbAUR4resUyAdUOZFLn0/TmMv4jg9YDKR4rLFnD7AkJWMVB6um7Iq01XE p8AAe6m0svzSP4L6rgT8PsFNimErcmxEKCg1gpo7ifgGb0MULbadqojD2nlNSSjby2ca iNHVmmeeVJMXR/mRaMNovlG03p6FFutkz4tFsSZX0FxUsl+bKWOJfgZLF7TFydfr1xtM 6ZTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700109; x=1761304909; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oxZng1eP3nkpNL2x3zSCyGZ+U+wKEAYbZhmRCawRv6g=; b=M6thSicJtN0FT9Ne5wU6YRLyo+J4074kyV58uWU6xyM6/6Id/Yc7WoPy1xA1k1lCyJ c1kvNtTr6orXtLHdhID7NFyLcFnFERNZjUUwnKdrK61gYor+B5Qf0vdHK8t4/l+wADwH uKO5Cf9Tdh+4LMtC6vN1wSjYS2o23bpX5haMmDMoBIjlYV4FXmRvgzipjx/8vWcSfDeb uJFwyxGzOpPybvdl15EidK4REpzgE/I4ZysHhJWjil18fgkB/lY5jcxe88B4ahynPwJ2 RVBgOizmPKT8aroHOlhKfMHnVCLE0sKoKv7MqS0YMy/cXn6BOlirigrHPdDq4KitTOAG flvA== X-Forwarded-Encrypted: i=1; AJvYcCUnmLEhYi11acj3GvneXaQt6rCtIj4Ul6sobaV1eJtetdjvQfo58wgAPsqCiqgVgNDUizok8Sz3GIAKFtw=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8pEckC1XzsER+GHptKL7ckk242bOfDvgibybCvoUnQGOpyaYb G2DhND2hhWlT1EpS3uvF85ycwU9cGPyKY89gqpxl1hl0dctC25M4Pv9G X-Gm-Gg: ASbGncsuVqaObY6/rB7c7PMEBIoGxe2wrfgGXxaRfeJzBLSArdIfWNyAvWTC10Iprnv l0DLq5+zAzhEXwHSOS2bdKx48VLpp8ZJxKKXcJMOqaojepVNKN/SD8Mn9niz3ZoW9YJcgB0bdVZ QVTd/Gos98Mt4pyfZYtsj/1ijIU4OvuwMP8PM63K332t3iwT39LdurIN0DAr38qFMBYLJGmnhmh eV4933hWhNmN8iw+0blvBmCnYXQvgO9mNFvoFIXpwrpH8fq0VC+vdym/4bra1UpqZAQ6O6a/08U 0fTuxvlK3VEfsNqCVGv+ViyqOL7Zybxw3YCYfuhvYrvGEo2v9dkwfCqrKA26Ke0AfBp7AGNTX2p g3HNzKL9ZeujdYih+p7zxEqSDa4JvXUdIWQkTJSSAZS6E4WCsftv6kV/bFID+yvNPU8ipGr9lnt QIz/aX/MT3avIWr0stYAuAxTrTXYIjQKutjf1o0Q== X-Google-Smtp-Source: AGHT+IHZNMQeXplbUH41+dThExjmzBGzSWreEUPNrbP0M9e+9ctpnllogrXxNq4uh1jLTdNf2mZ0sw== X-Received: by 2002:a17:906:dc90:b0:b3d:98fa:b3fe with SMTP id a640c23a62f3a-b6475510fe2mr380187166b.63.1760700108569; Fri, 17 Oct 2025 04:21:48 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:48 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 2/8] dt-bindings: clock: document 8ULP's SIM LPAV Date: Fri, 17 Oct 2025 04:20:19 -0700 Message-ID: <20251017112025.11997-3-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea Add documentation for i.MX8ULP's SIM LPAV module. Signed-off-by: Laurentiu Mihalcea Reviewed-by: Daniel Baluta Reviewed-by: Krzysztof Kozlowski --- .../bindings/clock/fsl,imx8ulp-sim-lpav.yaml | 72 +++++++++++++++++++ include/dt-bindings/clock/imx8ulp-clock.h | 5 ++ .../dt-bindings/reset/fsl,imx8ulp-sim-lpav.h | 16 +++++ 3 files changed, 93 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim= -lpav.yaml create mode 100644 include/dt-bindings/reset/fsl,imx8ulp-sim-lpav.h diff --git a/Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.y= aml b/Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.yaml new file mode 100644 index 000000000000..fb3b9028a4c3 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/fsl,imx8ulp-sim-lpav.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/fsl,imx8ulp-sim-lpav.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP i.MX8ULP LPAV System Integration Module (SIM) + +maintainers: + - Laurentiu Mihalcea + +description: + The i.MX8ULP LPAV subsystem contains a block control module known as + SIM LPAV, which offers functionalities such as clock gating or reset + line assertion/de-assertion. + +properties: + compatible: + const: fsl,imx8ulp-sim-lpav + + reg: + maxItems: 1 + + clocks: + maxItems: 3 + + clock-names: + items: + - const: lpav_bus + - const: hifi_core + - const: hifi_plat + + '#clock-cells': + const: 1 + + '#reset-cells': + const: 1 + + mux-controller: + $ref: /schemas/mux/reg-mux.yaml# + +required: + - compatible + - reg + - clocks + - clock-names + - '#clock-cells' + - '#reset-cells' + - mux-controller + +additionalProperties: false + +examples: + - | + #include + + clock-controller@2da50000 { + compatible =3D "fsl,imx8ulp-sim-lpav"; + reg =3D <0x2da50000 0x10000>; + clocks =3D <&cgc2 IMX8ULP_CLK_LPAV_BUS_DIV>, + <&cgc2 IMX8ULP_CLK_HIFI_DIVCORE>, + <&cgc2 IMX8ULP_CLK_HIFI_DIVPLAT>; + clock-names =3D "lpav_bus", "hifi_core", "hifi_plat"; + #clock-cells =3D <1>; + #reset-cells =3D <1>; + + mux-controller { + compatible =3D "reg-mux"; + #mux-control-cells =3D <1>; + mux-reg-masks =3D <0x8 0x00000200>; + }; + }; diff --git a/include/dt-bindings/clock/imx8ulp-clock.h b/include/dt-binding= s/clock/imx8ulp-clock.h index 827404fadf5c..c62d84d093a9 100644 --- a/include/dt-bindings/clock/imx8ulp-clock.h +++ b/include/dt-bindings/clock/imx8ulp-clock.h @@ -255,4 +255,9 @@ =20 #define IMX8ULP_CLK_PCC5_END 56 =20 +/* LPAV SIM */ +#define IMX8ULP_CLK_SIM_LPAV_HIFI_CORE 0 +#define IMX8ULP_CLK_SIM_LPAV_HIFI_PBCLK 1 +#define IMX8ULP_CLK_SIM_LPAV_HIFI_PLAT 2 + #endif diff --git a/include/dt-bindings/reset/fsl,imx8ulp-sim-lpav.h b/include/dt-= bindings/reset/fsl,imx8ulp-sim-lpav.h new file mode 100644 index 000000000000..adf95bb26d21 --- /dev/null +++ b/include/dt-bindings/reset/fsl,imx8ulp-sim-lpav.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright 2025 NXP + */ + +#ifndef DT_BINDING_RESET_IMX8ULP_SIM_LPAV_H +#define DT_BINDING_RESET_IMX8ULP_SIM_LPAV_H + +#define IMX8ULP_SIM_LPAV_HIFI4_DSP_DBG_RST 0 +#define IMX8ULP_SIM_LPAV_HIFI4_DSP_RST 1 +#define IMX8ULP_SIM_LPAV_HIFI4_DSP_STALL 2 +#define IMX8ULP_SIM_LPAV_DSI_RST_BYTE_N 3 +#define IMX8ULP_SIM_LPAV_DSI_RST_ESC_N 4 +#define IMX8ULP_SIM_LPAV_DSI_RST_DPI_N 5 + +#endif /* DT_BINDING_RESET_IMX8ULP_SIM_LPAV_H */ --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (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 29D73343D71 for ; Fri, 17 Oct 2025 11:21:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700116; cv=none; b=C6ShNVjI6Iv6xxuUtvC7HzAnjYgSPSncP7bazlGsdQSSM67KmfuSjV85kXg+5+6sa1nkQysTk+KKVvIiMTrvQkLgc7kxFOrcNmXH+UmRujpsgvG6kd4fnjVUqBaliZ+p6XUckE853q9jSTh2Bu+myEJD2tvjutOOr5vl7aYSdZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700116; c=relaxed/simple; bh=QbwHtai+BJxYFudgqpSVpK+6DZzgQhT5atZHskToNH4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F9iib4m6KSIBFHjiztDFNyOLU6g+oB1FNwNsghKGX7t4fXtLwe/HnSXD43TAdDK+wTx/uWVvBwHO46f7agE8FDmhZl7InxB0SG0ze9Y29uTSjUpYxV2Bqj/HqP7u+W9qgo3abV/3mZl2WG1/Jl7XGnmM37MtIp7GkOlsnAVZbfc= 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=NXcvHnLV; arc=none smtp.client-ip=209.85.218.44 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="NXcvHnLV" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b64cdbb949cso156682466b.1 for ; Fri, 17 Oct 2025 04:21:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700111; x=1761304911; 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; bh=+SRcF0cyXRIrCALSbv1WyqVPHL5usg6xc8X0h6BNH44=; b=NXcvHnLVeRe35lgom4xnkPrL6s6snKC6qHC4QvuOOoVsB7rHWYwJE1nULw1x5pdnGR TmJEk61ZZoFo85lzM0jrp41xUTBHNlt/N0xTXw+Tnr6KaeqVnrZaXD6KmyL1Pji7GeMf GOCdMlEvpuc0P5dYenpKN1+75FYZqPrjq688t/M89oHjF27YyU/YaUuaBppheSP2Dn7b Do/OBFfVhnf/uelxMvUJdEqfOkojjUBbBeKpZg7uxZBv9t56sav9b3rWL/GRSTnOScSk 3BuNRgPtfedbQbLSUwXaClge9MraHv5UpUJ6TRktAFXk2/p5TMHGfHHGAhZ0hYOaaBnh Ujxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700111; x=1761304911; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+SRcF0cyXRIrCALSbv1WyqVPHL5usg6xc8X0h6BNH44=; b=GntwoDESggGZhYF2DmTH/mj+VRxegrh3D/GMWJZcVER/zMRBmHpeRISuVzebIaRBIe wIjXhTdReq9aSgofowsvYz2jkSUP+RNjE1siB/sUHeiov0oufqimYT+HfaxplliaAcx2 Z/Uq4gCcg1WalFJBQE6MhBtraTJ/Klv2WctT58MCIzedxEt132RYbfcpWDZgE2g1OyTI Ep4kt2X6hIkjFV/5oiZlwjE6NVvfrV9UlRGCI3gawrjKw8EAbhIYRFbQb0vdGJzQr+VL PASwmTrilPfaO2ZoGjs6OLh4rRZCHEXuDDtIEKCK1lZ5xUbXvlrJOVg3PhW8xG8SkWlo jvSA== X-Forwarded-Encrypted: i=1; AJvYcCWjZhZixbqWqiFnP8SfPMDQqRBebfrnLr5OvaiWl9Hnbuiw3Z29Bk7ut29mhkmF3BrnjjBOG207c+qnhvE=@vger.kernel.org X-Gm-Message-State: AOJu0YzKxDL2DQX9Jgqo07oCFMUQS1SJZ7LbtX80B1qXL7L5P1zY/lRe CZvCVe+y5MNuhRcrQzSFXgglCSipD17ydZP7dfVL/zviTrLw43kLiQys X-Gm-Gg: ASbGncvglSeqhsXbEarwF6xPyORbRzIpfqljC9N27aF2zbViAWXd+VPUHlG8g1AqqJK 6V823z0I6XSeOalBIK157/bPvA0wr/t5adgdJ2EHzOYtvl1A0/dTJrc3sAF7VkeXO3giR2jcE6I +VRHdNCIgOn1y8nQENcFh61ZaMyXGykrsvbJxJC2Jt0LE2iYFHG5HEhuWBuJNqz15TA2zOlC0mr 9GNyWMR80LyZuQcaEVMyrXiK2/C8J7n5aijXSEihajsMlq2hoWyYVeTglv1vVpEFGXfjEJDlGz3 6cLgB+XPCoEhmjhIUo/VV9or0JfY7SzkVbSkBEZwocOxUYkRwv16OS08s+jxVLQYXd+RvKF4dzo 5hc5ihwwF+9YeA/NLxu0WIzVjKJfg9ReiYgY4wgwsWyJr4C8DXA5mR2+yFp4pZwiq1uAuXMDgdY D2SXnFL/OHwDNePVMkYhN0DTwxbJklILn99Qh/7g== X-Google-Smtp-Source: AGHT+IHawqhbMGg/z/t1tyezNSy1w1pPa2pT2cKM5bF1DJpICbbtH0JfsYDVp5aeJapIE5IuD8wpSQ== X-Received: by 2002:a17:907:2dab:b0:b44:f9fe:913a with SMTP id a640c23a62f3a-b6475d04cb3mr349744166b.65.1760700111023; Fri, 17 Oct 2025 04:21:51 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:50 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 3/8] clk: imx: add driver for imx8ulp's sim lpav Date: Fri, 17 Oct 2025 04:20:20 -0700 Message-ID: <20251017112025.11997-4-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea The i.MX8ULP System Integration Module (SIM) LPAV module is a block control module found inside the LPAV subsystem, which offers some clock gating options and reset line assertion/de-assertion capabilities. Therefore, the clock gate management is supported by registering the module's driver as a clock provider, while the reset capabilities are managed via the auxiliary device API to allow the DT node to act as a reset and clock provider. Signed-off-by: Laurentiu Mihalcea --- drivers/clk/imx/Makefile | 1 + drivers/clk/imx/clk-imx8ulp-sim-lpav.c | 211 +++++++++++++++++++++++++ 2 files changed, 212 insertions(+) create mode 100644 drivers/clk/imx/clk-imx8ulp-sim-lpav.c diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile index 03f2b2a1ab63..208b46873a18 100644 --- a/drivers/clk/imx/Makefile +++ b/drivers/clk/imx/Makefile @@ -41,6 +41,7 @@ clk-imx-lpcg-scu-$(CONFIG_CLK_IMX8QXP) +=3D clk-lpcg-scu.= o clk-imx8qxp-lpcg.o clk-imx-acm-$(CONFIG_CLK_IMX8QXP) =3D clk-imx8-acm.o =20 obj-$(CONFIG_CLK_IMX8ULP) +=3D clk-imx8ulp.o +obj-$(CONFIG_CLK_IMX8ULP) +=3D clk-imx8ulp-sim-lpav.o =20 obj-$(CONFIG_CLK_IMX1) +=3D clk-imx1.o obj-$(CONFIG_CLK_IMX25) +=3D clk-imx25.o diff --git a/drivers/clk/imx/clk-imx8ulp-sim-lpav.c b/drivers/clk/imx/clk-i= mx8ulp-sim-lpav.c new file mode 100644 index 000000000000..a67a0e50e1ce --- /dev/null +++ b/drivers/clk/imx/clk-imx8ulp-sim-lpav.c @@ -0,0 +1,211 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright 2025 NXP + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#define SYSCTRL0 0x8 + +#define IMX8ULP_HIFI_CLK_GATE(gname, cname, pname, bidx) \ + { \ + .name =3D gname "_cg", \ + .id =3D IMX8ULP_CLK_SIM_LPAV_HIFI_##cname, \ + .parent =3D { .fw_name =3D pname, .name =3D pname }, \ + .bit =3D bidx, \ + } + +struct clk_imx8ulp_sim_lpav_data { + void __iomem *base; + struct regmap *regmap; + spinlock_t lock; /* shared by MUX, clock gate and reset */ + unsigned long flags; /* for spinlock usage */ + struct clk_hw_onecell_data clk_data; /* keep last */ +}; + +struct clk_imx8ulp_sim_lpav_gate { + const char *name; + int id; + const struct clk_parent_data parent; + u8 bit; +}; + +static struct clk_imx8ulp_sim_lpav_gate gates[] =3D { + IMX8ULP_HIFI_CLK_GATE("hifi_core", CORE, "hifi_core", 17), + IMX8ULP_HIFI_CLK_GATE("hifi_pbclk", PBCLK, "lpav_bus", 18), + IMX8ULP_HIFI_CLK_GATE("hifi_plat", PLAT, "hifi_plat", 19) +}; + +#ifdef CONFIG_RESET_CONTROLLER +static void clk_imx8ulp_sim_lpav_aux_reset_release(struct device *dev) +{ + struct auxiliary_device *adev =3D to_auxiliary_dev(dev); + + kfree(adev); +} + +static void clk_imx8ulp_sim_lpav_unregister_aux_reset(void *data) +{ + struct auxiliary_device *adev =3D data; + + auxiliary_device_delete(adev); + auxiliary_device_uninit(adev); +} + +static int clk_imx8ulp_sim_lpav_register_aux_reset(struct platform_device = *pdev) +{ + struct auxiliary_device *adev __free(kfree) =3D NULL; + int ret; + + adev =3D kzalloc(sizeof(*adev), GFP_KERNEL); + if (!adev) + return -ENOMEM; + + adev->name =3D "reset"; + adev->dev.parent =3D &pdev->dev; + adev->dev.release =3D clk_imx8ulp_sim_lpav_aux_reset_release; + + ret =3D auxiliary_device_init(adev); + if (ret) { + dev_err(&pdev->dev, "failed to initialize aux dev\n"); + return ret; + } + + ret =3D auxiliary_device_add(adev); + if (ret) { + auxiliary_device_uninit(adev); + dev_err(&pdev->dev, "failed to add aux dev\n"); + return ret; + } + + return devm_add_action_or_reset(&pdev->dev, + clk_imx8ulp_sim_lpav_unregister_aux_reset, + no_free_ptr(adev)); +} +#else +static int clk_imx8ulp_sim_lpav_register_aux_reset(struct platform_device = *pdev) +{ + return 0; +} +#endif /* CONFIG_RESET_CONTROLLER */ + +static void clk_imx8ulp_sim_lpav_lock(void *arg) __acquires(&data->lock) +{ + struct clk_imx8ulp_sim_lpav_data *data =3D dev_get_drvdata(arg); + + spin_lock_irqsave(&data->lock, data->flags); +} + +static void clk_imx8ulp_sim_lpav_unlock(void *arg) __releases(&data->lock) +{ + struct clk_imx8ulp_sim_lpav_data *data =3D dev_get_drvdata(arg); + + spin_unlock_irqrestore(&data->lock, data->flags); +} + +static const struct regmap_config clk_imx8ulp_sim_lpav_regmap_cfg =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .lock =3D clk_imx8ulp_sim_lpav_lock, + .unlock =3D clk_imx8ulp_sim_lpav_unlock, +}; + +static int clk_imx8ulp_sim_lpav_probe(struct platform_device *pdev) +{ + struct clk_imx8ulp_sim_lpav_data *data; + struct regmap_config regmap_config; + struct clk_hw *hw; + int i, ret; + + data =3D devm_kzalloc(&pdev->dev, + struct_size(data, clk_data.hws, ARRAY_SIZE(gates)), + GFP_KERNEL); + if (!data) + return -ENOMEM; + + dev_set_drvdata(&pdev->dev, data); + + memcpy(®map_config, &clk_imx8ulp_sim_lpav_regmap_cfg, sizeof(regmap_co= nfig)); + regmap_config.lock_arg =3D &pdev->dev; + + /* + * this lock is used directly by the clock gate and indirectly + * by the reset and mux controller via the regmap API + */ + spin_lock_init(&data->lock); + + data->base =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(data->base)) + return dev_err_probe(&pdev->dev, PTR_ERR(data->base), + "failed to ioremap base\n"); + /* + * although the clock gate doesn't use the regmap API to modify the + * registers, we still need the regmap because of the reset auxiliary + * driver and the MUX drivers, which use the parent device's regmap + */ + data->regmap =3D devm_regmap_init_mmio(&pdev->dev, data->base, ®map_co= nfig); + if (IS_ERR(data->regmap)) + return dev_err_probe(&pdev->dev, PTR_ERR(data->regmap), + "failed to initialize regmap\n"); + + data->clk_data.num =3D ARRAY_SIZE(gates); + + for (i =3D 0; i < ARRAY_SIZE(gates); i++) { + hw =3D devm_clk_hw_register_gate_parent_data(&pdev->dev, + gates[i].name, + &gates[i].parent, + CLK_SET_RATE_PARENT, + data->base + SYSCTRL0, + gates[i].bit, + 0x0, &data->lock); + if (IS_ERR(hw)) + return dev_err_probe(&pdev->dev, PTR_ERR(hw), + "failed to register %s gate\n", + gates[i].name); + + data->clk_data.hws[i] =3D hw; + } + + ret =3D clk_imx8ulp_sim_lpav_register_aux_reset(pdev); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "failed to register aux reset\n"); + + ret =3D devm_of_clk_add_hw_provider(&pdev->dev, + of_clk_hw_onecell_get, + &data->clk_data); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "failed to register clk hw provider\n"); + + /* used to probe MUX child device */ + return devm_of_platform_populate(&pdev->dev); +} + +static const struct of_device_id clk_imx8ulp_sim_lpav_of_match[] =3D { + { .compatible =3D "fsl,imx8ulp-sim-lpav" }, + { } +}; +MODULE_DEVICE_TABLE(of, clk_imx8ulp_sim_lpav_of_match); + +static struct platform_driver clk_imx8ulp_sim_lpav_driver =3D { + .probe =3D clk_imx8ulp_sim_lpav_probe, + .driver =3D { + .name =3D "clk-imx8ulp-sim-lpav", + .of_match_table =3D clk_imx8ulp_sim_lpav_of_match, + }, +}; +module_platform_driver(clk_imx8ulp_sim_lpav_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("i.MX8ULP LPAV System Integration Module (SIM) clock dr= iver"); +MODULE_AUTHOR("Laurentiu Mihalcea "); --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 DF3BB3469E9 for ; Fri, 17 Oct 2025 11:21:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700117; cv=none; b=DF/an5ENd/a7XB8w1D9mHGFWmQdbEPQW9Zqs+N6MPSiDM7Io/U+rXEgm/RvBETpZJ0IYPv9ZroFIfpdSoa8+IbVyizssQcCfs1QcO2gTGKE1vfhfJ+6x2cdjKVe/28N9lR1DuGK4YL3fBYAfBxjLpNX98K8nKJJZfufzW3Td5O4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700117; c=relaxed/simple; bh=GfD23YPZ5xlI6Cvd3J36u5HvRuzKaxr5uePf59R3rfA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T0G/TgXavI4SB+YADi+vhSIRT0Be8bVZVpnC9LytZZvILOTiv9J8rb0jqkQEilx+BbBfhudpDUfie0voyf51a9r9+wXu/0meo7OdFUvj+jBsF7Hl0UZiY8K7gOrTGbegI6FE0SIUY2IiiTn4PJEff6RV2DkOFEtjZODNRDJwR3E= 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=b1QS9txA; arc=none smtp.client-ip=209.85.218.54 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="b1QS9txA" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b5c18993b73so310675066b.0 for ; Fri, 17 Oct 2025 04:21:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700113; x=1761304913; 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; bh=szPuxr5/z40MS5Mlf+BY36YkQjXOaNb7HQ9L58rAhvk=; b=b1QS9txAOqHWz/L8n+5EFgUejs2xgLvYicWhCHCBcL78/XM0+qIcPXbmP/BvCnpLQZ X6kMDkPfX812O11iGjpr9W8i/sAf6tu/3+s0bQH3PtoblFYgutycTN/EEQ8S1SOeoiUl 0GcvDePr4GZ2MfWBQyHXRLvjUhYTX1MCNPL9nyEFF1HxhTuQgqo3oxxEnHAeB6vaerh1 FBpu682koFb2xPALKJHCbuiJy0Sao8TFKl6dBp6ZGwfXfS2uz7rV055EJ0hGQim/KFBC FCGReDWeOVKknH/ghTuOU4JGMhUoq92CD0NtsUl94DJNDz5abgf5FbLGCiZu/zYlb79R NLyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700113; x=1761304913; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=szPuxr5/z40MS5Mlf+BY36YkQjXOaNb7HQ9L58rAhvk=; b=QUdVDNc1dienDAnNyRC8Dcim+ks/S+WukuIWe8RnFy4DSzrr9/7TJWTr8Ul4ZrDR2H DbVfkMwfkQQLiQozzt/Edeab70UnVpVya16yV5GxCf4S80tW0DWRBtkyuKHUTebuP644 slHLZ9aQMkT0bcbIPGVmMVW4sV6uFCDv77+MLjeKX+L4gyL0iykiuf3xkcwwfHeR9kV5 0eO6/JaIcTWPnreC6zgGZpwWXs/6v6my6Av1/O3ZssOAXDKIbl2umVWBf3bIQ3zNSkSh kvtMDgX5sSpYjHB/ldE3TyE2srbagVhrHmhqtHmXFoC/8Oe/F6qJAIGMytgfK6KSqiwM ltFw== X-Forwarded-Encrypted: i=1; AJvYcCVIhYBnOoPGcd6KxDyd6N1gHTXHZhGw93VLkEQvP+ftqTFVOkt0uSyz95E0WBKCm8BM0+pdXiWrG9Y6Tls=@vger.kernel.org X-Gm-Message-State: AOJu0YzF6Hd6CNvInliBaFno6OAnq/0rXzfVLouinqx2VhlQesg40VTb eeUYyYhfWUY4VkrLUTBW38B+whMKfs156kOF1WFyp3tDU5l12P7+5Dzj X-Gm-Gg: ASbGncsBXwj/KobDRpYWW7qMHxwvj35LUZm5eONf9oIo2HuffdzZUbvXBQQ4HDsRo5K ox3wrW0GSgGozhL1U5sv7iYXZVotpyUNUnlqSvZ0YE/D3VRi0du0KO9GPYMqjHU9b7O4x/Xj6M1 J/0X5YzGoX1XcQFvuBW9m9Lc43tvme5UsjRxCA3cyDOqlToFruQUzTIMFB05CO7DkdhmkLZid0E DgjrZHfIf/64I6iHN3Ur5rLw+leRnCNYe8nqJgGrwT8yM5OlgTAIcAhc+zN32IMVRqa49Q0Kpi/ hmnH+qLw8HpD8eApfYjDRK0mHCCp1D/hIx90MUQpUG8hJtlsdVn2us9XD0KdKWNtaTYP+ygh0cB grfC+6nZ62+mkYjawLcsQczOjBxAslXvm8lfCF9WuK8JONnEQ3CyldDHnDzNOXT1GTRke8lcf6j 9qtuwloLyDZp+7rQbJcLqra1pcv+o= X-Google-Smtp-Source: AGHT+IFNwxALXcNX0FiT0aapuBu2Z9QWfQyDyDhYXyKBSinI4TH4m3Od7Om7Ykt8jQkZG5S9C0wOAQ== X-Received: by 2002:a17:907:86a2:b0:b40:f7dd:f8ee with SMTP id a640c23a62f3a-b6473732c83mr382329766b.28.1760700113139; Fri, 17 Oct 2025 04:21:53 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:52 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 4/8] reset: imx8mp-audiomix: Drop unneeded macros Date: Fri, 17 Oct 2025 04:20:21 -0700 Message-ID: <20251017112025.11997-5-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea The macros defining the mask values for the EARC, EARC PHY resets, and the DSP RUN_STALL signal can be dropped as they are not and will not be used anywhere else except to set the value of the "mask" field from "struct imx8mp_reset_map". In this particular case, based on the name of the "mask" field, you can already deduce what these values are for, which is why defining macros for them doesn't offer any new information, nor does it help with the code readability. Signed-off-by: Laurentiu Mihalcea Reviewed-by: Daniel Baluta --- drivers/reset/reset-imx8mp-audiomix.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-im= x8mp-audiomix.c index eceb37ff5dc5..e9643365a62c 100644 --- a/drivers/reset/reset-imx8mp-audiomix.c +++ b/drivers/reset/reset-imx8mp-audiomix.c @@ -14,11 +14,7 @@ #include =20 #define IMX8MP_AUDIOMIX_EARC_RESET_OFFSET 0x200 -#define IMX8MP_AUDIOMIX_EARC_RESET_MASK BIT(0) -#define IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK BIT(1) - #define IMX8MP_AUDIOMIX_DSP_RUNSTALL_OFFSET 0x108 -#define IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK BIT(5) =20 struct imx8mp_reset_map { unsigned int offset; @@ -29,17 +25,17 @@ struct imx8mp_reset_map { static const struct imx8mp_reset_map reset_map[] =3D { [IMX8MP_AUDIOMIX_EARC_RESET] =3D { .offset =3D IMX8MP_AUDIOMIX_EARC_RESET_OFFSET, - .mask =3D IMX8MP_AUDIOMIX_EARC_RESET_MASK, + .mask =3D BIT(0), .active_low =3D true, }, [IMX8MP_AUDIOMIX_EARC_PHY_RESET] =3D { .offset =3D IMX8MP_AUDIOMIX_EARC_RESET_OFFSET, - .mask =3D IMX8MP_AUDIOMIX_EARC_PHY_RESET_MASK, + .mask =3D BIT(1), .active_low =3D true, }, [IMX8MP_AUDIOMIX_DSP_RUNSTALL] =3D { .offset =3D IMX8MP_AUDIOMIX_DSP_RUNSTALL_OFFSET, - .mask =3D IMX8MP_AUDIOMIX_DSP_RUNSTALL_MASK, + .mask =3D BIT(5), .active_low =3D false, }, }; --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (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 3F56C346A19 for ; Fri, 17 Oct 2025 11:21:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700120; cv=none; b=ndEYiH9PLqPNnRmSBSG47wV6JSD0Upf13p0TYG+C1ndclQRoPMBvSLrjQzKud91A7QcNGgf+nx3y/BgZ1vlQVfIqqYJNJEiM8wU7W/1d1dmwqp+Soq/WCopK8YvpYcX0gYMJG6sWt7xtgy+sXgcPmL3qYJcO4JtDTmu1Q2Jub9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700120; c=relaxed/simple; bh=reyT7epGuDbHKxj5CF2p8t32wHXo5XDRn4abwGmB+p8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lkgiTrPqzrVU6N3YBWlQEPYRQBj+EU6s10YDsGzCzWRN7wQa1e0SkXCp89bYhaPGXlBMqRNpnOhZUcjzXtVWICLTgYagfxlbLDDnyDiWDzePidWRj/8FBg/gC8RUvEgVm1xd/iU3yMvs4aNeC3AIBxF7yWm3pvEN3j3QLhHl9rA= 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=FH6U+RZs; arc=none smtp.client-ip=209.85.218.46 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="FH6U+RZs" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-b48d8deaef9so349429666b.2 for ; Fri, 17 Oct 2025 04:21:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700115; x=1761304915; 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; bh=Xzm/FgKGwWcjtUv18XH1u/v0xKsrXzejWZqgQud6hqM=; b=FH6U+RZsuuLzhEBYK7zhtLttlkj9BChWJh8modkPnyKG0rM4iep9YEoR3zBfhoYyZs T6LRIAaLILnVEBPxpNqqXb1xUgSyGyjR7+U+GK7O5M2fk6f3NcPvs3uI2mnX7gbj7tXU g144aT58GLQ8maYM6YYXn0ijFVpg0k9ihAyGG3EBKz0sRTK+vaqYo7MRzgevYW7f99z/ gAjG++I+Fe6+9vh3z/rMg/ERC1bc9EUxgZoVe9bF47XmCtJugl2DNuZY51gDC+LPFNZF pGfqrupjsIy7lybiXguMXijo4xOukJqPE6TGlh0fOC25ucBxjgLujAwe4zRYyT+UJ1V7 2Izw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700115; x=1761304915; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Xzm/FgKGwWcjtUv18XH1u/v0xKsrXzejWZqgQud6hqM=; b=f/ZrKKX9HfP+72sPXvvt3bByojBa9wpAmRCQfPWdsMWybrHrK/rKcPykznOLkyoero p3fMElazfaUwgmmud1oDJt/5ThIeeDtsulzNSlT1xjQitfyaYrUtkBGNRa2mDpidac6m AOatlvcWaruJKbkVZfT9433Cs8/t4oPPgFENzAXBHX5ygBzZrof11AC45pY7WzRNSTeM v/8LXSQ7mE8bXlijD14CSfgie7kDQNCskAUH+2rZeaIT04B+eltpjWs4VZCJc0ulMbgY nzBMXHZo+dkVzatGrKY/2ZLwVuE9ced7CC1paOQp29iK0yACkXiDBwoaCtLlW7Tz8jNs DXVw== X-Forwarded-Encrypted: i=1; AJvYcCV3sHNluYnFHICVOwvAHqtxc468M9yxlhOkDRf4m+9XOEfm9qKMXFt53ul9rJ7JoiuSmuw05fb1fftsDGQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwIga3W6cB9nEyn+5aR6C1XB0fqMOfJ0Oj8YuzYTc3bWwGnMqtY byIFrK54Dco6Ao/THRZtSjDkpVdXjH1knqAGBmVUQDGdq4cDe8SYqaSq X-Gm-Gg: ASbGncszFaHtb3mc2Eyf+iVitAP9mS7wztCFWbpbjZnZNa0/FcblUyj8mCZ2xqRGF9u fSt6Sz5fd+Lwsqkr/+ITLV45p2gXUraFaSDJ3+7x8DSOuivZ2imvw4V+Af1DSFRCClDVTB//hzr 0CvUg17Du6UoTrjAGLrVZ4fiq6VtHU8DXNO/p1f2Nla9RqhPMRpAuVz9yL4rheJ1fGaKOo3dLfK /JQ2/WjM/ux3A+R5rXrksMin2bw0oprGtxKRUkWdff7RXm47Q/8lqG4p/M7ojMpNTtNx3Lu9e3T rl68A6MZE+pewayJI95znYJ/IIj8A4KPQlV8GpMY+eliyJv82OUcSrYZV0ZhZ9TS4yqaEwbYe0X +bVF2FEkIOGpelV38h3kLoPILlbbE8BCAEC5bvTIJHkktcE0y8Oi9M8lo7HvyUqUMqe6lYzDWxk UAd6ZOSvfw0CGuxjseMgjzkiZhI79jFbQdFqSUtA== X-Google-Smtp-Source: AGHT+IHbOMwzwvv5nUDzrBEiBFccEUf8uDKJMJplrGe4Op1dHXqciaqfLUTbrWYo3IymF5T3YQroCg== X-Received: by 2002:a17:907:fd17:b0:b5b:3ab0:a5b7 with SMTP id a640c23a62f3a-b6473952023mr381066566b.42.1760700115096; Fri, 17 Oct 2025 04:21:55 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:54 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 5/8] reset: imx8mp-audiomix: Switch to using regmap API Date: Fri, 17 Oct 2025 04:20:22 -0700 Message-ID: <20251017112025.11997-6-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea As far as the Linux kernel is concerned, block devices such as i.MX8MP's AUDIOMIX block control or i.MX8ULP's SIM LPAV can simultaneously act as clock controllers, reset controllers or mux controllers. Since these IPs offer different functionalities through different subsystem APIs, it's important to make sure that the register R-M-W cycles are performed under the same lock across all subsystem APIs. This will ensure that registers will not end up with the wrong values because of race conditions (e.g. clock consumer tries to update block control register A, while, at the same time, reset consumer tries to update the same block control register). However, the aforementioned race conditions will only impact block control IPs which use the same register for multiple functionalities. For example, i.MX8MP's AUDIOMIX block control IP provides clock gating functionalities and reset control functionalities through different registers. This is why the current approach (i.e. clock control and reset control work using different locks) has worked well so far. Since we want to extend this driver to be usable for i.MX8ULP's SIM LPAV block control IP, we need to make sure that clock control, reset control, and mux control APIs use the same lock since all of these functionalities are performed using the SYSCTRL0 register. To do so, we need to switch to the regmap API and, if possible, use the parent device's regmap, which, in the case of i.MX8ULP, will be the clock controller. This way, we can make sure that the clock gates and the reset controller will use the same lock to perform the register R-M-W cycles. This change will also work fine for cases where we don't really need to share the lock across multiple APIs (e.g. i.MX8MP's AUDIOMIX block control) since regmap will take care of the locking we were previously explicitly performing in the driver. The transition to the regmap API also involves some cleanup. Specifically, we can make use of devres to unmap the device's memory and get rid of the memory mapping-related error paths and the remove() function altogether. Signed-off-by: Laurentiu Mihalcea --- drivers/reset/reset-imx8mp-audiomix.c | 95 +++++++++++++++++---------- 1 file changed, 61 insertions(+), 34 deletions(-) diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-im= x8mp-audiomix.c index e9643365a62c..c74ce6e04177 100644 --- a/drivers/reset/reset-imx8mp-audiomix.c +++ b/drivers/reset/reset-imx8mp-audiomix.c @@ -11,6 +11,7 @@ #include #include #include +#include #include =20 #define IMX8MP_AUDIOMIX_EARC_RESET_OFFSET 0x200 @@ -19,6 +20,7 @@ struct imx8mp_reset_map { unsigned int offset; unsigned int mask; + unsigned int shift; bool active_low; }; =20 @@ -26,24 +28,27 @@ static const struct imx8mp_reset_map reset_map[] =3D { [IMX8MP_AUDIOMIX_EARC_RESET] =3D { .offset =3D IMX8MP_AUDIOMIX_EARC_RESET_OFFSET, .mask =3D BIT(0), + .shift =3D 0, .active_low =3D true, }, [IMX8MP_AUDIOMIX_EARC_PHY_RESET] =3D { .offset =3D IMX8MP_AUDIOMIX_EARC_RESET_OFFSET, .mask =3D BIT(1), + .shift =3D 1, .active_low =3D true, }, [IMX8MP_AUDIOMIX_DSP_RUNSTALL] =3D { .offset =3D IMX8MP_AUDIOMIX_DSP_RUNSTALL_OFFSET, .mask =3D BIT(5), + .shift =3D 5, .active_low =3D false, }, }; =20 struct imx8mp_audiomix_reset { struct reset_controller_dev rcdev; - spinlock_t lock; /* protect register read-modify-write cycle */ void __iomem *base; + struct regmap *regmap; }; =20 static struct imx8mp_audiomix_reset *to_imx8mp_audiomix_reset(struct reset= _controller_dev *rcdev) @@ -55,26 +60,15 @@ static int imx8mp_audiomix_update(struct reset_controll= er_dev *rcdev, unsigned long id, bool assert) { struct imx8mp_audiomix_reset *priv =3D to_imx8mp_audiomix_reset(rcdev); - void __iomem *reg_addr =3D priv->base; - unsigned int mask, offset, active_low; - unsigned long reg, flags; + unsigned int mask, offset, active_low, shift, val; =20 mask =3D reset_map[id].mask; offset =3D reset_map[id].offset; active_low =3D reset_map[id].active_low; + shift =3D reset_map[id].shift; + val =3D (active_low ^ assert) << shift; =20 - spin_lock_irqsave(&priv->lock, flags); - - reg =3D readl(reg_addr + offset); - if (active_low ^ assert) - reg |=3D mask; - else - reg &=3D ~mask; - writel(reg, reg_addr + offset); - - spin_unlock_irqrestore(&priv->lock, flags); - - return 0; + return regmap_update_bits(priv->regmap, offset, mask, val); } =20 static int imx8mp_audiomix_reset_assert(struct reset_controller_dev *rcdev, @@ -94,6 +88,50 @@ static const struct reset_control_ops imx8mp_audiomix_re= set_ops =3D { .deassert =3D imx8mp_audiomix_reset_deassert, }; =20 +static const struct regmap_config regmap_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, +}; + +/* assumption: registered only if not using parent regmap */ +static void imx8mp_audiomix_reset_iounmap(void *data) +{ + struct imx8mp_audiomix_reset *priv =3D dev_get_drvdata(data); + + iounmap(priv->base); +} + +/* assumption: dev_set_drvdata() is called before this */ +static int imx8mp_audiomix_reset_get_regmap(struct device *dev) +{ + struct imx8mp_audiomix_reset *priv; + int ret; + + priv =3D dev_get_drvdata(dev); + + /* try to use the parent's regmap */ + priv->regmap =3D dev_get_regmap(dev->parent, NULL); + if (priv->regmap) + return 0; + + /* ... if that's not possible then initialize the regmap right now */ + priv->base =3D of_iomap(dev->parent->of_node, 0); + if (!priv->base) + return dev_err_probe(dev, -ENOMEM, "failed to iomap address space\n"); + + ret =3D devm_add_action_or_reset(dev, imx8mp_audiomix_reset_iounmap, dev); + if (ret) + return dev_err_probe(dev, ret, "failed to register action\n"); + + priv->regmap =3D devm_regmap_init_mmio(dev, priv->base, ®map_config); + if (IS_ERR(priv->regmap)) + return dev_err_probe(dev, PTR_ERR(priv->regmap), + "failed to initialize regmap\n"); + + return 0; +} + static int imx8mp_audiomix_reset_probe(struct auxiliary_device *adev, const struct auxiliary_device_id *id) { @@ -105,36 +143,26 @@ static int imx8mp_audiomix_reset_probe(struct auxilia= ry_device *adev, if (!priv) return -ENOMEM; =20 - spin_lock_init(&priv->lock); - priv->rcdev.owner =3D THIS_MODULE; priv->rcdev.nr_resets =3D ARRAY_SIZE(reset_map); priv->rcdev.ops =3D &imx8mp_audiomix_reset_ops; priv->rcdev.of_node =3D dev->parent->of_node; priv->rcdev.dev =3D dev; priv->rcdev.of_reset_n_cells =3D 1; - priv->base =3D of_iomap(dev->parent->of_node, 0); - if (!priv->base) - return -ENOMEM; =20 + /* keep before call to imx8mp_audiomix_reset_init_regmap() */ dev_set_drvdata(dev, priv); =20 + ret =3D imx8mp_audiomix_reset_get_regmap(dev); + if (ret) + return dev_err_probe(dev, ret, "failed to get regmap\n"); + ret =3D devm_reset_controller_register(dev, &priv->rcdev); if (ret) - goto out_unmap; + return dev_err_probe(dev, ret, + "failed to register reset controller\n"); =20 return 0; - -out_unmap: - iounmap(priv->base); - return ret; -} - -static void imx8mp_audiomix_reset_remove(struct auxiliary_device *adev) -{ - struct imx8mp_audiomix_reset *priv =3D dev_get_drvdata(&adev->dev); - - iounmap(priv->base); } =20 static const struct auxiliary_device_id imx8mp_audiomix_reset_ids[] =3D { @@ -147,7 +175,6 @@ MODULE_DEVICE_TABLE(auxiliary, imx8mp_audiomix_reset_id= s); =20 static struct auxiliary_driver imx8mp_audiomix_reset_driver =3D { .probe =3D imx8mp_audiomix_reset_probe, - .remove =3D imx8mp_audiomix_reset_remove, .id_table =3D imx8mp_audiomix_reset_ids, }; =20 --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 E506034AB10 for ; Fri, 17 Oct 2025 11:21:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700121; cv=none; b=M/JzDImPlHpfZ5AsMAlvk5XAtYsTgVh3XXbTBcBEQI08NVVhRJUjIf8P6whAvoPkxt8Va+lgw1WvxdtakXJVVaNB2AjeQkYFgt4ZjLBYOgugBjk/BTXPbld0O2mU5JrSiNWKJqajblVw9Z4iEa0hkXPV02mQqc3EfxFMy0K4RJc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700121; c=relaxed/simple; bh=PNvlbSmiUvii0S6TXSvE0jwb+kfCR5BIL73WNeuBgrs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xi1wh18ZD6N5qTu1XoY9H4x4B3OgzWff8+wPt+tZL60d3nvsuYzhr8d4EaTKGRphdmKBJ2bPEiKQnaWjmFm1wbDWMQZvL8wjrHepmHnlCsvy4ZOwHOcrxrfAnyDQWbzKUOXR29Blo0m+hIo+4Rr2ymYZ6E6BMwCaGcG5z7e5Y4g= 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=nAEmCo/F; arc=none smtp.client-ip=209.85.218.41 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="nAEmCo/F" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-b4736e043f9so289859466b.0 for ; Fri, 17 Oct 2025 04:21:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700117; x=1761304917; 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; bh=GPdqo0alu4iQYdIv2XuXRfTnuhzF5tbpLw/kkpI0JfQ=; b=nAEmCo/FVNHalnJWmZJ7ZDKCA8YdTCOqRZyssZEq/egsgk5+6Uw873PoZqcVssGvTW cTq7zwQnsnbZw6B0k1krR4lbbcexzhTPXnAqItVqlCLOh/JBCyTyQBCmCjJ61bnro7qS AZsX3y/k2JIPpahka38gvt1V03BS86WY792GOJ7aeKDlhzonKa8fYIxyI1lY49djiwcD VOatmncwg9aYIL/Rvqd9z+bFjmAhEPxGjL7wqeTK7cR/1gOgpb4DDRTkIgsuaXxSfXf+ Vqqrwbv/M5arpGW7zphWtFrZ105oZfRtZwPC9PTOGO8DCE4JQFlimBazZuU3/4WH73jB BHeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700117; x=1761304917; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GPdqo0alu4iQYdIv2XuXRfTnuhzF5tbpLw/kkpI0JfQ=; b=tYdNU+zWcyRaTAZLSLOPMqw359WieJBjsmL10Ey29gROSKzFLUGwwJX15gdaCH4Orl 73JpL2iog5w3Dppr4t36GS4T4zw3ijz2U4a1Nrpe5xzgAlZVvsEIaVk68PmW4rlxcDZk qY5GHej/YHbK17o9XfEEuFp0x89IX3CO4UNgHdriVRqrBCdtQHK9EjW/iEJUoZdztdi6 47ac/mkYCwUQ15M8hNbV9nc/oSMskWE/5geq5gtDWekTth14TftDwQg9tapwhaKk7QhN DMz7TLXKdR0+UMf6BTQoD0I4T0Ybcrl6Uq8a9qWubFUB2+Voc0XOhwIWfUL/V7kwx2gr UaSw== X-Forwarded-Encrypted: i=1; AJvYcCWJfkrqD7cJh+hzM39ctJeVAY2UfoYIMhPCLOEMhQ1EUHSZ4yCWk8gtCMktzh4P7CEQC2g5a06ngutAVDg=@vger.kernel.org X-Gm-Message-State: AOJu0YxeDAH8sRza6xiiy1Nqm03QLnWckwfFbAX6VIRn33VGCUYrnYf4 IGZMPjv5J0vChmH38AnpoK1jmc+QfJjdA19+Q+sH/fz1vCpNCZ88Hem+ X-Gm-Gg: ASbGnctJl7y5g+Qv3hMP3vJIHqnH0abnhpWIFqWiVnP5RiUwDMlFDBoI61gWOuXt9b8 1YngcCn+ApRKsr+KK50dsR5u/ivh2ZQPeuR16uQ/ByQYcL4hqDnGHOL6yeoicYPDhO1LbJkAFd8 eMnwKDMKHHRoVtmOzYJzo+hTMJf1gYBBO+FzrSsPoUC1mJWp40ojtywfhvriSpbtVQ+ZBK2Bp21 0CIN7TU5gqtvVRgP5AOE/nf9ikfuSv7szsYeBynsY2J0vp8ymoWYQMOsJMK2aCqftPIsb3bH3pd FiMvvGZR2Y4hjs73x7Wl16Ef3sw8U7gx9WoBkdI53Ru/S+RzML1a8WOKlE3VL+S0plahWRKghNT 66bhJLPqpPPSu+NyT2BUA9OE+msg93dEGGCn6Wr82i3dz0m6MGIRdH2lAt2yZJaytz9n0b+jF32 aUhHLqPhSr/m8Js6F1whDdWRYCYfU= X-Google-Smtp-Source: AGHT+IHVLr79Aj1wmFsQfBf8luDTxUDCNFd8nKuGaUsCgVTKbksjEKUTdzlfSjzx9IgrO6A4BqLrMw== X-Received: by 2002:a17:906:f1c9:b0:b64:8464:68ca with SMTP id a640c23a62f3a-b64846468e0mr277225466b.19.1760700117100; Fri, 17 Oct 2025 04:21:57 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:56 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 6/8] reset: imx8mp-audiomix: Extend the driver usage Date: Fri, 17 Oct 2025 04:20:23 -0700 Message-ID: <20251017112025.11997-7-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea Some NXP SoCs integrate one or more, per-subsystem, block control IPs, which allow users to control the assertion and de-assertion of the reset lines tied to some peripherals present in said subsystems. Some examples of such SoCs include i.MX8MP with AUDIOMIX block control and i.MX8ULP with SIM LPAV. Some of the aformentioned block control IPs exhibit a common pattern with respect to the assertion and de-assertion of the reset lines. Namely, the user is able to control the state of the reset line by toggling a bit from one of the IP's registers. Linux can take advantage of this pattern and, instead of having one driver for each block control IP, a single, more generic driver could be used. To allow this to happen, the previous approach, in which a single reset map is used, is replaced by a per-driver approach, in which each auxiliary device driver holds a reference to a certain reset map. Reviewed-by: Daniel Baluta Signed-off-by: Laurentiu Mihalcea --- drivers/reset/reset-imx8mp-audiomix.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-im= x8mp-audiomix.c index c74ce6e04177..c370913107f5 100644 --- a/drivers/reset/reset-imx8mp-audiomix.c +++ b/drivers/reset/reset-imx8mp-audiomix.c @@ -24,7 +24,12 @@ struct imx8mp_reset_map { bool active_low; }; =20 -static const struct imx8mp_reset_map reset_map[] =3D { +struct imx8mp_reset_info { + const struct imx8mp_reset_map *map; + int num_lines; +}; + +static const struct imx8mp_reset_map imx8mp_reset_map[] =3D { [IMX8MP_AUDIOMIX_EARC_RESET] =3D { .offset =3D IMX8MP_AUDIOMIX_EARC_RESET_OFFSET, .mask =3D BIT(0), @@ -45,10 +50,16 @@ static const struct imx8mp_reset_map reset_map[] =3D { }, }; =20 +static const struct imx8mp_reset_info imx8mp_reset_info =3D { + .map =3D imx8mp_reset_map, + .num_lines =3D ARRAY_SIZE(imx8mp_reset_map), +}; + struct imx8mp_audiomix_reset { struct reset_controller_dev rcdev; void __iomem *base; struct regmap *regmap; + const struct imx8mp_reset_info *rinfo; }; =20 static struct imx8mp_audiomix_reset *to_imx8mp_audiomix_reset(struct reset= _controller_dev *rcdev) @@ -60,6 +71,7 @@ static int imx8mp_audiomix_update(struct reset_controller= _dev *rcdev, unsigned long id, bool assert) { struct imx8mp_audiomix_reset *priv =3D to_imx8mp_audiomix_reset(rcdev); + const struct imx8mp_reset_map *reset_map =3D priv->rinfo->map; unsigned int mask, offset, active_low, shift, val; =20 mask =3D reset_map[id].mask; @@ -144,7 +156,8 @@ static int imx8mp_audiomix_reset_probe(struct auxiliary= _device *adev, return -ENOMEM; =20 priv->rcdev.owner =3D THIS_MODULE; - priv->rcdev.nr_resets =3D ARRAY_SIZE(reset_map); + priv->rinfo =3D (const struct imx8mp_reset_info *)id->driver_da= ta; + priv->rcdev.nr_resets =3D priv->rinfo->num_lines; priv->rcdev.ops =3D &imx8mp_audiomix_reset_ops; priv->rcdev.of_node =3D dev->parent->of_node; priv->rcdev.dev =3D dev; @@ -168,6 +181,7 @@ static int imx8mp_audiomix_reset_probe(struct auxiliary= _device *adev, static const struct auxiliary_device_id imx8mp_audiomix_reset_ids[] =3D { { .name =3D "clk_imx8mp_audiomix.reset", + .driver_data =3D (kernel_ulong_t)&imx8mp_reset_info, }, { } }; --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 BCA6134DCCE for ; Fri, 17 Oct 2025 11:22:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700122; cv=none; b=R1r0Ie6TgUXSz/E9X0ppWjyDAGcDTCgY/xjaXn/vZVImK+pSIFKnzurpX93ZSwgipBACv0YrZ68sUeMJ9t+AlQnbGzNMk+W6rG5K0iNEP4mcG+lNW7dByXGwbgbKLk1lcqx+IfCX2Y5qNL9o1ud2cjI4OtZHhLvxb7sSdjCEsGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700122; c=relaxed/simple; bh=+Ey9SbmZcpxONfuufQWjoq8uULlUbxrUUaDZu5U2L78=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LFW5L4m7tFWuopqfPfrtXCjtVe/oWWFtSPZhcmhHkx7PZPLdFFzj17OsUoqELGHED0eyhCo/6k11Mf21/GHlMH7vZrdXMOWd6Ox/dZ+OyHMNuL4xma7PZhLEtLk9nOJpvSD6wg2E7Co1Fi+qClU6F8ixd+9XLJyEeg8n6rxKrgo= 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=iJU0juSS; arc=none smtp.client-ip=209.85.218.52 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="iJU0juSS" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b3d80891c6cso519549266b.1 for ; Fri, 17 Oct 2025 04:22:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700119; x=1761304919; 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; bh=mUV6qtcx4rMTHA9YbDeCb7EleNNSZvqvmp58IK55HCg=; b=iJU0juSSyOnSlY93U2YRo6UI5S93aGarr6GL0MeXZjCo7e2DuHrHKYGj2zwm6IlGcR PhePU63v05jTNEYlXrVse50X3g9+NyxMn9jYZdrWxGNkD1esSCJe5H0ekoUAA7Go0sj3 19Up68gqj/Q395iX8e5Ujye26jMsaLUoeDQ8M7Cm7Z1nEtJ4a0899fRk0CCsJgSxcPLP 2aDs6FX4v7F1LzszlUJZcuQBm2lQoy7X2Qh3NaVx9ODoxfW0IQA0uf+hrXKpRIuIfF38 OAkAcyDk1wqRqMCBFnjGWoTTPi1WlVTtVIBkckRAFCfL9iRnk0lx8Og/pQjK6LF6bd3b Od9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700119; x=1761304919; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mUV6qtcx4rMTHA9YbDeCb7EleNNSZvqvmp58IK55HCg=; b=lQ3mJWzxnyBNAFkT1KT74SDM1no9CNLA/u44FJBtwSYBi+J32dzHWG9t6nzAN3vRV7 sD0vRLJdMhKWw71e9djmGFflrMhl3TaeeJT4lfs0p4xdK2JePfixaun0NYEshfUqb489 91G9AIiKTdLpylGPw3tjquRvUu2F/+e/oLKpL6D2qpg5brw3nbAIoc08O4x+H4y3ht9Q bFyhe293WCSCPIxyR01kGPisNkoraM4vVqqNpglfF7hEzXwtUjCVeEGCtFAruGrdgfNl HFdlaIQzilRLTMOYyvbJSGBvrBtcL6eEDCg830F0JnKBwX8CfVa780XjKLQ0OUE2oAVI Ok3g== X-Forwarded-Encrypted: i=1; AJvYcCVLozZHLx2cjt6ap6gmglRk8TKyryP1JVRrIkd+4JKlIOAwvMMe0GKo5VauMbrwaBt7mccLasnxxB9VYvg=@vger.kernel.org X-Gm-Message-State: AOJu0YyRJipuQrzcEAY6XYahP1r/JyKzKrvjb8B8g90ycCJkw+F47f6R dlmB/I8koxPQmOGlsd+lbmTSusbXmAhVWZnXsSVRXs+p0f5sQ3StsSrV X-Gm-Gg: ASbGncvt6vej4P5e+vcbwyEuyIbX/1gvuBLxl0ERFvB1/vJY2pWIsfjYXDIfIQDhSmG Kj0ItBKDC0FJeBsTX4hVzZZM8/RA3mgsCvCIUyriO/mnvX2cpXvs6LZtJbJbQApDzDBu5MGBhkF zRPkXi7m+nFWQ9r5GvBfpUY6Zp/LlSGkb7NYMM8ZF0/Ew0OiuOevM0rFfERcYaRRTrE+QC8EcPG 7tmZoOdjTCXbKZpRDcUB4Lac1r5qpMPXAZN7ijto61XQKvqMM6Bsytl56101p0AJB1nAKLqjlBU lmA1n23NCIVr4v8jHmc0cKK+tRFXGvQUUqfzb468Ynd+n094TC/m9F1W4zA8oojuHn1HZk2PZ/j Lor6yYW4Ll0SoLaCcp3Z/OSHQJoJruqyrSiQTe9rZNIg0+Wb0uv39F0Zz4X56w8NceNSksT2h6N 5mVlEDa1nfKEDW9RNWxKJOgis32TXdysjWdpeskg== X-Google-Smtp-Source: AGHT+IGBmOLlRjgaTi3Dp0i7n6ywhQoBAle46tY4Ru1l6tF04+Mf45lE3lTlEpkDb4XkYETG5Xjxmw== X-Received: by 2002:a17:907:a0b:b0:afe:159:14b1 with SMTP id a640c23a62f3a-b645d20ef0fmr390859366b.9.1760700119091; Fri, 17 Oct 2025 04:21:59 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:21:58 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 7/8] reset: imx8mp-audiomix: Support i.MX8ULP SIM LPAV Date: Fri, 17 Oct 2025 04:20:24 -0700 Message-ID: <20251017112025.11997-8-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea Support i.MX8ULP's SIM LPAV by adding its reset map definition. Reviewed-by: Daniel Baluta Signed-off-by: Laurentiu Mihalcea --- drivers/reset/reset-imx8mp-audiomix.c | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/drivers/reset/reset-imx8mp-audiomix.c b/drivers/reset/reset-im= x8mp-audiomix.c index c370913107f5..b333d7c1442a 100644 --- a/drivers/reset/reset-imx8mp-audiomix.c +++ b/drivers/reset/reset-imx8mp-audiomix.c @@ -3,6 +3,7 @@ * Copyright 2024 NXP */ =20 +#include #include =20 #include @@ -17,6 +18,8 @@ #define IMX8MP_AUDIOMIX_EARC_RESET_OFFSET 0x200 #define IMX8MP_AUDIOMIX_DSP_RUNSTALL_OFFSET 0x108 =20 +#define IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET 0x8 + struct imx8mp_reset_map { unsigned int offset; unsigned int mask; @@ -55,6 +58,50 @@ static const struct imx8mp_reset_info imx8mp_reset_info = =3D { .num_lines =3D ARRAY_SIZE(imx8mp_reset_map), }; =20 +static const struct imx8mp_reset_map imx8ulp_reset_map[] =3D { + [IMX8ULP_SIM_LPAV_HIFI4_DSP_DBG_RST] =3D { + .offset =3D IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET, + .mask =3D BIT(25), + .shift =3D 25, + .active_low =3D false, + }, + [IMX8ULP_SIM_LPAV_HIFI4_DSP_RST] =3D { + .offset =3D IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET, + .mask =3D BIT(16), + .shift =3D 16, + .active_low =3D false, + }, + [IMX8ULP_SIM_LPAV_HIFI4_DSP_STALL] =3D { + .offset =3D IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET, + .mask =3D BIT(13), + .shift =3D 13, + .active_low =3D false, + }, + [IMX8ULP_SIM_LPAV_DSI_RST_BYTE_N] =3D { + .offset =3D IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET, + .mask =3D BIT(5), + .shift =3D 5, + .active_low =3D true, + }, + [IMX8ULP_SIM_LPAV_DSI_RST_ESC_N] =3D { + .offset =3D IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET, + .mask =3D BIT(4), + .shift =3D 4, + .active_low =3D true, + }, + [IMX8ULP_SIM_LPAV_DSI_RST_DPI_N] =3D { + .offset =3D IMX8ULP_SIM_LPAV_SYSCTRL0_OFFSET, + .mask =3D BIT(3), + .shift =3D 3, + .active_low =3D true, + }, +}; + +static const struct imx8mp_reset_info imx8ulp_reset_info =3D { + .map =3D imx8ulp_reset_map, + .num_lines =3D ARRAY_SIZE(imx8ulp_reset_map), +}; + struct imx8mp_audiomix_reset { struct reset_controller_dev rcdev; void __iomem *base; @@ -183,6 +230,10 @@ static const struct auxiliary_device_id imx8mp_audiomi= x_reset_ids[] =3D { .name =3D "clk_imx8mp_audiomix.reset", .driver_data =3D (kernel_ulong_t)&imx8mp_reset_info, }, + { + .name =3D "clk_imx8ulp_sim_lpav.reset", + .driver_data =3D (kernel_ulong_t)&imx8ulp_reset_info, + }, { } }; MODULE_DEVICE_TABLE(auxiliary, imx8mp_audiomix_reset_ids); --=20 2.43.0 From nobody Sun Feb 8 08:48:20 2026 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.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 AF5DE34F48E for ; Fri, 17 Oct 2025 11:22:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700124; cv=none; b=Inc7PBQV/N6OMkztGi71oKjU+k2nQpyDrCbZaVAMSYnClBcm04OyNKvksB+mzQxmWn4bfoiamHaVJRqdqUw1duHxbpiqIs2tKyojSbWaJKBwHPwDyOsb3YDdj79lSLRDETdfApue8bCyrBQoEDc1DgDt/q9oaECvmnYiilNLq0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760700124; c=relaxed/simple; bh=y613Fibuye7rvTibD+68qb4oNwl+ydXU9k6h+6Dna6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xz3DAS+fd3ER5yOohTE8wRb9u2YM906iXh0CPjsY5ziWAOePTUkxusP4xVGpJusZz4KP+3OJ4EYgs7QmlxTEzBMKjyMMqJF84qW8L4MaWQ3FHDT5IExqvKaXnu8PICPRmS3ZXckqTPZAzaZ+MMs4enjQPFlXTbC/5j2e50Z4wyU= 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=niyy5DtK; arc=none smtp.client-ip=209.85.218.49 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="niyy5DtK" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b463f986f80so371573766b.2 for ; Fri, 17 Oct 2025 04:22:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760700121; x=1761304921; 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; bh=07Toi2vUIU+MWGlot8kMIQ1ee07JBmL9YfZNkL4sfI0=; b=niyy5DtK/jIqiA/dpFcGD8XGY2TG1/EBgwRWvMgT44+eZ5c40GsYOxjZWgK9xMx3oJ Ub8ppWIKnhpL6mFxaHI7eVX8M+d7R9ThA3MaeUDMqPecxRXxCYqLewPINElPIZgufd4J CxgiDjEBtHdlyczcz2/x+y10CmJmL+jiQFjudfTN64G1bJvHofnY5h4eZEPzRJhHQEPs qwy4GzPp+9srKAdaOVD9o9ZAREt/yd7xn7kkDN5vjWKYb+yl8olWCqsDQRShre42SEEo T+Pr/HabeP5C3YDNcyXxK8O8zBm8NGZNRB6EIJpdgDmERmtVOJ36eQCIFUSB1cBdtTOM 1umg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760700121; x=1761304921; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=07Toi2vUIU+MWGlot8kMIQ1ee07JBmL9YfZNkL4sfI0=; b=DxAt1NhyvPyJWDLQhbBV0rYVK+4OgH8S3ku8ze95ETZWvbEHjVFN4rE92ZKNZjY2X+ C0QCPYy6D3UMT9u8mVY85Y5J/PgMjGYbEqWOk0wlFuhD3y93Ul9roIvSC34rqz4tuXL8 LEbcu0JGqPZJRzdTQF+1XJoIGl9cJW8q+EMZa6FLu8xy5QDV4qBkbQhvluSWLXcEPYLG AHknZrki2ctkeKZRmFuTAGq4GI+XOaSOeTLi6QjweCyLvScv5BmdUYj5LOiIDHhGNdOG Q3TeXMHWyRqDeKppCbYa9/Sp1NF983WeJlPP+dFFJT5PqAoLOcXi0Mg9V9H3nTkO72NP BkzA== X-Forwarded-Encrypted: i=1; AJvYcCW1DOahp7PwXkQKVvkvIdVDaN+1RrBu/Puk0R3HV7YOLMy7RI2cuiMI+I1dwGgIDQuq5kiOlrSZIYZ4Y1g=@vger.kernel.org X-Gm-Message-State: AOJu0YwpoDY+gJ+rJeyRX/Jy2nnYh3ifn0+Z4wLmnk1Xh8c4z3pXGQUw 6/JhPBdPBGkaiGMhCHoV/C9dRFTnU1tGeJe8UtKgtq45ExD5/5tWcStO X-Gm-Gg: ASbGnculWNiXAjoO2WfPFDFwSic7sr9phNrUw3fkAf+yquNUHCnFaMLGScmWxIRQBhZ lzu342fAnIBzty6IK95a2HWS8+wb8D324SfPToOQ0R1sHx6g1+6V17HTasGkJGYVLw/D4j9nCl/ Al+uNtvLCOv/S1Dn+PmxSapPHjQIgmfYu8CBIzAvY6vLEUIgzbW+8Q/fueuqQUnpua2/TqUAZOz mXid0rbbnqQQiqDJf2q360k+03/oet70kouFZE73h43mxFiLuye+J/KzKny4JzbVuLg5qgxVVco YbEjEXmwDsKHScmIC5oM0TTFD1IWi66/g6dOcn141QTYU36x9ZDy/fkJzgPZRfZ5ZGHhVMIDJdO Ce+JxOkxW3I86KiQj6vIbHkKOIk9XPSj8bS8RmGY0/o0tCswhuUsIVsEQvY9Ahygmw8c32lSl/D 6C4GwdYuaD8Ufw3u91jpHNGHjDFQkcvBXNnIAd5g== X-Google-Smtp-Source: AGHT+IFm4WIQFISVomrAFV51FZBLIpyrii3K7EFFJhRI3QtwYUrQCPmRYno3c3emRFDyrsQdPdKFXw== X-Received: by 2002:a17:907:7ea3:b0:b41:873d:e220 with SMTP id a640c23a62f3a-b6474f18597mr313933066b.50.1760700121004; Fri, 17 Oct 2025 04:22:01 -0700 (PDT) Received: from SMW024614.wbi.nxp.com ([128.77.115.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccd1af35fsm788256166b.60.2025.10.17.04.21.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Oct 2025 04:22:00 -0700 (PDT) From: Laurentiu Mihalcea To: Abel Vesa , Peng Fan , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Fabio Estevam , Philipp Zabel , Daniel Baluta , Shengjiu Wang Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team Subject: [PATCH v2 8/8] arm64: dts: imx8ulp: add sim lpav node Date: Fri, 17 Oct 2025 04:20:25 -0700 Message-ID: <20251017112025.11997-9-laurentiumihalcea111@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251017112025.11997-1-laurentiumihalcea111@gmail.com> References: <20251017112025.11997-1-laurentiumihalcea111@gmail.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: Laurentiu Mihalcea Add DT node for the SIM LPAV module. Signed-off-by: Laurentiu Mihalcea Reviewed-by: Daniel Baluta --- arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi b/arch/arm64/boot/d= ts/freescale/imx8ulp.dtsi index 13b01f3aa2a4..676535c3fc84 100644 --- a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi @@ -776,6 +776,23 @@ edma2: dma-controller@2d800000 { "ch28", "ch29", "ch30", "ch31"; }; =20 + sim_lpav: clock-controller@2da50000 { + compatible =3D "fsl,imx8ulp-sim-lpav"; + reg =3D <0x2da50000 0x10000>; + clocks =3D <&cgc2 IMX8ULP_CLK_LPAV_BUS_DIV>, + <&cgc2 IMX8ULP_CLK_HIFI_DIVCORE>, + <&cgc2 IMX8ULP_CLK_HIFI_DIVPLAT>; + clock-names =3D "lpav_bus", "hifi_core", "hifi_plat"; + #clock-cells =3D <1>; + #reset-cells =3D <1>; + + sim_lpav_mux: mux-controller { + compatible =3D "reg-mux"; + #mux-control-cells =3D <1>; + mux-reg-masks =3D <0x8 0x00000200>; + }; + }; + cgc2: clock-controller@2da60000 { compatible =3D "fsl,imx8ulp-cgc2"; reg =3D <0x2da60000 0x10000>; --=20 2.43.0