xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/arm/atmel-sysregs.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunAtmel system registers
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunChipid required properties:
4*4882a593Smuzhiyun- compatible: Should be "atmel,sama5d2-chipid"
5*4882a593Smuzhiyun- reg : Should contain registers location and length
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunPIT Timer required properties:
8*4882a593Smuzhiyun- compatible: Should be "atmel,at91sam9260-pit"
9*4882a593Smuzhiyun- reg: Should contain registers location and length
10*4882a593Smuzhiyun- interrupts: Should contain interrupt for the PIT which is the IRQ line
11*4882a593Smuzhiyun  shared across all System Controller members.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunPIT64B Timer required properties:
14*4882a593Smuzhiyun- compatible: Should be "microchip,sam9x60-pit64b"
15*4882a593Smuzhiyun- reg: Should contain registers location and length
16*4882a593Smuzhiyun- interrupts: Should contain interrupt for PIT64B timer
17*4882a593Smuzhiyun- clocks: Should contain the available clock sources for PIT64B timer.
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunSystem Timer (ST) required properties:
20*4882a593Smuzhiyun- compatible: Should be "atmel,at91rm9200-st", "syscon", "simple-mfd"
21*4882a593Smuzhiyun- reg: Should contain registers location and length
22*4882a593Smuzhiyun- interrupts: Should contain interrupt for the ST which is the IRQ line
23*4882a593Smuzhiyun  shared across all System Controller members.
24*4882a593Smuzhiyun- clocks: phandle to input clock.
25*4882a593SmuzhiyunIts subnodes can be:
26*4882a593Smuzhiyun- watchdog: compatible should be "atmel,at91rm9200-wdt"
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunRSTC Reset Controller required properties:
29*4882a593Smuzhiyun- compatible: Should be "atmel,<chip>-rstc".
30*4882a593Smuzhiyun  <chip> can be "at91sam9260", "at91sam9g45", "sama5d3" or "samx7"
31*4882a593Smuzhiyun  it also can be "microchip,sam9x60-rstc"
32*4882a593Smuzhiyun- reg: Should contain registers location and length
33*4882a593Smuzhiyun- clocks: phandle to input clock.
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunExample:
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	rstc@fffffd00 {
38*4882a593Smuzhiyun		compatible = "atmel,at91sam9260-rstc";
39*4882a593Smuzhiyun		reg = <0xfffffd00 0x10>;
40*4882a593Smuzhiyun		clocks = <&clk32k>;
41*4882a593Smuzhiyun	};
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunRAMC SDRAM/DDR Controller required properties:
44*4882a593Smuzhiyun- compatible: Should be "atmel,at91rm9200-sdramc", "syscon"
45*4882a593Smuzhiyun			"atmel,at91sam9260-sdramc",
46*4882a593Smuzhiyun			"atmel,at91sam9g45-ddramc",
47*4882a593Smuzhiyun			"atmel,sama5d3-ddramc",
48*4882a593Smuzhiyun			"microchip,sam9x60-ddramc"
49*4882a593Smuzhiyun- reg: Should contain registers location and length
50*4882a593Smuzhiyun
51*4882a593SmuzhiyunExamples:
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	ramc0: ramc@ffffe800 {
54*4882a593Smuzhiyun		compatible = "atmel,at91sam9g45-ddramc";
55*4882a593Smuzhiyun		reg = <0xffffe800 0x200>;
56*4882a593Smuzhiyun	};
57*4882a593Smuzhiyun
58*4882a593SmuzhiyunSHDWC Shutdown Controller
59*4882a593Smuzhiyun
60*4882a593Smuzhiyunrequired properties:
61*4882a593Smuzhiyun- compatible: Should be "atmel,<chip>-shdwc".
62*4882a593Smuzhiyun  <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5".
63*4882a593Smuzhiyun- reg: Should contain registers location and length
64*4882a593Smuzhiyun- clocks: phandle to input clock.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyunoptional properties:
67*4882a593Smuzhiyun- atmel,wakeup-mode: String, operation mode of the wakeup mode.
68*4882a593Smuzhiyun  Supported values are: "none", "high", "low", "any".
69*4882a593Smuzhiyun- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf).
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunoptional at91sam9260 properties:
72*4882a593Smuzhiyun- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
73*4882a593Smuzhiyun
74*4882a593Smuzhiyunoptional at91sam9rl properties:
75*4882a593Smuzhiyun- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
76*4882a593Smuzhiyun- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunoptional at91sam9x5 properties:
79*4882a593Smuzhiyun- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up.
80*4882a593Smuzhiyun
81*4882a593SmuzhiyunExample:
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	shdwc@fffffd10 {
84*4882a593Smuzhiyun		compatible = "atmel,at91sam9260-shdwc";
85*4882a593Smuzhiyun		reg = <0xfffffd10 0x10>;
86*4882a593Smuzhiyun		clocks = <&clk32k>;
87*4882a593Smuzhiyun	};
88*4882a593Smuzhiyun
89*4882a593SmuzhiyunSHDWC SAMA5D2-Compatible Shutdown Controller
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun1) shdwc node
92*4882a593Smuzhiyun
93*4882a593Smuzhiyunrequired properties:
94*4882a593Smuzhiyun- compatible: should be "atmel,sama5d2-shdwc" or "microchip,sam9x60-shdwc".
95*4882a593Smuzhiyun- reg: should contain registers location and length
96*4882a593Smuzhiyun- clocks: phandle to input clock.
97*4882a593Smuzhiyun- #address-cells: should be one. The cell is the wake-up input index.
98*4882a593Smuzhiyun- #size-cells: should be zero.
99*4882a593Smuzhiyun
100*4882a593Smuzhiyunoptional properties:
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun- debounce-delay-us: minimum wake-up inputs debouncer period in
103*4882a593Smuzhiyun  microseconds. It's usually a board-related property.
104*4882a593Smuzhiyun- atmel,wakeup-rtc-timer: boolean to enable Real-Time Clock wake-up.
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunoptional microchip,sam9x60-shdwc properties:
107*4882a593Smuzhiyun- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up.
108*4882a593Smuzhiyun
109*4882a593SmuzhiyunThe node contains child nodes for each wake-up input that the platform uses.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun2) input nodes
112*4882a593Smuzhiyun
113*4882a593SmuzhiyunWake-up input nodes are usually described in the "board" part of the Device
114*4882a593SmuzhiyunTree. Note also that input 0 is linked to the wake-up pin and is frequently
115*4882a593Smuzhiyunused.
116*4882a593Smuzhiyun
117*4882a593SmuzhiyunRequired properties:
118*4882a593Smuzhiyun- reg: should contain the wake-up input index [0 - 15].
119*4882a593Smuzhiyun
120*4882a593SmuzhiyunOptional properties:
121*4882a593Smuzhiyun- atmel,wakeup-active-high: boolean, the corresponding wake-up input described
122*4882a593Smuzhiyun  by the child, forces the wake-up of the core power supply on a high level.
123*4882a593Smuzhiyun  The default is to be active low.
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunExample:
126*4882a593Smuzhiyun
127*4882a593SmuzhiyunOn the SoC side:
128*4882a593Smuzhiyun	shdwc@f8048010 {
129*4882a593Smuzhiyun		compatible = "atmel,sama5d2-shdwc";
130*4882a593Smuzhiyun		reg = <0xf8048010 0x10>;
131*4882a593Smuzhiyun		clocks = <&clk32k>;
132*4882a593Smuzhiyun		#address-cells = <1>;
133*4882a593Smuzhiyun		#size-cells = <0>;
134*4882a593Smuzhiyun		atmel,wakeup-rtc-timer;
135*4882a593Smuzhiyun	};
136*4882a593Smuzhiyun
137*4882a593SmuzhiyunOn the board side:
138*4882a593Smuzhiyun	shdwc@f8048010 {
139*4882a593Smuzhiyun		debounce-delay-us = <976>;
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun		input@0 {
142*4882a593Smuzhiyun			reg = <0>;
143*4882a593Smuzhiyun		};
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun		input@1 {
146*4882a593Smuzhiyun			reg = <1>;
147*4882a593Smuzhiyun			atmel,wakeup-active-high;
148*4882a593Smuzhiyun		};
149*4882a593Smuzhiyun	};
150*4882a593Smuzhiyun
151*4882a593SmuzhiyunSpecial Function Registers (SFR)
152*4882a593Smuzhiyun
153*4882a593SmuzhiyunSpecial Function Registers (SFR) manage specific aspects of the integrated
154*4882a593Smuzhiyunmemory, bridge implementations, processor and other functionality not controlled
155*4882a593Smuzhiyunelsewhere.
156*4882a593Smuzhiyun
157*4882a593Smuzhiyunrequired properties:
158*4882a593Smuzhiyun- compatible: Should be "atmel,<chip>-sfr", "syscon" or
159*4882a593Smuzhiyun	"atmel,<chip>-sfrbu", "syscon"
160*4882a593Smuzhiyun  <chip> can be "sama5d3", "sama5d4" or "sama5d2".
161*4882a593Smuzhiyun  It also can be "microchip,sam9x60-sfr", "syscon".
162*4882a593Smuzhiyun- reg: Should contain registers location and length
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun	sfr@f0038000 {
165*4882a593Smuzhiyun		compatible = "atmel,sama5d3-sfr", "syscon";
166*4882a593Smuzhiyun		reg = <0xf0038000 0x60>;
167*4882a593Smuzhiyun	};
168*4882a593Smuzhiyun
169*4882a593SmuzhiyunSecurity Module (SECUMOD)
170*4882a593Smuzhiyun
171*4882a593SmuzhiyunThe Security Module macrocell provides all necessary secure functions to avoid
172*4882a593Smuzhiyunvoltage, temperature, frequency and mechanical attacks on the chip. It also
173*4882a593Smuzhiyunembeds secure memories that can be scrambled.
174*4882a593Smuzhiyun
175*4882a593SmuzhiyunThe Security Module also offers the PIOBU pins which can be used as GPIO pins.
176*4882a593SmuzhiyunNote that they maintain their voltage during Backup/Self-refresh.
177*4882a593Smuzhiyun
178*4882a593Smuzhiyunrequired properties:
179*4882a593Smuzhiyun- compatible: Should be "atmel,<chip>-secumod", "syscon".
180*4882a593Smuzhiyun  <chip> can be "sama5d2".
181*4882a593Smuzhiyun- reg: Should contain registers location and length
182*4882a593Smuzhiyun- gpio-controller:	Marks the port as GPIO controller.
183*4882a593Smuzhiyun- #gpio-cells:		There are 2. The pin number is the
184*4882a593Smuzhiyun			first, the second represents additional
185*4882a593Smuzhiyun			parameters such as GPIO_ACTIVE_HIGH/LOW.
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun	secumod@fc040000 {
189*4882a593Smuzhiyun		compatible = "atmel,sama5d2-secumod", "syscon";
190*4882a593Smuzhiyun		reg = <0xfc040000 0x100>;
191*4882a593Smuzhiyun		gpio-controller;
192*4882a593Smuzhiyun		#gpio-cells = <2>;
193*4882a593Smuzhiyun	};
194