Kernel-4.18.0-80.el8_ti-syscon-reset

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>;
        ...
    };
};

};