| 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 |
| Edison SoC. |
| |
| / { |
| soc { |
| psc: power-sleep-controller@02350000 { |
| compatible = "syscon", "simple-mfd"; |
| reg = <0x02350000 0x1000>; |
| |
| pscrst: psc-reset { |
| compatible = "ti,k2e-pscrst", "ti,syscon-reset"; |
| #reset-cells = <1>; |
| |
| ti,reset-bits = < |
| 0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_SET|DEASSERT_CLEAR|STATUS_SET) /* 0: pcrst-dsp0 */ |
| 0xa40 5 0xa44 3 0 0 (ASSERT_SET|DEASSERT_CLEAR|STATUS_NONE) /* 1: pcrst-example */ |
| >; |
| }; |
| }; |
| |
| dsp0: dsp0 { |
| ... |
| resets = <&pscrst 0>; |
| ... |
| }; |
| }; |
| }; |