Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82015c4e authored by Jean-Christophe PLAGNIOL-VILLARD's avatar Jean-Christophe PLAGNIOL-VILLARD
Browse files

ARM: at91: add Shutdown Controller (SHDWC) DT support



Use a string to specific the wakeup mode to make it more readable.

Add the Real-time Clock Wake-up support too for sam9g45 and sam9x5.
Add AT91_SHDW_CPTWK0_MAX to specific the Max of the Wakeup Counter.

Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: default avatarRob Herring <rob.herring@calxeda.com>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
parent a7776ec6
Loading
Loading
Loading
Loading
+29 −0
Original line number Original line Diff line number Diff line
@@ -61,3 +61,32 @@ Examples:
		reg = <0xffffe400 0x200
		reg = <0xffffe400 0x200
		       0xffffe600 0x200>;
		       0xffffe600 0x200>;
	};
	};

SHDWC Shutdown Controller

required properties:
- compatible: Should be "atmel,<chip>-shdwc".
  <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5".
- reg: Should contain registers location and length

optional properties:
- atmel,wakeup-mode: String, operation mode of the wakeup mode.
  Supported values are: "none", "high", "low", "any".
- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf).

optional at91sam9260 properties:
- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.

optional at91sam9rl properties:
- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.

optional at91sam9x5 properties:
- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.

Example:

	rstc@fffffd00 {
		compatible = "atmel,at91sam9260-rstc";
		reg = <0xfffffd00 0x10>;
	};
+5 −0
Original line number Original line Diff line number Diff line
@@ -74,6 +74,11 @@
				reg = <0xfffffd00 0x10>;
				reg = <0xfffffd00 0x10>;
			};
			};


			shdwc@fffffd10 {
				compatible = "atmel,at91sam9260-shdwc";
				reg = <0xfffffd10 0x10>;
			};

			pit: timer@fffffd30 {
			pit: timer@fffffd30 {
				compatible = "atmel,at91sam9260-pit";
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffd30 0xf>;
				reg = <0xfffffd30 0xf>;
+5 −0
Original line number Original line Diff line number Diff line
@@ -83,6 +83,11 @@
			};
			};




			shdwc@fffffd10 {
				compatible = "atmel,at91sam9rl-shdwc";
				reg = <0xfffffd10 0x10>;
			};

			tcb0: timer@fff7c000 {
			tcb0: timer@fff7c000 {
				compatible = "atmel,at91rm9200-tcb";
				compatible = "atmel,at91rm9200-tcb";
				reg = <0xfff7c000 0x100>;
				reg = <0xfff7c000 0x100>;
+5 −0
Original line number Original line Diff line number Diff line
@@ -73,6 +73,11 @@
				reg = <0xfffffe00 0x10>;
				reg = <0xfffffe00 0x10>;
			};
			};


			shdwc@fffffe10 {
				compatible = "atmel,at91sam9x5-shdwc";
				reg = <0xfffffe10 0x10>;
			};

			pit: timer@fffffe30 {
			pit: timer@fffffe30 {
				compatible = "atmel,at91sam9260-pit";
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffe30 0xf>;
				reg = <0xfffffe30 0xf>;
+3 −1
Original line number Original line Diff line number Diff line
@@ -36,9 +36,11 @@ extern void __iomem *at91_shdwc_base;
#define			AT91_SHDW_WKMODE0_HIGH		1
#define			AT91_SHDW_WKMODE0_HIGH		1
#define			AT91_SHDW_WKMODE0_LOW		2
#define			AT91_SHDW_WKMODE0_LOW		2
#define			AT91_SHDW_WKMODE0_ANYLEVEL	3
#define			AT91_SHDW_WKMODE0_ANYLEVEL	3
#define		AT91_SHDW_CPTWK0	(0xf << 4)		/* Counter On Wake Up 0 */
#define		AT91_SHDW_CPTWK0_MAX	0xf			/* Maximum Counter On Wake Up 0 */
#define		AT91_SHDW_CPTWK0	(AT91_SHDW_CPTWK0_MAX << 4) /* Counter On Wake Up 0 */
#define			AT91_SHDW_CPTWK0_(x)	((x) << 4)
#define			AT91_SHDW_CPTWK0_(x)	((x) << 4)
#define		AT91_SHDW_RTTWKEN	(1   << 16)		/* Real Time Timer Wake-up Enable */
#define		AT91_SHDW_RTTWKEN	(1   << 16)		/* Real Time Timer Wake-up Enable */
#define		AT91_SHDW_RTCWKEN	(1   << 17)		/* Real Time Clock Wake-up Enable */


#define AT91_SHDW_SR		0x08			/* Shut Down Status Register */
#define AT91_SHDW_SR		0x08			/* Shut Down Status Register */
#define		AT91_SHDW_WAKEUP0	(1 <<  0)		/* Wake-up 0 Status */
#define		AT91_SHDW_WAKEUP0	(1 <<  0)		/* Wake-up 0 Status */
Loading