mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-13 00:03:26 +09:00
![Sean Anderson](/assets/img/avatar_default.png)
This patch adds a generic reset driver. It is designed to be useful when one has a register in a regmap which contains bits that reset other devices. I thought this seemed like a very generic use, so here is a generic driver. The overall structure has been modeled on the syscon-reboot driver. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
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>;
|
|
};
|