From: "Paweł Anikiel" <pan@semihalf.com> To: miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, arnd@arndb.de, olof@lixom.net, soc@kernel.org, dinguyen@kernel.org, p.zabel@pengutronix.de Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tn@semihalf.com, ka@semihalf.com, jam@semihalf.com, "Paweł Anikiel" <pan@semihalf.com> Subject: [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe Date: Mon, 20 Sep 2021 14:41:41 +0200 [thread overview] Message-ID: <20210920124141.1166544-4-pan@semihalf.com> (raw) Message-ID: <20210920124141.dOhXof_mbq7fNGtevvmYnhhpG15cTTgPtsQcSOqhER8@z> (raw) In-Reply-To: <20210920124141.1166544-1-pan@semihalf.com> The early reset driver doesn't ever probe, which causes consuming devices to be unable to probe. Add an empty driver to set this device as available, allowing consumers to probe. Signed-off-by: Paweł Anikiel <pan@semihalf.com> --- drivers/reset/reset-socfpga.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c index 2a72f861f798..8c6492e5693c 100644 --- a/drivers/reset/reset-socfpga.c +++ b/drivers/reset/reset-socfpga.c @@ -92,3 +92,29 @@ void __init socfpga_reset_init(void) for_each_matching_node(np, socfpga_early_reset_dt_ids) a10_reset_init(np); } + +/* + * The early driver is problematic, because it doesn't register + * itself as a driver. This causes certain device links to prevent + * consumer devices from probing. The hacky solution is to register + * an empty driver, whose only job is to attach itself to the reset + * manager and call probe. + */ +static const struct of_device_id socfpga_reset_dt_ids[] = { + { .compatible = "altr,rst-mgr", }, + { /* sentinel */ }, +}; + +static int reset_simple_probe(struct platform_device *pdev) +{ + return 0; +} + +static struct platform_driver reset_socfpga_driver = { + .probe = reset_simple_probe, + .driver = { + .name = "socfpga-reset", + .of_match_table = socfpga_reset_dt_ids, + }, +}; +builtin_platform_driver(reset_socfpga_driver); -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: "Paweł Anikiel" <pan@semihalf.com> To: miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, arnd@arndb.de, olof@lixom.net, soc@kernel.org, dinguyen@kernel.org, p.zabel@pengutronix.de Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tn@semihalf.com, ka@semihalf.com, jam@semihalf.com, "Paweł Anikiel" <pan@semihalf.com> Subject: [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe Date: Mon, 20 Sep 2021 14:41:41 +0200 [thread overview] Message-ID: <20210920124141.1166544-4-pan@semihalf.com> (raw) Message-ID: <20210920124141.JdM5MZ3f1S-9LX9nm82jPdIhY7l0A7lZ2d-bZYtFV74@z> (raw) In-Reply-To: <20210920124141.1166544-1-pan@semihalf.com> The early reset driver doesn't ever probe, which causes consuming devices to be unable to probe. Add an empty driver to set this device as available, allowing consumers to probe. Signed-off-by: Paweł Anikiel <pan@semihalf.com> --- drivers/reset/reset-socfpga.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c index 2a72f861f798..8c6492e5693c 100644 --- a/drivers/reset/reset-socfpga.c +++ b/drivers/reset/reset-socfpga.c @@ -92,3 +92,29 @@ void __init socfpga_reset_init(void) for_each_matching_node(np, socfpga_early_reset_dt_ids) a10_reset_init(np); } + +/* + * The early driver is problematic, because it doesn't register + * itself as a driver. This causes certain device links to prevent + * consumer devices from probing. The hacky solution is to register + * an empty driver, whose only job is to attach itself to the reset + * manager and call probe. + */ +static const struct of_device_id socfpga_reset_dt_ids[] = { + { .compatible = "altr,rst-mgr", }, + { /* sentinel */ }, +}; + +static int reset_simple_probe(struct platform_device *pdev) +{ + return 0; +} + +static struct platform_driver reset_socfpga_driver = { + .probe = reset_simple_probe, + .driver = { + .name = "socfpga-reset", + .of_match_table = socfpga_reset_dt_ids, + }, +}; +builtin_platform_driver(reset_socfpga_driver); -- 2.25.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2021-09-20 12:45 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <20210920124138.7Rv4Bat-mDXSJL5_d7ykDRJFDCAMP3dSiZm0nDPMaDU@z> 2021-09-20 12:41 ` [PATCH 0/3] Add support for the Mercury+ AA1 module Paweł Anikiel 2021-09-20 12:41 ` Paweł Anikiel [not found] ` <20210920124139.jQM-Tqzr63A2Hs1WHPqhhGaUuJiNYaCWKRl5YiR4iTA@z> 2021-09-20 12:41 ` [PATCH 1/3] dt-bindings: mtd: spi-nor: add n25q00 schema Paweł Anikiel 2021-09-20 12:41 ` Paweł Anikiel [not found] ` <20210923165648.FCg577uaG9fWz1MINUjzq_6XdotxOakHUOjndV9cMBM@z> 2021-09-23 16:56 ` Rob Herring 2021-09-23 16:56 ` Rob Herring [not found] ` <20210923185904.twJ5GB7t8omyZ7RKqA5bcaS2QzsOxfghoI6XXJrCzfc@z> 2021-09-23 18:59 ` Pratyush Yadav 2021-09-23 18:59 ` Pratyush Yadav [not found] ` <20211005115906.sVeqCk7Lbj-UbEQBqo8aQDAVjC_bmmDQ6QaO3ChH2n4@z> 2021-10-05 11:59 ` Tudor.Ambarus 2021-10-05 11:59 ` Tudor.Ambarus [not found] ` <20210920124140.RZTw5kTlMXDVKDMnzhD0FZ5oHIQ_cZ6kTSSrKdQw9WU@z> 2021-09-20 12:41 ` [PATCH 2/3] dts: socfpga: Add Mercury+ AA1 devicetree Paweł Anikiel 2021-09-20 12:41 ` Paweł Anikiel [not found] ` <20210923165624.wCIpZMuEaOTqgzTIVio-auukBwIkYM1Ik1HRSlI8hTg@z> 2021-09-23 16:56 ` Rob Herring 2021-09-23 16:56 ` Rob Herring [not found] ` <20210920124141.dOhXof_mbq7fNGtevvmYnhhpG15cTTgPtsQcSOqhER8@z> 2021-09-20 12:41 ` Paweł Anikiel [this message] 2021-09-20 12:41 ` [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe Paweł Anikiel [not found] ` <20211005093407.6FCAsOZYukqdChGyMhvCtKU-0iQe1qmWgVVlQSxU-40@z> 2021-10-05 9:34 ` Philipp Zabel 2021-10-05 9:34 ` Philipp Zabel 2021-10-05 9:34 ` Philipp Zabel [not found] ` <20211005111205.yhacoo2AdAdnUkQ86NaPU0ASEexP3rjoqfZSlZF-dlI@z> 2021-10-05 11:12 ` Paweł Anikiel [not found] ` <20211005102225.PzZXA7w0Qn5d_3_cHQbe86EPWtaa_CBoQpc89EEeouA@z> 2021-10-05 10:22 ` Philipp Zabel 2021-10-05 10:22 ` Philipp Zabel 2021-10-05 10:22 ` Philipp Zabel 2021-10-05 11:12 ` Paweł Anikiel 2021-10-05 11:12 ` Paweł Anikiel
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210920124141.1166544-4-pan@semihalf.com \ --to=pan@semihalf.com \ --cc=arnd@arndb.de \ --cc=devicetree@vger.kernel.org \ --cc=dinguyen@kernel.org \ --cc=jam@semihalf.com \ --cc=ka@semihalf.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=miquel.raynal@bootlin.com \ --cc=olof@lixom.net \ --cc=p.zabel@pengutronix.de \ --cc=richard@nod.at \ --cc=robh+dt@kernel.org \ --cc=soc@kernel.org \ --cc=tn@semihalf.com \ --cc=vigneshr@ti.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).