From: Claudiu Beznea <[email protected]>
Hi,
This series adapt SAMA5D2's shutdown controller driver to work for
SAM9X60's shutdown controller. The difference is that SAM9X60 have
option for RTT timer wakeup.
Thank you,
Claudiu Beznea
Changes in v2:
- collect Acked-by tags
- in patch 3/3 use "optional microchip,sam9x60-shdwc properties"
string to specify that the introduced property is only for
microchip,sam9x60-shdwc as specified above in case of
atmel,<chip>-shdwc shutdown controllers
- in patch 3/3 keep only the optional property introduced by
microchip,sam9x60-shwdwc (atmel,wakeup-rtt-timer)
Claudiu Beznea (3):
power: reset: at91-poweroff: add RTT wakeup capability
power: reset: at91-poweroff: add support for SAM9X60
dt-bindings: arm: atmel: add binding for SAM9X60 shutdown controller
.../devicetree/bindings/arm/atmel-sysregs.txt | 6 +++++-
drivers/power/reset/at91-sama5d2_shdwc.c | 25 ++++++++++++++++++++++
2 files changed, 30 insertions(+), 1 deletion(-)
--
2.7.4
From: Claudiu Beznea <[email protected]>
Add RTT wakeup capability.
Signed-off-by: Claudiu Beznea <[email protected]>
Acked-by: Nicolas Ferre <[email protected]>
---
drivers/power/reset/at91-sama5d2_shdwc.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/power/reset/at91-sama5d2_shdwc.c b/drivers/power/reset/at91-sama5d2_shdwc.c
index 2b686c55b717..0747e0cdf350 100644
--- a/drivers/power/reset/at91-sama5d2_shdwc.c
+++ b/drivers/power/reset/at91-sama5d2_shdwc.c
@@ -57,15 +57,21 @@
#define SHDW_WK_PIN(reg, cfg) ((reg) & AT91_SHDW_WKUPIS((cfg)->wkup_pin_input))
#define SHDW_RTCWK(reg, cfg) (((reg) >> ((cfg)->sr_rtcwk_shift)) & 0x1)
+#define SHDW_RTTWK(reg, cfg) (((reg) >> ((cfg)->sr_rttwk_shift)) & 0x1)
#define SHDW_RTCWKEN(cfg) (1 << ((cfg)->mr_rtcwk_shift))
+#define SHDW_RTTWKEN(cfg) (1 << ((cfg)->mr_rttwk_shift))
#define DBC_PERIOD_US(x) DIV_ROUND_UP_ULL((1000000 * (x)), \
SLOW_CLOCK_FREQ)
+#define SHDW_CFG_NOT_USED (32)
+
struct shdwc_config {
u8 wkup_pin_input;
u8 mr_rtcwk_shift;
+ u8 mr_rttwk_shift;
u8 sr_rtcwk_shift;
+ u8 sr_rttwk_shift;
};
struct shdwc {
@@ -104,6 +110,8 @@ static void __init at91_wakeup_status(struct platform_device *pdev)
reason = "WKUP pin";
else if (SHDW_RTCWK(reg, shdw->cfg))
reason = "RTC";
+ else if (SHDW_RTTWK(reg, shdw->cfg))
+ reason = "RTT";
pr_info("AT91: Wake-Up source: %s\n", reason);
}
@@ -221,6 +229,9 @@ static void at91_shdwc_dt_configure(struct platform_device *pdev)
if (of_property_read_bool(np, "atmel,wakeup-rtc-timer"))
mode |= SHDW_RTCWKEN(shdw->cfg);
+ if (of_property_read_bool(np, "atmel,wakeup-rtt-timer"))
+ mode |= SHDW_RTTWKEN(shdw->cfg);
+
dev_dbg(&pdev->dev, "%s: mode = %#x\n", __func__, mode);
writel(mode, shdw->shdwc_base + AT91_SHDW_MR);
@@ -231,7 +242,10 @@ static void at91_shdwc_dt_configure(struct platform_device *pdev)
static const struct shdwc_config sama5d2_shdwc_config = {
.wkup_pin_input = 0,
.mr_rtcwk_shift = 17,
+ .mr_rttwk_shift = SHDW_CFG_NOT_USED,
.sr_rtcwk_shift = 5,
+ .sr_rttwk_shift = SHDW_CFG_NOT_USED,
+};
};
static const struct of_device_id at91_shdwc_of_match[] = {
--
2.7.4
From: Claudiu Beznea <[email protected]>
Add support for SAM9X60 shutdown controller.
Signed-off-by: Claudiu Beznea <[email protected]>
Acked-by: Nicolas Ferre <[email protected]>
---
drivers/power/reset/at91-sama5d2_shdwc.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/power/reset/at91-sama5d2_shdwc.c b/drivers/power/reset/at91-sama5d2_shdwc.c
index 0747e0cdf350..e341cc5c0ea6 100644
--- a/drivers/power/reset/at91-sama5d2_shdwc.c
+++ b/drivers/power/reset/at91-sama5d2_shdwc.c
@@ -246,12 +246,23 @@ static const struct shdwc_config sama5d2_shdwc_config = {
.sr_rtcwk_shift = 5,
.sr_rttwk_shift = SHDW_CFG_NOT_USED,
};
+
+static const struct shdwc_config sam9x60_shdwc_config = {
+ .wkup_pin_input = 0,
+ .mr_rtcwk_shift = 17,
+ .mr_rttwk_shift = 16,
+ .sr_rtcwk_shift = 5,
+ .sr_rttwk_shift = 4,
};
static const struct of_device_id at91_shdwc_of_match[] = {
{
.compatible = "atmel,sama5d2-shdwc",
.data = &sama5d2_shdwc_config,
+ },
+ {
+ .compatible = "microchip,sam9x60-shdwc",
+ .data = &sam9x60_shdwc_config,
}, {
/*sentinel*/
}
--
2.7.4
From: Claudiu Beznea <[email protected]>
Add documentation for SAM9X60 shutdown controller.
Signed-off-by: Claudiu Beznea <[email protected]>
---
Documentation/devicetree/bindings/arm/atmel-sysregs.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
index 14f319f694b7..50f282ccbcb7 100644
--- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
@@ -83,7 +83,7 @@ SHDWC SAMA5D2-Compatible Shutdown Controller
1) shdwc node
required properties:
-- compatible: should be "atmel,sama5d2-shdwc".
+- compatible: should be "atmel,sama5d2-shdwc" or "microchip,sam9x60-shdwc".
- reg: should contain registers location and length
- clocks: phandle to input clock.
- #address-cells: should be one. The cell is the wake-up input index.
@@ -95,6 +95,9 @@ optional properties:
microseconds. It's usually a board-related property.
- atmel,wakeup-rtc-timer: boolean to enable Real-Time Clock wake-up.
+optional microchip,sam9x60-shdwc properties:
+- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
+
The node contains child nodes for each wake-up input that the platform uses.
2) input nodes
--
2.7.4
On 21/02/2019 at 14:45, Claudiu Beznea - M18063 wrote:
> From: Claudiu Beznea <[email protected]>
>
> Add documentation for SAM9X60 shutdown controller.
>
> Signed-off-by: Claudiu Beznea <[email protected]>
Acked-by: Nicolas Ferre <[email protected]>
Thanks Claudiu. Regards,
Nicolas
> ---
> Documentation/devicetree/bindings/arm/atmel-sysregs.txt | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
> index 14f319f694b7..50f282ccbcb7 100644
> --- a/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
> +++ b/Documentation/devicetree/bindings/arm/atmel-sysregs.txt
> @@ -83,7 +83,7 @@ SHDWC SAMA5D2-Compatible Shutdown Controller
> 1) shdwc node
>
> required properties:
> -- compatible: should be "atmel,sama5d2-shdwc".
> +- compatible: should be "atmel,sama5d2-shdwc" or "microchip,sam9x60-shdwc".
> - reg: should contain registers location and length
> - clocks: phandle to input clock.
> - #address-cells: should be one. The cell is the wake-up input index.
> @@ -95,6 +95,9 @@ optional properties:
> microseconds. It's usually a board-related property.
> - atmel,wakeup-rtc-timer: boolean to enable Real-Time Clock wake-up.
>
> +optional microchip,sam9x60-shdwc properties:
> +- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
> +
> The node contains child nodes for each wake-up input that the platform uses.
>
> 2) input nodes
>
--
Nicolas Ferre
On Thu, 21 Feb 2019 13:45:56 +0000, <[email protected]> wrote:
> From: Claudiu Beznea <[email protected]>
>
> Add documentation for SAM9X60 shutdown controller.
>
> Signed-off-by: Claudiu Beznea <[email protected]>
> ---
> Documentation/devicetree/bindings/arm/atmel-sysregs.txt | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
Reviewed-by: Rob Herring <[email protected]>
Hi,
On Thu, Feb 21, 2019 at 01:45:44PM +0000, [email protected] wrote:
> From: Claudiu Beznea <[email protected]>
>
> Hi,
>
> This series adapt SAMA5D2's shutdown controller driver to work for
> SAM9X60's shutdown controller. The difference is that SAM9X60 have
> option for RTT timer wakeup.
>
> Thank you,
> Claudiu Beznea
Thanks, queued.
-- Sebastian
>
> Changes in v2:
> - collect Acked-by tags
> - in patch 3/3 use "optional microchip,sam9x60-shdwc properties"
> string to specify that the introduced property is only for
> microchip,sam9x60-shdwc as specified above in case of
> atmel,<chip>-shdwc shutdown controllers
> - in patch 3/3 keep only the optional property introduced by
> microchip,sam9x60-shwdwc (atmel,wakeup-rtt-timer)
>
> Claudiu Beznea (3):
> power: reset: at91-poweroff: add RTT wakeup capability
> power: reset: at91-poweroff: add support for SAM9X60
> dt-bindings: arm: atmel: add binding for SAM9X60 shutdown controller
>
> .../devicetree/bindings/arm/atmel-sysregs.txt | 6 +++++-
> drivers/power/reset/at91-sama5d2_shdwc.c | 25 ++++++++++++++++++++++
> 2 files changed, 30 insertions(+), 1 deletion(-)
>
> --
> 2.7.4
>