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 |
generator@Y nodes
The`generator@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
-
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.
-
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.
-
The generator in group #1 can be independently started. It need not necessarily be synchronized with generators in group #0.
-
- 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.
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. |