~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: f136b3d2250df3d751b0a0cc3f29460194bc54cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Generic SYSCON mapped register reset driver

This is a generic reset driver using syscon to map the reset register.
The reset is generally performed with a write to the reset register
defined by the register map pointed by syscon reference plus the offset and
shifted by the reset specifier/

To assert a reset on some device, the equivalent of the following operation is
performed, where reset_id is the reset specifier from the device's resets
property.

	if (BIT(reset_id) & mask)
		regmap[offset][reset_id] = assert-high;

Required properties:
- compatible: should contain "syscon-reset"
- #reset-cells: must be 1
- regmap: this is phandle to the register map node
- offset: offset in the register map for the reboot register (in bytes)

Optional properties:
- mask: accept only the reset specifiers defined by the mask (32 bit)
- assert-high: Bit to write when asserting a reset. Defaults to 1.

Default will be little endian mode, 32 bit access only.

Example:

	reset-controller {
		compatible = "syscon-reset";
		#reset-cells = <1>;
		regmap = <&sysctl>;
		offset = <0x20>;
		mask = <0x27FFFFFF>;
		assert-high = <0>;
	};