From patchwork Fri Dec 17 10:29:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Quadros X-Patchwork-Id: 525233 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D63B5C433EF for ; Fri, 17 Dec 2021 10:29:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234989AbhLQK37 (ORCPT ); Fri, 17 Dec 2021 05:29:59 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:46938 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234984AbhLQK36 (ORCPT ); Fri, 17 Dec 2021 05:29:58 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 61799B82787; Fri, 17 Dec 2021 10:29:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5A8CC36AEB; Fri, 17 Dec 2021 10:29:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1639736996; bh=u60Gy+HM2Cz89/HOSt7nvfcnD1OA0GjqWTWcgPWp9g8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TyH9WORJA9a0ANLDyP5GYNJJNM3NDiOk2limKfOvgDEOzPLLZTWKtcjQtHC4VbmyB ae5Qm2s/mjcNM5RUY5UkXr9p7RyjafFQ0E2HkGSznnYK5emM68/7eEJPBUwaoV6OCx EQ5Jd748wk3GMWQwR/xJjnejO59cFlR/pdrsflWX89scF9+m7XWs2gG3Ln1JCSrRr6 SC2KgpEVdpXGP+mQ1ik/Vxg6W9KW7wN5vX/7GbBrbwMvPAHIJx3GKCt9g6sx33u05P lLdNupglN+COedh8lQdkuMtMqk8RqZ6A2Em8e+Xm4anvNpBo/6XXh/bOcR5OcND9wh FguEj1hcbV4Xw== From: Roger Quadros To: krzysztof.kozlowski@canonical.com, tony@atomide.com Cc: robh@kernel.org, kishon@ti.com, nm@ti.com, vigneshr@ti.com, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Roger Quadros Subject: [PATCH v3 1/4] dt-bindings: memory-controllers: ti,gpmc: Add compatible for AM64 Date: Fri, 17 Dec 2021 12:29:42 +0200 Message-Id: <20211217102945.17432-2-rogerq@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211217102945.17432-1-rogerq@kernel.org> References: <20211217102945.17432-1-rogerq@kernel.org> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org AM64 SoC contains the GPMC module. Add compatible for it. Newer SoCs don't necessarily map GPMC data region at the same place as legacy SoCs. Add reg-names "data", to provide this information to the device driver. Signed-off-by: Roger Quadros Reviewed-by: Rob Herring --- .../bindings/memory-controllers/ti,gpmc.yaml | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml b/Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml index 25b42d68f9b3..64dc9d398d9a 100644 --- a/Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml +++ b/Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml @@ -23,13 +23,20 @@ properties: items: - enum: - ti,am3352-gpmc + - ti,am64-gpmc - ti,omap2420-gpmc - ti,omap2430-gpmc - ti,omap3430-gpmc - ti,omap4430-gpmc reg: - maxItems: 1 + minItems: 1 + maxItems: 2 + + reg-names: + items: + - const: cfg + - const: data interrupts: maxItems: 1 @@ -44,6 +51,9 @@ properties: items: - const: fck + power-domains: + maxItems: 1 + dmas: items: - description: DMA channel for GPMC NAND prefetch @@ -133,6 +143,17 @@ required: - "#address-cells" - "#size-cells" +allOf: + - if: + properties: + compatible: + contains: + const: ti,am64-gpmc + then: + required: + - reg-names + - power-domains + additionalProperties: false examples: From patchwork Fri Dec 17 10:29:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Quadros X-Patchwork-Id: 525232 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4543C433EF for ; Fri, 17 Dec 2021 10:30:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235030AbhLQKaE (ORCPT ); Fri, 17 Dec 2021 05:30:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235014AbhLQKaD (ORCPT ); Fri, 17 Dec 2021 05:30:03 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 44586C06173E; Fri, 17 Dec 2021 02:30:03 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D0CF4620F7; Fri, 17 Dec 2021 10:30:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FF9AC36AE8; Fri, 17 Dec 2021 10:29:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1639737002; bh=33+oNgZLqDGwuRKfoQVGuh5cPLd3WugMokzWh54u7Sg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AOWtCCx9Lq5tSKEtfCacLJwWBVzGQF2dilHSi3qbWGnGMNv4rbPO6AkFPZOexePBT 0wZwikFaPw8nxQkiyTrzfOFIG+kiHs0UwnG2LRgAOcNCoUVWTz+H4sLj8yXTIRK2bl ypJFsCo+vC7/6DSpfYmoe4ta81PdTgwiM6LcmaASGO+dHs9HX/a1SPepYjyj1yyL8S ETm+pZsW9Z8Z9eiDMhcKHUEqowlNoGlajhA1/U7UVjDr3CYTvg7fgBTl5BxMaSxKP+ /mvvR98NJZRSi7Oy+I7nD0C1TZNcOh+KkntxFPQTSulsXtbCaM+UHheLZ7S8D863LY frfH2NnlnjjGg== From: Roger Quadros To: krzysztof.kozlowski@canonical.com, tony@atomide.com Cc: robh@kernel.org, kishon@ti.com, nm@ti.com, vigneshr@ti.com, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Roger Quadros Subject: [PATCH v3 3/4] memory: omap-gpmc: Use a compatible match table when checking for NAND controller Date: Fri, 17 Dec 2021 12:29:44 +0200 Message-Id: <20211217102945.17432-4-rogerq@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211217102945.17432-1-rogerq@kernel.org> References: <20211217102945.17432-1-rogerq@kernel.org> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org As more compatibles can be added to the GPMC NAND controller driver use a compatible match table. Signed-off-by: Roger Quadros --- drivers/memory/omap-gpmc.c | 8 +++++++- drivers/mtd/nand/raw/omap2.c | 2 +- include/linux/platform_data/mtd-nand-omap2.h | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c index 624153048182..814ddb45c13d 100644 --- a/drivers/memory/omap-gpmc.c +++ b/drivers/memory/omap-gpmc.c @@ -2091,6 +2091,7 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, u32 val; struct gpio_desc *waitpin_desc = NULL; struct gpmc_device *gpmc = platform_get_drvdata(pdev); + bool is_nand = false; if (of_property_read_u32(child, "reg", &cs) < 0) { dev_err(&pdev->dev, "%pOF has no 'reg' property\n", @@ -2183,7 +2184,12 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, } } - if (of_device_is_compatible(child, "ti,omap2-nand")) { +#if defined(CONFIG_MTD_NAND_OMAP2) + if (of_match_node(omap_nand_ids, child)) + is_nand = true; +#endif + + if (is_nand) { /* NAND specific setup */ val = 8; of_property_read_u32(child, "nand-bus-width", &val); diff --git a/drivers/mtd/nand/raw/omap2.c b/drivers/mtd/nand/raw/omap2.c index b26d4947af02..fff834ee726f 100644 --- a/drivers/mtd/nand/raw/omap2.c +++ b/drivers/mtd/nand/raw/omap2.c @@ -2352,7 +2352,7 @@ static int omap_nand_remove(struct platform_device *pdev) return ret; } -static const struct of_device_id omap_nand_ids[] = { +const struct of_device_id omap_nand_ids[] = { { .compatible = "ti,omap2-nand", }, {}, }; diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h index de6ada739121..e1bb90a8db03 100644 --- a/include/linux/platform_data/mtd-nand-omap2.h +++ b/include/linux/platform_data/mtd-nand-omap2.h @@ -61,4 +61,9 @@ struct gpmc_nand_regs { void __iomem *gpmc_bch_result5[GPMC_BCH_NUM_REMAINDER]; void __iomem *gpmc_bch_result6[GPMC_BCH_NUM_REMAINDER]; }; + +#if defined(CONFIG_MTD_NAND_OMAP2) +extern const struct of_device_id omap_nand_ids[]; +#endif + #endif