From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 456C2C27C75 for ; Thu, 13 Jun 2024 09:20:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=csLKQFD6Tcenf8eJdKO/adEt8f/6C41cqRO+iDbL3zg=; b=G/UMu8w1EQvtCxzNm2n/R+F1CV 4hKjgH3LAslwp95d4u7r76fG1pRdE/R455Ulj0dvY/Z1Yf7NsbrC7yJGwmwQ2qwEX1Ppax8vW9aBI jWFtrPLMdgirncufN82vB8zocq097xXogeIgWB4K0GXNY73m/lUGqf7D1hdhceewyFv7QLMvkjp7b QRjx9Bq+gdlhkF4/J1YsZn34kZ86dJ35w4v+3FpcZM3m2jB1+00nrdwfQguRmnwpjLGJJzU892sH+ p7iFUNblvt72oZ4ZaYTcBL/U2cSuhNI8TFN136l7SYsgyC+WfqQbi8qWO9zk3pU6JxR8P5T7zLuKq VKjQ2u4Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sHgdI-0000000Fvfg-0PGK; Thu, 13 Jun 2024 09:20:36 +0000 Received: from mail-io1-xd33.google.com ([2607:f8b0:4864:20::d33]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sHgdF-0000000FveT-2Tqu for linux-arm-kernel@lists.infradead.org; Thu, 13 Jun 2024 09:20:35 +0000 Received: by mail-io1-xd33.google.com with SMTP id ca18e2360f4ac-7e21dfbc310so29646939f.1 for ; Thu, 13 Jun 2024 02:20:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718270429; x=1718875229; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=csLKQFD6Tcenf8eJdKO/adEt8f/6C41cqRO+iDbL3zg=; b=iGxmXkQaWdfaFMGBBgxO1mXCasba3+ja5WxARyEATvHFPJLSQwXJd709r1Pq1Ay8j0 4+GCqoSv/w2oj0D0gC30U52LK03Z2KqnaeNt+QKmJaSUD3U7mX8uiqyXh1lb+E0yyjQ2 tO1NFLRZavfUlJLQEFH0grXTDc5KR97ZVkyGBwNsMMlR9owMXqwEi6GffkR/twFwM38y EPQc+urvLcjZ0tWG6xH5LwTPJMb4EEhTdYpmz8hgJP5qjlp7DTvnH0tPZ+0y7zO+SrJw eWhuPdr4gDuhoUJcDtFOWPYZqSxND/fXJC5rzkNMX8GFPXKG0zEBB5aKX83At/5rPWZN 43WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718270429; x=1718875229; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=csLKQFD6Tcenf8eJdKO/adEt8f/6C41cqRO+iDbL3zg=; b=WLUaFPP9/m3iITNJ4/DchDk2vVSZadyaHbqnes4m22uEIHwQsWySr/Z+QJ0ky/9YNV DWN/d03VdPFVFZ77I3l9MIVX7W2I9BRjwKqUJpccf3o2QZKJ04BuMApBDtOZR/doIE85 kNsD4MPPChRKD4xG0mhOOQ+bP35m7aCGXyMiG2DqG0SCfbrqBdhgxmQuT8oSxKpqHvdB JTnzprAAtcgenHlXK5cK2qk5k3pmt9rqT28aSKHf0B8FaPbuu+sfsSiwhwYjo7ucJgY7 9mVtxXNQjFnWOGeYtOzbQK6zJ5GFbzkwpkm6opGJIQ8r9oB+rOfRBbJ9wuTHt2JMWm+p pVTw== X-Forwarded-Encrypted: i=1; AJvYcCU45wjLf2sBI9ibAcDPAbEnKSknZGuKLkZGBsAbSKCuQn55x12VA63MjkvTTwH7njY5zOIXEMlqxg4+pMyjT8cK6YoeJ2lBTwCSRDJKeEInIoG87zM= X-Gm-Message-State: AOJu0YyIfUYmdQkTF8pM8fLpFAcEQOTJTNLBsjVNAMvq1oa3k75hHaY0 hVMc3OX/sj6MX30kZ3ydbjD8aRcgmIKSlqFHMofio7xtqx4wkhK2kWOnd89ERl3a2fCD3AyUtlh OqdZ6K3hqDHqI8AUFrVaJQaQnaes= X-Google-Smtp-Source: AGHT+IFed9H5JM1SrGJtb2+Kf28Ibrp0V6KX2iqKvtXKbBzLKEMT/llRVLx61dEjDWZmVwx1MrI8K71JhP7Jr+l1hlY= X-Received: by 2002:a92:ca06:0:b0:375:a994:6de0 with SMTP id e9e14a558f8ab-375cd177970mr48444765ab.13.1718270429288; Thu, 13 Jun 2024 02:20:29 -0700 (PDT) MIME-Version: 1.0 References: <1718243482-18552-1-git-send-email-shengjiu.wang@nxp.com> <1718243482-18552-3-git-send-email-shengjiu.wang@nxp.com> <20240613081949.yty3hznopp3u2qwq@pengutronix.de> In-Reply-To: <20240613081949.yty3hznopp3u2qwq@pengutronix.de> From: Shengjiu Wang Date: Thu, 13 Jun 2024 17:20:18 +0800 Message-ID: Subject: Re: [PATCH v7 2/5] clk: imx: clk-audiomix: Add reset controller To: Marco Felsch Cc: Shengjiu Wang , p.zabel@pengutronix.de, abelvesa@kernel.org, peng.fan@nxp.com, mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, marex@denx.de, linux-clk@vger.kernel.org, imx@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240613_022033_661747_BBB0C1C9 X-CRM114-Status: GOOD ( 27.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Jun 13, 2024 at 4:20=E2=80=AFPM Marco Felsch wrote: > > On 24-06-13, Shengjiu Wang wrote: > > Audiomix block control can be a reset controller for > > Enhanced Audio Return Channel (EARC), which is one of > > modules in this audiomix subsystem. > > > > The reset controller is supported by the auxiliary device > > framework. > > > > Signed-off-by: Shengjiu Wang > > Reviewed-by: Frank Li > > --- > > drivers/clk/imx/Kconfig | 1 + > > drivers/clk/imx/clk-imx8mp-audiomix.c | 63 +++++++++++++++++++++++++++ > > 2 files changed, 64 insertions(+) > > > > diff --git a/drivers/clk/imx/Kconfig b/drivers/clk/imx/Kconfig > > index 6da0fba68225..9edfb030bea9 100644 > > --- a/drivers/clk/imx/Kconfig > > +++ b/drivers/clk/imx/Kconfig > > @@ -81,6 +81,7 @@ config CLK_IMX8MP > > tristate "IMX8MP CCM Clock Driver" > > depends on ARCH_MXC || COMPILE_TEST > > select MXC_CLK > > + select AUXILIARY_BUS > > select AUXILIARY_BUS if RESET_CONTROLLER Do we really need this change? I checked other drivers like MCHP_CLK_MPFS, but they don't have this condition also. > > > help > > Build the driver for i.MX8MP CCM Clock Driver > > > > diff --git a/drivers/clk/imx/clk-imx8mp-audiomix.c b/drivers/clk/imx/cl= k-imx8mp-audiomix.c > > index b381d6f784c8..517b1f88661b 100644 > > --- a/drivers/clk/imx/clk-imx8mp-audiomix.c > > +++ b/drivers/clk/imx/clk-imx8mp-audiomix.c > > @@ -5,6 +5,7 @@ > > * Copyright (C) 2022 Marek Vasut > > */ > > > > +#include > > #include > > #include > > #include > > @@ -13,6 +14,7 @@ > > #include > > #include > > #include > > +#include > ^ > This is an unrelated change. This is for the fix of this issue https://lore.kernel.org/oe-kbuild-all/202405201844.zf7UkDmq-lkp@intel.com/ Best regards Shengjiu wang > > Regards, > Marco > > > > > #include > > > > @@ -217,6 +219,63 @@ struct clk_imx8mp_audiomix_priv { > > struct clk_hw_onecell_data clk_data; > > }; > > > > +#if IS_ENABLED(CONFIG_RESET_CONTROLLER) > > + > > +static void clk_imx8mp_audiomix_reset_unregister_adev(void *_adev) > > +{ > > + struct auxiliary_device *adev =3D _adev; > > + > > + auxiliary_device_delete(adev); > > + auxiliary_device_uninit(adev); > > +} > > + > > +static void clk_imx8mp_audiomix_reset_adev_release(struct device *dev) > > +{ > > + struct auxiliary_device *adev =3D to_auxiliary_dev(dev); > > + > > + kfree(adev); > > +} > > + > > +static int clk_imx8mp_audiomix_reset_controller_register(struct device= *dev, > > + struct clk_imx8m= p_audiomix_priv *priv) > > +{ > > + struct auxiliary_device *adev __free(kfree) =3D NULL; > > + int ret; > > + > > + if (!of_property_present(dev->of_node, "#reset-cells")) > > + return 0; > > + > > + adev =3D kzalloc(sizeof(*adev), GFP_KERNEL); > > + if (!adev) > > + return -ENOMEM; > > + > > + adev->name =3D "reset"; > > + adev->dev.parent =3D dev; > > + adev->dev.release =3D clk_imx8mp_audiomix_reset_adev_release; > > + > > + ret =3D auxiliary_device_init(adev); > > + if (ret) > > + return ret; > > + > > + ret =3D auxiliary_device_add(adev); > > + if (ret) { > > + auxiliary_device_uninit(adev); > > + return ret; > > + } > > + > > + return devm_add_action_or_reset(dev, clk_imx8mp_audiomix_reset_un= register_adev, > > + no_free_ptr(adev)); > > +} > > + > > +#else /* !CONFIG_RESET_CONTROLLER */ > > + > > +static int clk_imx8mp_audiomix_reset_controller_register(struct clk_im= x8mp_audiomix_priv *priv) > > +{ > > + return 0; > > +} > > + > > +#endif /* !CONFIG_RESET_CONTROLLER */ > > + > > static void clk_imx8mp_audiomix_save_restore(struct device *dev, bool = save) > > { > > struct clk_imx8mp_audiomix_priv *priv =3D dev_get_drvdata(dev); > > @@ -337,6 +396,10 @@ static int clk_imx8mp_audiomix_probe(struct platfo= rm_device *pdev) > > if (ret) > > goto err_clk_register; > > > > + ret =3D clk_imx8mp_audiomix_reset_controller_register(dev, priv); > > + if (ret) > > + goto err_clk_register; > > + > > pm_runtime_put_sync(dev); > > return 0; > > > > -- > > 2.34.1 > > > > > >