From patchwork Tue Nov 10 04:05:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893181 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C8E991668 for ; Tue, 10 Nov 2020 04:06:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B31C72080A for ; Tue, 10 Nov 2020 04:06:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733308AbgKJEGS (ORCPT ); Mon, 9 Nov 2020 23:06:18 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:49383 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731366AbgKJEGR (ORCPT ); Mon, 9 Nov 2020 23:06:17 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.7611352|0.8967155;CH=green;DM=|SPAM|false|;DS=CONTINUE|ham_system_inform|0.0234519-0.000501654-0.976046;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047188;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:10 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 01/19] pinctrl: sunxi: fix irq bank map for the Allwinner A100 pin controller Date: Tue, 10 Nov 2020 12:05:35 +0800 Message-Id: <20201110040553.1381-2-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li A100's pin starts with PB, so it should start with 1. Fixes: 473436e7647d6 ("pinctrl: sunxi: add support for the Allwinner A100 pin controller") Signed-off-by: Yangtao Li --- drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c b/drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c index 19cfd1e76ee2..e69f6da40dc0 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c +++ b/drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c @@ -677,7 +677,7 @@ static const struct sunxi_desc_pin a100_pins[] = { SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 19)), }; -static const unsigned int a100_irq_bank_map[] = { 0, 1, 2, 3, 4, 5, 6}; +static const unsigned int a100_irq_bank_map[] = { 1, 2, 3, 4, 5, 6, 7}; static const struct sunxi_pinctrl_desc a100_pinctrl_data = { .pins = a100_pins, From patchwork Tue Nov 10 04:05:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893213 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8C9021391 for ; Tue, 10 Nov 2020 04:07:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 75E09206A1 for ; Tue, 10 Nov 2020 04:07:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387451AbgKJEGU (ORCPT ); Mon, 9 Nov 2020 23:06:20 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:48822 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733277AbgKJEGU (ORCPT ); Mon, 9 Nov 2020 23:06:20 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.1946372|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.00566465-0.00129434-0.993041;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047202;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:13 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 02/19] pinctrl: sunxi: Mark the irq bank not found in sunxi_pinctrl_irq_handler() with WARN_ON Date: Tue, 10 Nov 2020 12:05:36 +0800 Message-Id: <20201110040553.1381-3-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li The interrupt descriptor cannot be found in the interrupt processing function, and this situation cannot happen when the system is running normally. It doesn't seem right to return directly to the status of not handling gic. In this case, it must be a bug, let's mark it with BUG_ON. Signed-off-by: Yangtao Li --- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c index 8e792f8e2dc9..9d8b59dafa4b 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c @@ -1139,8 +1139,7 @@ static void sunxi_pinctrl_irq_handler(struct irq_desc *desc) if (irq == pctl->irq[bank]) break; - if (bank == pctl->desc->irq_banks) - return; + WARN_ON(bank == pctl->desc->irq_banks); reg = sunxi_irq_status_reg_from_bank(pctl->desc, bank); val = readl(pctl->membase + reg); From patchwork Tue Nov 10 04:05:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893211 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6A8411391 for ; Tue, 10 Nov 2020 04:07:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5723920663 for ; Tue, 10 Nov 2020 04:07:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728403AbgKJEGZ (ORCPT ); Mon, 9 Nov 2020 23:06:25 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:50000 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387433AbgKJEGX (ORCPT ); Mon, 9 Nov 2020 23:06:23 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.2995258|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_regular_dialog|0.00377925-0.00159346-0.994627;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047188;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=29;RT=29;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:15 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li , stable@vger.kernel.org Subject: [PATCH 03/19] pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler Date: Tue, 10 Nov 2020 12:05:37 +0800 Message-Id: <20201110040553.1381-4-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li It is found on many allwinner soc that there is a low probability that the interrupt status cannot be read in sunxi_pinctrl_irq_handler. This will cause the interrupt status of a gpio bank to always be active on gic, preventing gic from responding to other spi interrupts correctly. So we should call the chained_irq_* each time enter sunxi_pinctrl_irq_handler(). Cc: stable@vger.kernel.org Signed-off-by: Yangtao Li --- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c index 9d8b59dafa4b..dc8d39ae045b 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c @@ -1141,20 +1141,22 @@ static void sunxi_pinctrl_irq_handler(struct irq_desc *desc) WARN_ON(bank == pctl->desc->irq_banks); + chained_irq_enter(chip, desc); + reg = sunxi_irq_status_reg_from_bank(pctl->desc, bank); val = readl(pctl->membase + reg); if (val) { int irqoffset; - chained_irq_enter(chip, desc); for_each_set_bit(irqoffset, &val, IRQ_PER_BANK) { int pin_irq = irq_find_mapping(pctl->domain, bank * IRQ_PER_BANK + irqoffset); generic_handle_irq(pin_irq); } - chained_irq_exit(chip, desc); } + + chained_irq_exit(chip, desc); } static int sunxi_pinctrl_add_function(struct sunxi_pinctrl *pctl, From patchwork Tue Nov 10 04:05:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893185 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9906915E6 for ; Tue, 10 Nov 2020 04:06:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 83DDF20663 for ; Tue, 10 Nov 2020 04:06:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387523AbgKJEG3 (ORCPT ); Mon, 9 Nov 2020 23:06:29 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:48526 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733307AbgKJEGZ (ORCPT ); Mon, 9 Nov 2020 23:06:25 -0500 X-Alimail-AntiSpam: AC=SUSPECT;BC=0.6465102|-1;BR=01201311R861b1;CH=blue;DM=|SUSPECT|false|;DS=CONTINUE|ham_system_inform|0.0102791-0.00112627-0.988595;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047202;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:17 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 04/19] dt-bindings: dma: allwinner,sun50i-a64-dma: Add A100 compatible Date: Tue, 10 Nov 2020 12:05:38 +0800 Message-Id: <20201110040553.1381-5-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li Add a binding for A100's dma controller. Signed-off-by: Yangtao Li --- .../devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml b/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml index 372679dbd216..b6e1ebfaf366 100644 --- a/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml +++ b/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml @@ -21,6 +21,7 @@ properties: compatible: oneOf: - const: allwinner,sun50i-a64-dma + - const: allwinner,sun50i-a100-dma - const: allwinner,sun50i-h6-dma - items: - const: allwinner,sun8i-r40-dma @@ -56,7 +57,9 @@ required: if: properties: compatible: - const: allwinner,sun50i-h6-dma + enum: + - allwinner,sun50i-a100-dma + - allwinner,sun50i-h6-dma then: properties: From patchwork Tue Nov 10 04:05:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893197 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2AEFD15E6 for ; Tue, 10 Nov 2020 04:06:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1A124206D8 for ; Tue, 10 Nov 2020 04:06:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387558AbgKJEGa (ORCPT ); Mon, 9 Nov 2020 23:06:30 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:33742 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387518AbgKJEGa (ORCPT ); Mon, 9 Nov 2020 23:06:30 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.3740237|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0519488-8.64106e-05-0.947965;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047207;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:19 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 05/19] dmaengine: sun6i: Add support for A100 DMA Date: Tue, 10 Nov 2020 12:05:39 +0800 Message-Id: <20201110040553.1381-6-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li The dma of a100 is similar to h6, with some minor changes to support greater addressing capabilities. Add support for it. Signed-off-by: Yangtao Li --- drivers/dma/sun6i-dma.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c index f5f9c86c50bc..5cadd4d2b824 100644 --- a/drivers/dma/sun6i-dma.c +++ b/drivers/dma/sun6i-dma.c @@ -1173,6 +1173,30 @@ static struct sun6i_dma_config sun50i_a64_dma_cfg = { BIT(DMA_SLAVE_BUSWIDTH_8_BYTES), }; +/* + * TODO: Add support for more than 4g physical addressing. + * + * The A100 binding uses the number of dma channels from the + * device tree node. + */ +static struct sun6i_dma_config sun50i_a100_dma_cfg = { + .clock_autogate_enable = sun6i_enable_clock_autogate_h3, + .set_burst_length = sun6i_set_burst_length_h3, + .set_drq = sun6i_set_drq_h6, + .set_mode = sun6i_set_mode_h6, + .src_burst_lengths = BIT(1) | BIT(4) | BIT(8) | BIT(16), + .dst_burst_lengths = BIT(1) | BIT(4) | BIT(8) | BIT(16), + .src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | + BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | + BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | + BIT(DMA_SLAVE_BUSWIDTH_8_BYTES), + .dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | + BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | + BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | + BIT(DMA_SLAVE_BUSWIDTH_8_BYTES), + .has_mbus_clk = true, +}; + /* * The H6 binding uses the number of dma channels from the * device tree node. @@ -1225,6 +1249,7 @@ static const struct of_device_id sun6i_dma_match[] = { { .compatible = "allwinner,sun8i-h3-dma", .data = &sun8i_h3_dma_cfg }, { .compatible = "allwinner,sun8i-v3s-dma", .data = &sun8i_v3s_dma_cfg }, { .compatible = "allwinner,sun50i-a64-dma", .data = &sun50i_a64_dma_cfg }, + { .compatible = "allwinner,sun50i-a100-dma", .data = &sun50i_a100_dma_cfg }, { .compatible = "allwinner,sun50i-h6-dma", .data = &sun50i_h6_dma_cfg }, { /* sentinel */ } }; From patchwork Tue Nov 10 04:05:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893205 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9CB071668 for ; Tue, 10 Nov 2020 04:06:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8729C2068D for ; Tue, 10 Nov 2020 04:06:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732616AbgKJEGy (ORCPT ); Mon, 9 Nov 2020 23:06:54 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:53880 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387513AbgKJEG3 (ORCPT ); Mon, 9 Nov 2020 23:06:29 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.1478366|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0231434-0.00763199-0.969225;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047199;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:22 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 06/19] arm64: allwinner: a100: Add device node for DMA controller Date: Tue, 10 Nov 2020 12:05:40 +0800 Message-Id: <20201110040553.1381-7-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li The A100 SoC has a DMA controller that supports 8 DMA channels to and from various peripherals. Add a device node for it. Signed-off-by: Yangtao Li --- arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi index cc321c04f121..c34ed8045363 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi @@ -101,6 +101,18 @@ ccu: clock@3001000 { #reset-cells = <1>; }; + dma: dma-controller@3002000 { + compatible = "allwinner,sun50i-a100-dma"; + reg = <0x03002000 0x1000>; + interrupts = ; + clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>; + clock-names = "bus", "mbus"; + dma-channels = <8>; + dma-requests = <51>; + resets = <&ccu RST_BUS_DMA>; + #dma-cells = <1>; + }; + gic: interrupt-controller@3021000 { compatible = "arm,gic-400"; reg = <0x03021000 0x1000>, <0x03022000 0x2000>, From patchwork Tue Nov 10 04:05:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893201 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 89AAC1668 for ; Tue, 10 Nov 2020 04:06:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7A8DB206A1 for ; Tue, 10 Nov 2020 04:06:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387644AbgKJEGq (ORCPT ); Mon, 9 Nov 2020 23:06:46 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:41716 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733073AbgKJEGc (ORCPT ); Mon, 9 Nov 2020 23:06:32 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.1456938|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.446168-0.0014012-0.552431;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047201;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:24 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 07/19] arm64: dts: allwinner: A100: Add PMU mode Date: Tue, 10 Nov 2020 12:05:41 +0800 Message-Id: <20201110040553.1381-8-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li Add the Performance Monitoring Unit (PMU) device tree node to the A100 .dtsi, which tells DT users which interrupts are triggered by PMU overflow events on each core. Signed-off-by: Yangtao Li --- arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi index c34ed8045363..01ff53b5a7a8 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi @@ -25,21 +25,21 @@ cpu0: cpu@0 { enable-method = "psci"; }; - cpu@1 { + cpu1: cpu@1 { compatible = "arm,cortex-a53"; device_type = "cpu"; reg = <0x1>; enable-method = "psci"; }; - cpu@2 { + cpu2: cpu@2 { compatible = "arm,cortex-a53"; device_type = "cpu"; reg = <0x2>; enable-method = "psci"; }; - cpu@3 { + cpu3: cpu@3 { compatible = "arm,cortex-a53"; device_type = "cpu"; reg = <0x3>; @@ -47,6 +47,15 @@ cpu@3 { }; }; + pmu { + compatible = "arm,cortex-a53-pmu"; + interrupts = , + , + , + ; + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; + }; + psci { compatible = "arm,psci-1.0"; method = "smc"; From patchwork Tue Nov 10 04:05:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893189 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 30C4715E6 for ; Tue, 10 Nov 2020 04:06:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1E113206A1 for ; Tue, 10 Nov 2020 04:06:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387579AbgKJEGe (ORCPT ); Mon, 9 Nov 2020 23:06:34 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:58744 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387554AbgKJEGd (ORCPT ); Mon, 9 Nov 2020 23:06:33 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.435386|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0424186-0.00157801-0.956003;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047206;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:26 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 08/19] phy: sun4i-usb: remove enable_pmu_unk1 from sun50i_h6_cfg Date: Tue, 10 Nov 2020 12:05:42 +0800 Message-Id: <20201110040553.1381-9-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li For the current code, enable_pmu_unk1 only works in non-a83t and non-h6 types. So let's delete it from the sun50i_h6_cfg. Signed-off-by: Yangtao Li --- drivers/phy/allwinner/phy-sun4i-usb.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index 651d5e2a25ce..0f1888b55dbd 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -969,7 +969,6 @@ static const struct sun4i_usb_phy_cfg sun50i_h6_cfg = { .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A33, .dedicated_clocks = true, - .enable_pmu_unk1 = true, .phy0_dual_route = true, .missing_phys = BIT(1) | BIT(2), }; From patchwork Tue Nov 10 04:05:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lee X-Patchwork-Id: 11893193 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3F1211391 for ; Tue, 10 Nov 2020 04:06:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 27BDE216C4 for ; Tue, 10 Nov 2020 04:06:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387613AbgKJEGg (ORCPT ); Mon, 9 Nov 2020 23:06:36 -0500 Received: from smtp2207-205.mail.aliyun.com ([121.197.207.205]:60098 "EHLO smtp2207-205.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387574AbgKJEGf (ORCPT ); Mon, 9 Nov 2020 23:06:35 -0500 X-Alimail-AntiSpam: AC=CONTINUE;BC=0.07436289|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.019185-0.0136594-0.967156;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047193;MF=frank@allwinnertech.com;NM=1;PH=DS;RN=28;RT=28;SR=0;TI=SMTPD_---.IulFdj5_1604981159; Received: from allwinnertech.com(mailfrom:frank@allwinnertech.com fp:SMTPD_---.IulFdj5_1604981159) by smtp.aliyun-inc.com(10.147.42.135); Tue, 10 Nov 2020 12:06:29 +0800 From: Frank Lee To: vkoul@kernel.org, robh+dt@kernel.org, mripard@kernel.org, wens@csie.org, ulf.hansson@linaro.org, kishon@ti.com, wim@linux-watchdog.org, linux@roeck-us.net, dan.j.williams@intel.com, linus.walleij@linaro.org, wsa+renesas@sang-engineering.com, dianders@chromium.org, marex@denx.de, colin.king@canonical.com, rdunlap@infradead.org, krzk@kernel.org, gregkh@linuxfoundation.org, megous@megous.com, rikard.falkeborn@gmail.com, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-gpio@vger.kernel.org, tiny.windzz@gmail.com Cc: Yangtao Li Subject: [PATCH 09/19] phy: allwinner: Convert to devm_platform_ioremap_* API Date: Tue, 10 Nov 2020 12:05:43 +0800 Message-Id: <20201110040553.1381-10-frank@allwinnertech.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201110040553.1381-1-frank@allwinnertech.com> References: <20201110040553.1381-1-frank@allwinnertech.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org From: Yangtao Li Use the devm_platform_ioremap_resource_byname() and devm_platform_ioremap_resource helper to simplify the code. Signed-off-by: Yangtao Li --- drivers/phy/allwinner/phy-sun4i-usb.c | 9 +++------ drivers/phy/allwinner/phy-sun50i-usb3.c | 4 +--- drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 4 +--- drivers/phy/allwinner/phy-sun9i-usb.c | 4 +--- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index 0f1888b55dbd..a6900495baa5 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -686,7 +686,6 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; struct phy_provider *phy_provider; - struct resource *res; int i, ret; data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); @@ -700,8 +699,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) if (!data->cfg) return -EINVAL; - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy_ctrl"); - data->base = devm_ioremap_resource(dev, res); + data->base = devm_platform_ioremap_resource_byname(pdev, "phy_ctrl"); if (IS_ERR(data->base)) return PTR_ERR(data->base); @@ -796,9 +794,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) if (i || data->cfg->phy0_dual_route) { /* No pmu for musb */ snprintf(name, sizeof(name), "pmu%d", i); - res = platform_get_resource_byname(pdev, - IORESOURCE_MEM, name); - phy->pmu = devm_ioremap_resource(dev, res); + phy->pmu = devm_platform_ioremap_resource_byname(pdev, + name); if (IS_ERR(phy->pmu)) return PTR_ERR(phy->pmu); } diff --git a/drivers/phy/allwinner/phy-sun50i-usb3.c b/drivers/phy/allwinner/phy-sun50i-usb3.c index b1c04f71a31d..84055b720016 100644 --- a/drivers/phy/allwinner/phy-sun50i-usb3.c +++ b/drivers/phy/allwinner/phy-sun50i-usb3.c @@ -134,7 +134,6 @@ static int sun50i_usb3_phy_probe(struct platform_device *pdev) struct sun50i_usb3_phy *phy; struct device *dev = &pdev->dev; struct phy_provider *phy_provider; - struct resource *res; phy = devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL); if (!phy) @@ -153,8 +152,7 @@ static int sun50i_usb3_phy_probe(struct platform_device *pdev) return PTR_ERR(phy->reset); } - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - phy->regs = devm_ioremap_resource(dev, res); + phy->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(phy->regs)) return PTR_ERR(phy->regs); diff --git a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c index 1fa761ba6cbb..f0bc87d654d4 100644 --- a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c +++ b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c @@ -253,15 +253,13 @@ static int sun6i_dphy_probe(struct platform_device *pdev) { struct phy_provider *phy_provider; struct sun6i_dphy *dphy; - struct resource *res; void __iomem *regs; dphy = devm_kzalloc(&pdev->dev, sizeof(*dphy), GFP_KERNEL); if (!dphy) return -ENOMEM; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - regs = devm_ioremap_resource(&pdev->dev, res); + regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(regs)) { dev_err(&pdev->dev, "Couldn't map the DPHY encoder registers\n"); return PTR_ERR(regs); diff --git a/drivers/phy/allwinner/phy-sun9i-usb.c b/drivers/phy/allwinner/phy-sun9i-usb.c index fc6784dd7fa0..2f9e60c188b8 100644 --- a/drivers/phy/allwinner/phy-sun9i-usb.c +++ b/drivers/phy/allwinner/phy-sun9i-usb.c @@ -117,7 +117,6 @@ static int sun9i_usb_phy_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; struct phy_provider *phy_provider; - struct resource *res; phy = devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL); if (!phy) @@ -156,8 +155,7 @@ static int sun9i_usb_phy_probe(struct platform_device *pdev) } } - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - phy->pmu = devm_ioremap_resource(dev, res); + phy->pmu = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(phy->pmu)) return PTR_ERR(phy->pmu);