Fsync Signal Generation#

Unset:

tsc_sig_gen@c6a0000 {
    compatible = "nvidia,tegra234-cdi-tsc";
    ranges = <0x0 0x0 0xc6a0000 0x10000>;
    reg = <0x0 0xc6a0000 0x0 0x18>;
    #address-cells = <1>;
    #size-cells = <1>;
    status = "okay";

    gen0: generator@380 {
        reg = <0x380 0x80>;
        freq_hz = <30>;
        duty_cycle = <25>;
        offset_ms = <0>;
        status = "okay";
    };

    gen1: generator@400 {
        reg = <0x400 0x80>;
        freq_hz = <30>;
        duty_cycle = <25>;
        offset_ms = <0>;
        status = "okay";
    };

    gen2: generator@480 {
        reg = <0x480 0x80>;
        freq_hz = <30>;
        duty_cycle = <25>;
        offset_ms = <10>;
        status = "okay";
    };

    gen3: generator@500 {
        reg = <0x500 0x80>;
        freq_hz = <60>;
        duty_cycle = <25>;
        offset_ms = <20>;
        status = "okay";
    };
};

fsync-groups {
    status = "disabled";
    fsync-group@0 {
        id = <0>;
        status = "okay";
        generators = <&gen0>, <&gen2>, <&gen3>;
    };
    fsync-group@1 {
        id = <1>;
        status = "okay";
        generators = <&gen1>;
    };
};

TSC_EDGE_OUT Number

Nodes in Device Tree

TSC_EDGE_OUT0

gen0: generator@380

TSC_EDGE_OUT1

gen1: generator@400

TSC_EDGE_OUT2

gen2: generator@480

TSC_EDGE_OUT3

gen3: generator@500

Common Properties#

Property

Description

Customizable

Optional

Value

compatible

compatible contains the unique string to identify the fsync node.

No

No

nvidia,tegra234-cdi-tsc for Orin

nvidia,tegra264-cdi-tsc for Thor

ranges

List of address translation tuples.

No

No

<0x0 0x0 0xc6a0000 0x10000> for Orin

<0x0 0x0 0xc230000 0x10000> for Thor

reg

List of memory region tuples.

No

No

<0x0 0xc6a0000 0x0 0x18> for Orin

<0x0 0xc230000 0x0 0x18> for Thor

generator@Y nodes#

Thegenerator@Y nodes contain the configuration for individual generated signals. The Y should denote the base address for this line.

Property

Description

Customizable

Optional

Value

freq_hz

Frequency of the signal, in hertz.

Yes

No

Hertz as an unsigned integer in the range (0,120]

duty_cycle

Percentage duty cycle of the signal.

Yes

No

Unsigned in the range (0, 100)

offset_ms

Offset to shift the signal, in milliseconds.

Yes

No

Milliseconds as an unsigned integer in the range [0, 1000]

Fsync-groups#

  1. Fsync-groups allow users to logically group individual generators based on intended usage. All generators in a group are always started together. Any offsets are relative to only generators in that group. Generators in other groups may be independently started.

  2. Consider the fysync-groups in the device tree fragment above: All generators in group #0 will be started at the same time. Generators #2 and #3 will lag 10 and 20ms relative to Generator #0, respectively.

2. The generator in group #1 can be independently started. It need not necessarily be synchronized with generators in group #0.
  1. It is mandatory that each generator is only part of one group.

Includes subnodes for each fsync-group:

Property

Description

Customizable

Optional

Value

Status

If fsync-groups are enabled or disabled.

Yes

No

If okay, fsync-groups is used and active groups can be programmed to start generators within the group at a given time. Otherwise, all active generators start with the default start time on startup.

fsync-group@X

The fsync-group@X nodes contains the configuration for individual fsync-group. The X should denote the index of the group.

Table 1.

Property

Description

Customizable

Optional

Value

id

ID of group.

Yes

No

Unique index as an unsigned integer, starting from index 0.

status

Specifies whether a group is denabled or disabled.

Yes

No

Okay if group is enabled, otherwise disabled.

generators

List of phandles of the generators.

Yes

No

List of phandles of all the generators within the group. All generators within the group are in sync with each other.