From patchwork Fri Mar 4 16:15:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 12769439 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 1BBE7C433F5 for ; Fri, 4 Mar 2022 16:29:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AIk5LQT1h0ZALXQcL++Bp+ObnlENmvarbp8EjCL9mB8=; b=m/aGGR0oL8Wbc4 9VUJtDGgVqUl4ZINjv40ub0gu7gntA+iN7Qu7J9VDOmzaf+dqyd9+C2fj5wHFLWxH4Nr2XsQj3gbA J4Qk9PIlBi1Q3fmT6SSfSyi14B72L34XQt0ilR3pSNcVrXAWXSkXalPD5cEVaWQ2aqXIK1waSQnTv ScjaMX6z73tYw0b9TwklV5DtdKQo0j9gMLpIc48iyndALWzHWBC/P/chSSutO2Q/xYoLDkdxrSQr2 NKOWnyJO/jOoBjf4iXdgdvjJIEwTeZ9wLmuLV5Z0FSxeBmA7nSMHj81nCXSjyqr4ItcPt78RRBK5p O6c7ujVT6vBjiWxZ4V3g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nQAm4-00B2Q5-1U; Fri, 04 Mar 2022 16:27:24 +0000 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nQAaa-00AxqB-VO for linux-arm-kernel@lists.infradead.org; Fri, 04 Mar 2022 16:15:37 +0000 Received: by mail-wr1-x431.google.com with SMTP id j26so3056181wrb.1 for ; Fri, 04 Mar 2022 08:15:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=n+My/nqfiMsUFME5jSzdOaKmEvDAySulF7VBL4+IJf4=; b=PnqV9wYmLqfFTc4OFJc5UAuaMvtmWEJJN1yL6Rm7H2Q2mStp4J3ChxMgn06ydCvXyK UVRtV/otmLgWI2azaSmPvS4xLdRkV3dkpCcAM6LMGr8w+AwDloylveLMcJBdDQosT0q5 KPsoJe0mc+UridMf98U3NAi8nlEXwLZWoGI3R2UzOvVn1t8KlwaJZlZvWSBH4JdmARrb akkAOnaXLWabkA7OwsKaB8vjC2N/RQOQJb3V3D7vfckSt1zL+lkoaFiaTEfO/g8DDgbe zgYKdl4HKH63UGK6xrr+AByFwFqoA8+ajW49r1XlNolMOOXw3kyLLtWl1STMzHFKGZZ+ zIiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=n+My/nqfiMsUFME5jSzdOaKmEvDAySulF7VBL4+IJf4=; b=r2rKKAJmvgvqBk3gBYJ76lfOrmdZp6wFw07kabD8gXNVYUcb5Siyn/p8JpzeTO3clj Z+bW8TX878dzyeTx8q0NsQNbwV1H3+c53uS6Dq3KLGnLmOcA7D+FS8EAKA1Ni4aXHMmZ 6rWBuXy4xuaHx6i8ZmZaUfyL1zz8yreMzaxFNOkIN9/Vj1k+tkg/hxnu4LAXq4mXBJSa ESfQP0xg3t2KuzESmrETcwcp7/HKve0iL2Q43ivyLRilXlJk1Agl79M9ARzSpInX5l3H E3+89Z3EZc9FdbWVFITfUKL2EXDLf1ac8ZnEVT4Ff7iVWcKzMhSO9hxwDC5aSz2REA64 Wd+Q== X-Gm-Message-State: AOAM5301wTA8FtQ19XDs409FfC6RuXzjEvwLXgKT7GkOvd2WU2i3XWgf LeIHLuVOyUEi6LETWgwtSr/cGw== X-Google-Smtp-Source: ABdhPJyfHIvzkrsMlpfQsnDvygOuOwOVs1EDwFq3zpjNDBuNMMUBYWWaEnz39fCgj1Cxh74/FkXKDg== X-Received: by 2002:adf:ef81:0:b0:1f0:95f:30a7 with SMTP id d1-20020adfef81000000b001f0095f30a7mr13676692wro.636.1646410531281; Fri, 04 Mar 2022 08:15:31 -0800 (PST) Received: from xps-9300.baylibre (laubervilliers-658-1-213-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id g6-20020a5d5406000000b001f049726044sm4937307wrv.79.2022.03.04.08.15.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Mar 2022 08:15:30 -0800 (PST) From: Alexandre Bailon To: ohad@wizery.com, bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, robh+dt@kernel.or Cc: matthias.bgg@gmail.com, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, stephane.leprovost@mediatek.com, khilman@baylibre.com, Julien STEPHAN , Alexandre Bailon Subject: [PATCH v4 5/7] remoteproc: mtk_apu: Use match_data Date: Fri, 4 Mar 2022 17:15:12 +0100 Message-Id: <20220304161514.994128-6-abailon@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220304161514.994128-1-abailon@baylibre.com> References: <20220304161514.994128-1-abailon@baylibre.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220304_081533_045656_CA5EE639 X-CRM114-Status: GOOD ( 18.44 ) 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 From: Julien STEPHAN This commits prepare the driver to be more generic in order to support multiple platform using the compatible property. To do that, put some register values and the clocks names inside private data. Signed-off-by: Julien STEPHAN Signed-off-by: Alexandre Bailon --- drivers/remoteproc/mtk_apu.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/drivers/remoteproc/mtk_apu.c b/drivers/remoteproc/mtk_apu.c index 3905eb5b7174..deec51b86ba5 100644 --- a/drivers/remoteproc/mtk_apu.c +++ b/drivers/remoteproc/mtk_apu.c @@ -58,12 +58,20 @@ #define APU_RESET_DELAY (27) +struct mtk_apu_conf { + u32 core_default0; + u32 core_default1; + u32 num_clks; + const char * const *clk_names; +}; + struct mtk_apu_rproc { struct device *dev; void __iomem *base; int irq; unsigned int num_clks; struct clk_bulk_data *clks; + struct mtk_apu_conf *conf; struct iommu_domain *domain; struct list_head mappings; @@ -81,6 +89,13 @@ static const char * const mt8183_clk_names[] = { "jtag" }; +static const struct mtk_apu_conf mt8183_conf = { + .core_default0 = (0x10 << 23) | (0x10 << 18), + .core_default1 = (0x10 << 0) | (0x10 << 5), + .num_clks = ARRAY_SIZE(mt8183_clk_names), + .clk_names = mt8183_clk_names +}; + static int mtk_apu_iommu_map(struct rproc *rproc, struct rproc_mem_entry *entry) { struct mtk_apu_rproc *apu_rproc = rproc->priv; @@ -289,10 +304,9 @@ static int mtk_apu_rproc_start(struct rproc *rproc) writel(core_ctrl, apu_rproc->base + CORE_CTRL); /* Configure memory accesses to go through the IOMMU */ - writel(CORE_DEFAULT0_AWUSER_USE_IOMMU | CORE_DEFAULT0_ARUSER_USE_IOMMU | - CORE_DEFAULT0_QOS_SWAP_1, apu_rproc->base + CORE_DEFAULT0); - writel(CORE_DEFAULT0_AWUSER_IDMA_USE_IOMMU | - CORE_DEFAULT0_ARUSER_IDMA_USE_IOMMU, + writel(apu_rproc->conf->core_default0 | CORE_DEFAULT0_QOS_SWAP_1, + apu_rproc->base + CORE_DEFAULT0); + writel(apu_rproc->conf->core_default1, apu_rproc->base + CORE_DEFAULT1); /* Release the APU */ @@ -565,11 +579,18 @@ static int mtk_apu_rproc_probe(struct platform_device *pdev) goto free_rproc; } - apu_rproc->num_clks = ARRAY_SIZE(mt8183_clk_names); + + apu_rproc->conf = (struct mtk_apu_conf *)device_get_match_data(dev); + if (!apu_rproc->conf) { + ret = -ENODEV; + goto free_rproc; + } + + apu_rproc->num_clks = apu_rproc->conf->num_clks; apu_rproc->clks = devm_kcalloc(dev, apu_rproc->num_clks, sizeof(*apu_rproc->clks), GFP_KERNEL); for (i = 0; i < apu_rproc->num_clks; ++i) - apu_rproc->clks[i].id = mt8183_clk_names[i]; + apu_rproc->clks[i].id = apu_rproc->conf->clk_names[i]; ret = devm_clk_bulk_get(dev, apu_rproc->num_clks, apu_rproc->clks); if (ret) { @@ -611,7 +632,7 @@ static int mtk_apu_rproc_remove(struct platform_device *pdev) } static const struct of_device_id mtk_apu_rproc_of_match[] = { - { .compatible = "mediatek,mt8183-apu", }, + { .compatible = "mediatek,mt8183-apu", .data = &mt8183_conf }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, mtk_apu_rproc_of_match);