mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.1 KiB
91 lines
3.1 KiB
TI SysCon Reset Controller |
|
======================= |
|
|
|
Almost all SoCs have hardware modules that require reset control in addition |
|
to clock and power control for their functionality. The reset control is |
|
typically provided by means of memory-mapped I/O registers. These registers are |
|
sometimes a part of a larger register space region implementing various |
|
functionalities. This register range is best represented as a syscon node to |
|
allow multiple entities to access their relevant registers in the common |
|
register space. |
|
|
|
A SysCon Reset Controller node defines a device that uses a syscon node |
|
and provides reset management functionality for various hardware modules |
|
present on the SoC. |
|
|
|
SysCon Reset Controller Node |
|
============================ |
|
Each of the reset provider/controller nodes should be a child of a syscon |
|
node and have the following properties. |
|
|
|
Required properties: |
|
-------------------- |
|
- compatible : Should be, |
|
"ti,k2e-pscrst" |
|
"ti,k2l-pscrst" |
|
"ti,k2hk-pscrst" |
|
"ti,syscon-reset" |
|
- #reset-cells : Should be 1. Please see the reset consumer node below |
|
for usage details |
|
- ti,reset-bits : Contains the reset control register information |
|
Should contain 7 cells for each reset exposed to |
|
consumers, defined as: |
|
Cell #1 : offset of the reset assert control |
|
register from the syscon register base |
|
Cell #2 : bit position of the reset in the reset |
|
assert control register |
|
Cell #3 : offset of the reset deassert control |
|
register from the syscon register base |
|
Cell #4 : bit position of the reset in the reset |
|
deassert control register |
|
Cell #5 : offset of the reset status register |
|
from the syscon register base |
|
Cell #6 : bit position of the reset in the |
|
reset status register |
|
Cell #7 : Flags used to control reset behavior, |
|
availible flags defined in the DT include |
|
file <dt-bindings/reset/ti-syscon.h> |
|
|
|
SysCon Reset Consumer Nodes |
|
=========================== |
|
Each of the reset consumer nodes should have the following properties, |
|
in addition to their own properties. |
|
|
|
Required properties: |
|
-------------------- |
|
- resets : A phandle to the reset controller node and an index number |
|
to a reset specifier as defined above. |
|
|
|
Please also refer to Documentation/devicetree/bindings/reset/reset.txt for |
|
common reset controller usage by consumers. |
|
|
|
Example: |
|
-------- |
|
The following example demonstrates a syscon node, the reset controller node |
|
using the syscon node, and a consumer (a DSP device) on the TI Keystone 2 |
|
66AK2E SoC. |
|
|
|
/ { |
|
soc { |
|
psc: power-sleep-controller@2350000 { |
|
compatible = "syscon", "simple-mfd"; |
|
reg = <0x02350000 0x1000>; |
|
|
|
pscrst: reset-controller { |
|
compatible = "ti,k2e-pscrst", "ti,syscon-reset"; |
|
#reset-cells = <1>; |
|
|
|
ti,reset-bits = < |
|
0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */ |
|
0xa40 5 0xa44 3 0 0 (ASSERT_SET | DEASSERT_CLEAR | STATUS_NONE) /* 1: example */ |
|
>; |
|
}; |
|
}; |
|
|
|
dsp0: dsp0 { |
|
... |
|
resets = <&pscrst 0>; |
|
... |
|
}; |
|
}; |
|
};
|
|
|