From patchwork Fri Jan 14 06:24:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guochun Mao X-Patchwork-Id: 12713414 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 62A62C433F5 for ; Fri, 14 Jan 2022 06:25:53 +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=UCKAq/De8/6kXlEfRl5b4lOFxXDYh241YijJMZUkoiA=; b=EwdhVKDJWAAtxA CdHZRfBq7gEXY8/aLE2NGa4gWUzp2nXe09k7I4Yv9mKPKR1qUtNghn4aHIy7ACXPEXWv0HauycxT0 d/C+TjQ2FRQ4yElZGvnROmX4J9UpsjrQXKxmWlTXyc43W8XdUohaC4nr+J+90r7kBdACracDICAlg OBnYZxn/ftz/aj3vNqVeSFLfjoASMMZ2E1xHvAyyhSDlDlySvYqYeQP6ayLo+btihMZT14orGk7Xw g0FDlxJQLkGebBRL/tkaBB3PKMcEojw8LqCL31hffWFiDdfEHxJ/3QY0tVGoAPNl0f+aCCtX7CaJu D24D0X000E4C35X8nsPg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1z-007uJ1-MZ; Fri, 14 Jan 2022 06:25:47 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1u-007uGX-1A for linux-mediatek@lists.infradead.org; Fri, 14 Jan 2022 06:25:44 +0000 X-UUID: 6014bbeaeef94811920300eedad0b23a-20220113 X-UUID: 6014bbeaeef94811920300eedad0b23a-20220113 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 522874373; Thu, 13 Jan 2022 23:24:28 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 13 Jan 2022 22:24:27 -0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.15; Fri, 14 Jan 2022 14:24:26 +0800 Received: from localhost.localdomain (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Jan 2022 14:24:25 +0800 From: To: Mark Brown , Rob Herring , Matthias Brugger CC: Zhen Zhang , Bayi Cheng , Chuanhong Guo , , , "Guochun Mao" Subject: [PATCH v1 1/4] dt-bindings: spi: add mt8186-nor compatible string Date: Fri, 14 Jan 2022 14:24:05 +0800 Message-ID: <20220114062408.9077-2-guochun.mao@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220114062408.9077-1-guochun.mao@mediatek.com> References: <20220114062408.9077-1-guochun.mao@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220113_222542_123895_AD1B1E46 X-CRM114-Status: UNSURE ( 8.29 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Guochun Mao Add MT8186 spi-nor controller support. MT8186 needs a new clock name, axi_s, for spi nor axi slave bus clock. Signed-off-by: Guochun Mao Signed-off-by: Zhen Zhang --- .../devicetree/bindings/spi/mediatek,spi-mtk-nor.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/spi/mediatek,spi-mtk-nor.yaml b/Documentation/devicetree/bindings/spi/mediatek,spi-mtk-nor.yaml index 4e4694e3d539..1a678751bcca 100644 --- a/Documentation/devicetree/bindings/spi/mediatek,spi-mtk-nor.yaml +++ b/Documentation/devicetree/bindings/spi/mediatek,spi-mtk-nor.yaml @@ -30,6 +30,7 @@ properties: - mediatek,mt7622-nor - mediatek,mt7623-nor - mediatek,mt7629-nor + - mediatek,mt8186-nor - mediatek,mt8192-nor - mediatek,mt8195-nor - enum: @@ -49,6 +50,8 @@ properties: - description: clock used for controller - description: clock used for nor dma bus. this depends on hardware design, so this is optional. + - description: clock used for controller axi slave bus. this depens + on hardwre design, so this is optional. clock-names: minItems: 2 @@ -56,6 +59,7 @@ properties: - const: spi - const: sf - const: axi + - const: axi_s required: - compatible From patchwork Fri Jan 14 06:24:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guochun Mao X-Patchwork-Id: 12713415 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 AE5D9C433EF for ; Fri, 14 Jan 2022 06:25:54 +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=26Rw3jgAUStbsOGuCagjKy6IxgU0W5ui/af6HtF/2Zk=; b=QLuY6LM7n/GJ9w AdXk+ym2CLLwt4E6e/92LOjdfCRgQ/eMVaAsVsJJXvTe16W6V2LC4EglxIBlE3FJ9WyoV0Fwrb+PK /WkI7ZnpP9pHeZ2OmBkq3LzACcmlkAArUawA5YRguaWCBXuKUBi1TIOqyYFVy2PqWJzEZuNsrLnY/ Tnz3NcT7bGHlNzVnqPjIaA3oStW+/LKsZSyZkm19Cslw2L6NrNfcriYTQwMO+aWeXsIXA+YbzMBAE PQt0DOyp2ia3cUYjop4fGmvlFY3Ir/QOgmdorFqKvH9MHD6xOBuoJK28ey4zOqgQlZjQqAreQ5G3y AM9hYGHzbIe0Jy0GUGLg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G20-007uJd-QY; Fri, 14 Jan 2022 06:25:48 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1u-007uFF-PA for linux-mediatek@lists.infradead.org; Fri, 14 Jan 2022 06:25:44 +0000 X-UUID: 45672ae946f5485aa8463f226cdc4e96-20220113 X-UUID: 45672ae946f5485aa8463f226cdc4e96-20220113 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1686142913; Thu, 13 Jan 2022 23:24:29 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 13 Jan 2022 22:24:28 -0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.3; Fri, 14 Jan 2022 14:24:26 +0800 Received: from localhost.localdomain (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Jan 2022 14:24:26 +0800 From: To: Mark Brown , Rob Herring , Matthias Brugger CC: Zhen Zhang , Bayi Cheng , Chuanhong Guo , , , "Guochun Mao" Subject: [PATCH v1 2/4] spi: spi-mtk-nor: improve device table for adding more capabilities Date: Fri, 14 Jan 2022 14:24:06 +0800 Message-ID: <20220114062408.9077-3-guochun.mao@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220114062408.9077-1-guochun.mao@mediatek.com> References: <20220114062408.9077-1-guochun.mao@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220113_222542_863094_B9DC1556 X-CRM114-Status: GOOD ( 15.19 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Guochun Mao Define a structure for adding more capabilities. Signed-off-by: Guochun Mao Signed-off-by: Zhen Zhang --- drivers/spi/spi-mtk-nor.c | 40 +++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c index 5c93730615f8..f3bcdc1d4d8b 100644 --- a/drivers/spi/spi-mtk-nor.c +++ b/drivers/spi/spi-mtk-nor.c @@ -95,6 +95,11 @@ #define CLK_TO_US(sp, clkcnt) DIV_ROUND_UP(clkcnt, sp->spi_freq / 1000000) +struct mtk_nor_caps { + u32 dma_bits; + u32 extra_dummy_bit; +}; + struct mtk_nor { struct spi_controller *ctlr; struct device *dev; @@ -109,6 +114,7 @@ struct mtk_nor { bool has_irq; bool high_dma; struct completion op_done; + const struct mtk_nor_caps *caps; }; static inline void mtk_nor_rmw(struct mtk_nor *sp, u32 reg, u32 set, u32 clr) @@ -554,7 +560,12 @@ static int mtk_nor_spi_mem_prg(struct mtk_nor *sp, const struct spi_mem_op *op) } // trigger op - writel(prg_len * BITS_PER_BYTE, sp->base + MTK_NOR_REG_PRG_CNT); + if (rx_len) + writel(prg_len * BITS_PER_BYTE + sp->caps->extra_dummy_bit, + sp->base + MTK_NOR_REG_PRG_CNT); + else + writel(prg_len * BITS_PER_BYTE, sp->base + MTK_NOR_REG_PRG_CNT); + ret = mtk_nor_cmd_exec(sp, MTK_NOR_CMD_PROGRAM, prg_len * BITS_PER_BYTE); if (ret) @@ -743,9 +754,19 @@ static const struct spi_controller_mem_ops mtk_nor_mem_ops = { .exec_op = mtk_nor_exec_op }; +const struct mtk_nor_caps mtk_nor_caps_mt8173 = { + .dma_bits = 32, + .extra_dummy_bit = 0, +}; + +const struct mtk_nor_caps mtk_nor_caps_mt8192 = { + .dma_bits = 36, + .extra_dummy_bit = 0, +}; + static const struct of_device_id mtk_nor_match[] = { - { .compatible = "mediatek,mt8192-nor", .data = (void *)36 }, - { .compatible = "mediatek,mt8173-nor", .data = (void *)32 }, + { .compatible = "mediatek,mt8173-nor", .data = &mtk_nor_caps_mt8173 }, + { .compatible = "mediatek,mt8192-nor", .data = &mtk_nor_caps_mt8192 }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, mtk_nor_match); @@ -754,10 +775,10 @@ static int mtk_nor_probe(struct platform_device *pdev) { struct spi_controller *ctlr; struct mtk_nor *sp; + struct mtk_nor_caps *caps; void __iomem *base; struct clk *spi_clk, *ctlr_clk, *axi_clk; int ret, irq; - unsigned long dma_bits; base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(base)) @@ -775,9 +796,11 @@ static int mtk_nor_probe(struct platform_device *pdev) if (IS_ERR(axi_clk)) return PTR_ERR(axi_clk); - dma_bits = (unsigned long)of_device_get_match_data(&pdev->dev); - if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(dma_bits))) { - dev_err(&pdev->dev, "failed to set dma mask(%lu)\n", dma_bits); + caps = (struct mtk_nor_caps *)of_device_get_match_data(&pdev->dev); + if (dma_set_mask_and_coherent(&pdev->dev, + DMA_BIT_MASK(caps->dma_bits))) { + dev_err(&pdev->dev, "failed to set dma mask(%u)\n", + caps->dma_bits); return -EINVAL; } @@ -808,7 +831,8 @@ static int mtk_nor_probe(struct platform_device *pdev) sp->spi_clk = spi_clk; sp->ctlr_clk = ctlr_clk; sp->axi_clk = axi_clk; - sp->high_dma = (dma_bits > 32); + sp->caps = caps; + sp->high_dma = caps->dma_bits > 32; sp->buffer = dmam_alloc_coherent(&pdev->dev, MTK_NOR_BOUNCE_BUF_SIZE + MTK_NOR_DMA_ALIGN, &sp->buffer_dma, GFP_KERNEL); From patchwork Fri Jan 14 06:24:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guochun Mao X-Patchwork-Id: 12713411 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 5951EC433EF for ; Fri, 14 Jan 2022 06:25: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: 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=76kihvIEkFDM03t2xmvAgJl8Dphg7v1kM6e/JvmsQOE=; b=s8FuaoFIWRKGsx ZMo+09nAR3TBST6jOOiTvblkzKyGZof/5NC+SdCVe/NHR9u3lbZxTLy4wzYqk+nKSOS25T2CQs0VR hSQ2I5ypX04NTTdDzoL4RqSo7IlWysGBW/t0GD0qLe2yTa7IXfCVO+WbEe63WZvrXnpkqSXk1aJ+W lO0tIyh/gMxf+1GlgXuxz//MZoBb/RCzOTb92hoEHpkX8TudmJoH/kh0kmQtgQOK+e5Rs05tmFrOS zxIz/ANLCe1CmQc557kh4gNFSQQOwUMwJHUtQv9pbdOX+u3/+Qa6pUlsfjn2G31J1VI3iHSWlUzoT gN2+7kDYuD9MLXbuge3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1v-007uHb-T3; Fri, 14 Jan 2022 06:25:43 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1t-007uFF-CV for linux-mediatek@lists.infradead.org; Fri, 14 Jan 2022 06:25:42 +0000 X-UUID: 86805ab0c9a844a59b6868a01a3414db-20220113 X-UUID: 86805ab0c9a844a59b6868a01a3414db-20220113 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1803527018; Thu, 13 Jan 2022 23:24:29 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 13 Jan 2022 22:24:28 -0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.15; Fri, 14 Jan 2022 14:24:27 +0800 Received: from localhost.localdomain (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Jan 2022 14:24:26 +0800 From: To: Mark Brown , Rob Herring , Matthias Brugger CC: Zhen Zhang , Bayi Cheng , Chuanhong Guo , , , "Guochun Mao" Subject: [PATCH v1 3/4] spi: spi-mtk-nor: add new soc mt8186 support Date: Fri, 14 Jan 2022 14:24:07 +0800 Message-ID: <20220114062408.9077-4-guochun.mao@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220114062408.9077-1-guochun.mao@mediatek.com> References: <20220114062408.9077-1-guochun.mao@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220113_222541_457564_F8276E92 X-CRM114-Status: UNSURE ( 8.95 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Guochun Mao Add compatible mediatek,mt8186-nor implementation. Signed-off-by: Guochun Mao Signed-off-by: Zhen Zhang --- drivers/spi/spi-mtk-nor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c index f3bcdc1d4d8b..f8f6e6c1b551 100644 --- a/drivers/spi/spi-mtk-nor.c +++ b/drivers/spi/spi-mtk-nor.c @@ -759,6 +759,11 @@ const struct mtk_nor_caps mtk_nor_caps_mt8173 = { .extra_dummy_bit = 0, }; +const struct mtk_nor_caps mtk_nor_caps_mt8186 = { + .dma_bits = 32, + .extra_dummy_bit = 1, +}; + const struct mtk_nor_caps mtk_nor_caps_mt8192 = { .dma_bits = 36, .extra_dummy_bit = 0, @@ -766,6 +771,7 @@ const struct mtk_nor_caps mtk_nor_caps_mt8192 = { static const struct of_device_id mtk_nor_match[] = { { .compatible = "mediatek,mt8173-nor", .data = &mtk_nor_caps_mt8173 }, + { .compatible = "mediatek,mt8186-nor", .data = &mtk_nor_caps_mt8186 }, { .compatible = "mediatek,mt8192-nor", .data = &mtk_nor_caps_mt8192 }, { /* sentinel */ } }; From patchwork Fri Jan 14 06:24:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guochun Mao X-Patchwork-Id: 12713412 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 3A4B8C433F5 for ; Fri, 14 Jan 2022 06:25: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: 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=8B4fJq1zBjT7lENrFDwa3wQZGnWjUissLn0C3TlgBx8=; b=I0xtznHzC/U09A ChJF9+qK6+nVOuNS5tz+TafDWsyJ7pkigQbHlouCBjGEmucA7Xy+XtDmZ1AC/xK1ogv9kGq+C8ak+ g0QRKF+h56qLI/dtGkH7eT8VIp84iXEgtzHXYQBGAchUlQMwlJ6vpdEfFyqx5ttQSLnQo+n2c9PWG FMdghXk414BHIoleVklNqyXSdy/390rKce59rhQkVAjexBvbSkZ7qaOdoG7b+D1tnPvPvfBGH6SVs W/xtxWG1oCWST+xBx32UcO4PMeje/j1fBGJSUulaKEIerSHGXnZCSTon8AraPkNweQt+t7OWMNJRf gNPrFuXpdFjke24oghOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1w-007uHy-RZ; Fri, 14 Jan 2022 06:25:44 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n8G1t-007uFU-MS for linux-mediatek@lists.infradead.org; Fri, 14 Jan 2022 06:25:43 +0000 X-UUID: 6241643c74ea4ef4938b82980dc24244-20220113 X-UUID: 6241643c74ea4ef4938b82980dc24244-20220113 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 452551414; Thu, 13 Jan 2022 23:24:29 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 13 Jan 2022 22:24:28 -0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.3; Fri, 14 Jan 2022 14:24:28 +0800 Received: from localhost.localdomain (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Jan 2022 14:24:27 +0800 From: To: Mark Brown , Rob Herring , Matthias Brugger CC: Zhen Zhang , Bayi Cheng , Chuanhong Guo , , , "Guochun Mao" Subject: [PATCH v1 4/4] spi: spi-mtk-nor: add axi_s clock for mt8186 Date: Fri, 14 Jan 2022 14:24:08 +0800 Message-ID: <20220114062408.9077-5-guochun.mao@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220114062408.9077-1-guochun.mao@mediatek.com> References: <20220114062408.9077-1-guochun.mao@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220113_222541_764759_0E683D7B X-CRM114-Status: GOOD ( 12.37 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Guochun Mao MT8186 needs axi_s clock for DMA feature. Signed-off-by: Guochun Mao Signed-off-by: Zhen Zhang Acked-by: AngeloGioacchino Del Regno --- drivers/spi/spi-mtk-nor.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c index f8f6e6c1b551..4ccbac674ff7 100644 --- a/drivers/spi/spi-mtk-nor.c +++ b/drivers/spi/spi-mtk-nor.c @@ -109,6 +109,7 @@ struct mtk_nor { struct clk *spi_clk; struct clk *ctlr_clk; struct clk *axi_clk; + struct clk *axi_s_clk; unsigned int spi_freq; bool wbuf_en; bool has_irq; @@ -685,6 +686,7 @@ static void mtk_nor_disable_clk(struct mtk_nor *sp) clk_disable_unprepare(sp->spi_clk); clk_disable_unprepare(sp->ctlr_clk); clk_disable_unprepare(sp->axi_clk); + clk_disable_unprepare(sp->axi_s_clk); } static int mtk_nor_enable_clk(struct mtk_nor *sp) @@ -708,6 +710,14 @@ static int mtk_nor_enable_clk(struct mtk_nor *sp) return ret; } + ret = clk_prepare_enable(sp->axi_s_clk); + if (ret) { + clk_disable_unprepare(sp->spi_clk); + clk_disable_unprepare(sp->ctlr_clk); + clk_disable_unprepare(sp->axi_clk); + return ret; + } + return 0; } @@ -783,7 +793,7 @@ static int mtk_nor_probe(struct platform_device *pdev) struct mtk_nor *sp; struct mtk_nor_caps *caps; void __iomem *base; - struct clk *spi_clk, *ctlr_clk, *axi_clk; + struct clk *spi_clk, *ctlr_clk, *axi_clk, *axi_s_clk; int ret, irq; base = devm_platform_ioremap_resource(pdev, 0); @@ -802,6 +812,10 @@ static int mtk_nor_probe(struct platform_device *pdev) if (IS_ERR(axi_clk)) return PTR_ERR(axi_clk); + axi_s_clk = devm_clk_get_optional(&pdev->dev, "axi_s"); + if (IS_ERR(axi_s_clk)) + return PTR_ERR(axi_s_clk); + caps = (struct mtk_nor_caps *)of_device_get_match_data(&pdev->dev); if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(caps->dma_bits))) { @@ -837,6 +851,7 @@ static int mtk_nor_probe(struct platform_device *pdev) sp->spi_clk = spi_clk; sp->ctlr_clk = ctlr_clk; sp->axi_clk = axi_clk; + sp->axi_s_clk = axi_s_clk; sp->caps = caps; sp->high_dma = caps->dma_bits > 32; sp->buffer = dmam_alloc_coherent(&pdev->dev,