diff mbox

[v2,1/2] power/reset: at91-reset: add samx7 support

Message ID 20170117230738.28257-1-alexandre.belloni@free-electrons.com
State New
Headers show

Commit Message

Alexandre Belloni Jan. 17, 2017, 11:07 p.m. UTC
From: Szemző András <sza@esh.hu>

Add samx7 support. It is lacking a few bits and needs a new reset function.

Signed-off-by: Szemző András <sza@esh.hu>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
 drivers/power/reset/at91-reset.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Sebastian Reichel Jan. 18, 2017, 4:48 a.m. UTC | #1
Hi Alexandre,

On Wed, Jan 18, 2017 at 12:07:37AM +0100, Alexandre Belloni wrote:
> From: Szemző András <sza@esh.hu>
> 
> Add samx7 support. It is lacking a few bits and needs a new reset function.
> 
> Signed-off-by: Szemző András <sza@esh.hu>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
>  drivers/power/reset/at91-reset.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
> index 568580cf0655..bb2588f0a4c7 100644
> --- a/drivers/power/reset/at91-reset.c
> +++ b/drivers/power/reset/at91-reset.c
> @@ -134,6 +134,15 @@ static int sama5d3_restart(struct notifier_block *this, unsigned long mode,
>  	return NOTIFY_DONE;
>  }
>  
> +static int samx7_restart(struct notifier_block *this, unsigned long mode,
> +			 void *cmd)
> +{
> +	writel(cpu_to_le32(AT91_RSTC_KEY | AT91_RSTC_PROCRST),
> +	       at91_rstc_base);
> +
> +	return NOTIFY_DONE;
> +}
> +
>  static void __init at91_reset_status(struct platform_device *pdev)
>  {
>  	u32 reg = readl(at91_rstc_base + AT91_RSTC_SR);
> @@ -173,6 +182,7 @@ static const struct of_device_id at91_reset_of_match[] = {
>  	{ .compatible = "atmel,at91sam9260-rstc", .data = at91sam9260_restart },
>  	{ .compatible = "atmel,at91sam9g45-rstc", .data = at91sam9g45_restart },
>  	{ .compatible = "atmel,sama5d3-rstc", .data = sama5d3_restart },
> +	{ .compatible = "atmel,samx7-rstc", .data = samx7_restart },
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, at91_reset_of_match);

Thanks, queued into power-supply's for-next branch.

-- Sebastian
Sebastian Reichel Jan. 18, 2017, 4:48 a.m. UTC | #2
Hi Alexandre,

On Wed, Jan 18, 2017 at 12:07:38AM +0100, Alexandre Belloni wrote:
> commit eacd8d09db7f ("power/reset: at91-reset: remove useless
> at91_reset_platform_probe()") removed non DT probe support but forgot to
> remove the now useless id_table. Do that now.
> 
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
>  drivers/power/reset/at91-reset.c | 8 --------
>  1 file changed, 8 deletions(-)
> 
> diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
> index bb2588f0a4c7..b99769f8ab15 100644
> --- a/drivers/power/reset/at91-reset.c
> +++ b/drivers/power/reset/at91-reset.c
> @@ -248,20 +248,12 @@ static int __exit at91_reset_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static const struct platform_device_id at91_reset_plat_match[] = {
> -	{ "at91-sam9260-reset", (unsigned long)at91sam9260_restart },
> -	{ "at91-sam9g45-reset", (unsigned long)at91sam9g45_restart },
> -	{ /* sentinel */ }
> -};
> -MODULE_DEVICE_TABLE(platform, at91_reset_plat_match);
> -
>  static struct platform_driver at91_reset_driver = {
>  	.remove = __exit_p(at91_reset_remove),
>  	.driver = {
>  		.name = "at91-reset",
>  		.of_match_table = at91_reset_of_match,
>  	},
> -	.id_table = at91_reset_plat_match,
>  };
>  module_platform_driver_probe(at91_reset_driver, at91_reset_probe);

Thanks, also queued into power-supply's for-next branch.

-- Sebastian
diff mbox

Patch

diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
index 568580cf0655..bb2588f0a4c7 100644
--- a/drivers/power/reset/at91-reset.c
+++ b/drivers/power/reset/at91-reset.c
@@ -134,6 +134,15 @@  static int sama5d3_restart(struct notifier_block *this, unsigned long mode,
 	return NOTIFY_DONE;
 }
 
+static int samx7_restart(struct notifier_block *this, unsigned long mode,
+			 void *cmd)
+{
+	writel(cpu_to_le32(AT91_RSTC_KEY | AT91_RSTC_PROCRST),
+	       at91_rstc_base);
+
+	return NOTIFY_DONE;
+}
+
 static void __init at91_reset_status(struct platform_device *pdev)
 {
 	u32 reg = readl(at91_rstc_base + AT91_RSTC_SR);
@@ -173,6 +182,7 @@  static const struct of_device_id at91_reset_of_match[] = {
 	{ .compatible = "atmel,at91sam9260-rstc", .data = at91sam9260_restart },
 	{ .compatible = "atmel,at91sam9g45-rstc", .data = at91sam9g45_restart },
 	{ .compatible = "atmel,sama5d3-rstc", .data = sama5d3_restart },
+	{ .compatible = "atmel,samx7-rstc", .data = samx7_restart },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, at91_reset_of_match);