* [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions
@ 2023-07-26 16:27 Thierry Reding
2023-07-26 16:27 ` [PATCH v3 2/7] dt-bindings: arm: tegra: pmc: Remove useless boilerplate descriptions Thierry Reding
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
Reformat the description of various properties to make them more
consistent with existing ones. Make use of json-schema's ability to
provide a description for individual list items to make improve the
documentation further.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- instead of rewriting it, drop the reg property description in patch 2
- add Reviewed-by: from Rob
.../arm/tegra/nvidia,tegra20-pmc.yaml | 212 +++++++++---------
1 file changed, 103 insertions(+), 109 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
index 89191cfdf619..38fe66142547 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
@@ -26,12 +26,10 @@ properties:
clock-names:
items:
+ # Tegra clock of the same name
- const: pclk
+ # 32 KHz clock input
- const: clk32k_in
- description:
- Must includes entries pclk and clk32k_in.
- pclk is the Tegra clock of that name and clk32k_in is 32KHz clock
- input to Tegra.
clocks:
maxItems: 2
@@ -41,105 +39,103 @@ properties:
'#clock-cells':
const: 1
- description:
- Tegra PMC has clk_out_1, clk_out_2, and clk_out_3.
- PMC also has blink control which allows 32Khz clock output to
- Tegra blink pad.
- Consumer of PMC clock should specify the desired clock by having
- the clock ID in its "clocks" phandle cell with pmc clock provider.
- See include/dt-bindings/soc/tegra-pmc.h for the list of Tegra PMC
- clock IDs.
+ description: |
+ Tegra PMC has clk_out_1, clk_out_2, and clk_out_3. PMC also has blink
+ control which allows 32Khz clock output to Tegra blink pad.
+
+ Consumer of PMC clock should specify the desired clock by having the
+ clock ID in its "clocks" phandle cell with PMC clock provider. See
+ include/dt-bindings/soc/tegra-pmc.h for the list of Tegra PMC clock IDs.
'#interrupt-cells':
const: 2
- description:
- Specifies number of cells needed to encode an interrupt source.
- The value must be 2.
+ description: Specifies number of cells needed to encode an interrupt
+ source.
interrupt-controller: true
nvidia,invert-interrupt:
$ref: /schemas/types.yaml#/definitions/flag
- description: Inverts the PMU interrupt signal.
- The PMU is an external Power Management Unit, whose interrupt output
- signal is fed into the PMC. This signal is optionally inverted, and
- then fed into the ARM GIC. The PMC is not involved in the detection
- or handling of this interrupt signal, merely its inversion.
+ description: Inverts the PMU interrupt signal. The PMU is an external Power
+ Management Unit, whose interrupt output signal is fed into the PMC. This
+ signal is optionally inverted, and then fed into the ARM GIC. The PMC is
+ not involved in the detection or handling of this interrupt signal,
+ merely its inversion.
nvidia,core-power-req-active-high:
$ref: /schemas/types.yaml#/definitions/flag
- description: Core power request active-high.
+ description: core power request active-high
nvidia,sys-clock-req-active-high:
$ref: /schemas/types.yaml#/definitions/flag
- description: System clock request active-high.
+ description: system clock request active-high
nvidia,combined-power-req:
$ref: /schemas/types.yaml#/definitions/flag
- description: combined power request for CPU and Core.
+ description: combined power request for CPU and core
nvidia,cpu-pwr-good-en:
$ref: /schemas/types.yaml#/definitions/flag
- description:
- CPU power good signal from external PMIC to PMC is enabled.
+ description: CPU power good signal from external PMIC to PMC is enabled
nvidia,suspend-mode:
$ref: /schemas/types.yaml#/definitions/uint32
- enum: [0, 1, 2]
- description:
- The suspend mode that the platform should use.
- Mode 0 is for LP0, CPU + Core voltage off and DRAM in self-refresh
- Mode 1 is for LP1, CPU voltage off and DRAM in self-refresh
- Mode 2 is for LP2, CPU voltage off
+ description: the suspend mode that the platform should use
+ oneOf:
+ - description: LP0, CPU + Core voltage off and DRAM in self-refresh
+ const: 0
+ - description: LP1, CPU voltage off and DRAM in self-refresh
+ const: 1
+ - description: LP2, CPU voltage off
+ const: 2
nvidia,cpu-pwr-good-time:
$ref: /schemas/types.yaml#/definitions/uint32
- description: CPU power good time in uSec.
+ description: CPU power good time in microseconds
nvidia,cpu-pwr-off-time:
$ref: /schemas/types.yaml#/definitions/uint32
- description: CPU power off time in uSec.
+ description: CPU power off time in microseconds
nvidia,core-pwr-good-time:
$ref: /schemas/types.yaml#/definitions/uint32-array
- description:
- <Oscillator-stable-time Power-stable-time>
- Core power good time in uSec.
+ description: core power good time in microseconds
+ items:
+ - description: oscillator stable time
+ - description: power stable time
nvidia,core-pwr-off-time:
$ref: /schemas/types.yaml#/definitions/uint32
- description: Core power off time in uSec.
+ description: core power off time in microseconds
nvidia,lp0-vec:
$ref: /schemas/types.yaml#/definitions/uint32-array
- description:
- <start length> Starting address and length of LP0 vector.
- The LP0 vector contains the warm boot code that is executed
- by AVP when resuming from the LP0 state.
- The AVP (Audio-Video Processor) is an ARM7 processor and
- always being the first boot processor when chip is power on
- or resume from deep sleep mode. When the system is resumed
- from the deep sleep mode, the warm boot code will restore
- some PLLs, clocks and then brings up CPU0 for resuming the
- system.
+ description: |
+ Starting address and length of LP0 vector. The LP0 vector contains the
+ warm boot code that is executed by AVP when resuming from the LP0 state.
+ The AVP (Audio-Video Processor) is an ARM7 processor and always being
+ the first boot processor when chip is power on or resume from deep sleep
+ mode. When the system is resumed from the deep sleep mode, the warm boot
+ code will restore some PLLs, clocks and then brings up CPU0 for resuming
+ the system.
+ items:
+ - description: starting address of LP0 vector
+ - description: length of LP0 vector
core-supply:
- description:
- Phandle to voltage regulator connected to the SoC Core power rail.
+ description: phandle to voltage regulator connected to the SoC core power
+ rail
core-domain:
type: object
- description: |
- The vast majority of hardware blocks of Tegra SoC belong to a
- Core power domain, which has a dedicated voltage rail that powers
- the blocks.
-
+ description: The vast majority of hardware blocks of Tegra SoC belong to a
+ core power domain, which has a dedicated voltage rail that powers the
+ blocks.
properties:
operating-points-v2:
- description:
- Should contain level, voltages and opp-supported-hw property.
- The supported-hw is a bitfield indicating SoC speedo or process
- ID mask.
+ description: Should contain level, voltages and opp-supported-hw
+ property. The supported-hw is a bitfield indicating SoC speedo or
+ process ID mask.
"#power-domain-cells":
const: 0
@@ -152,37 +148,32 @@ properties:
i2c-thermtrip:
type: object
- description:
- On Tegra30, Tegra114 and Tegra124 if i2c-thermtrip subnode exists,
- hardware-triggered thermal reset will be enabled.
-
+ description: On Tegra30, Tegra114 and Tegra124 if i2c-thermtrip subnode
+ exists, hardware-triggered thermal reset will be enabled.
properties:
nvidia,i2c-controller-id:
$ref: /schemas/types.yaml#/definitions/uint32
- description:
- ID of I2C controller to send poweroff command to PMU.
- Valid values are described in section 9.2.148
- "APBDEV_PMC_SCRATCH53_0" of the Tegra K1 Technical Reference
- Manual.
+ description: ID of I2C controller to send poweroff command to PMU.
+ Valid values are described in section 9.2.148 "APBDEV_PMC_SCRATCH53_0"
+ of the Tegra K1 Technical Reference Manual.
nvidia,bus-addr:
$ref: /schemas/types.yaml#/definitions/uint32
- description: Bus address of the PMU on the I2C bus.
+ description: bus address of the PMU on the I2C bus
nvidia,reg-addr:
$ref: /schemas/types.yaml#/definitions/uint32
- description: PMU I2C register address to issue poweroff command.
+ description: PMU I2C register address to issue poweroff command
nvidia,reg-data:
$ref: /schemas/types.yaml#/definitions/uint32
- description: Poweroff command to write to PMU.
+ description: power-off command to write to PMU
nvidia,pinmux-id:
$ref: /schemas/types.yaml#/definitions/uint32
- description:
- Pinmux used by the hardware when issuing Poweroff command.
- Defaults to 0. Valid values are described in section 12.5.2
- "Pinmux Support" of the Tegra4 Technical Reference Manual.
+ description: Pinmux used by the hardware when issuing power-off command.
+ Defaults to 0. Valid values are described in section 12.5.2 "Pinmux
+ Support" of the Tegra4 Technical Reference Manual.
required:
- nvidia,i2c-controller-id
@@ -195,41 +186,44 @@ properties:
powergates:
type: object
description: |
- This node contains a hierarchy of power domain nodes, which should
- match the powergates on the Tegra SoC. Each powergate node
- represents a power-domain on the Tegra SoC that can be power-gated
- by the Tegra PMC.
- Hardware blocks belonging to a power domain should contain
- "power-domains" property that is a phandle pointing to corresponding
- powergate node.
- The name of the powergate node should be one of the below. Note that
- not every powergate is applicable to all Tegra devices and the following
- list shows which powergates are applicable to which devices.
- Please refer to Tegra TRM for mode details on the powergate nodes to
- use for each power-gate block inside Tegra.
- Name Description Devices Applicable
- 3d 3D Graphics Tegra20/114/124/210
- 3d0 3D Graphics 0 Tegra30
- 3d1 3D Graphics 1 Tegra30
- aud Audio Tegra210
- dfd Debug Tegra210
- dis Display A Tegra114/124/210
- disb Display B Tegra114/124/210
- heg 2D Graphics Tegra30/114/124/210
- iram Internal RAM Tegra124/210
- mpe MPEG Encode All
- nvdec NVIDIA Video Decode Engine Tegra210
- nvjpg NVIDIA JPEG Engine Tegra210
- pcie PCIE Tegra20/30/124/210
- sata SATA Tegra30/124/210
- sor Display interfaces Tegra124/210
- ve2 Video Encode Engine 2 Tegra210
- venc Video Encode Engine All
- vdec Video Decode Engine Tegra20/30/114/124
- vic Video Imaging Compositor Tegra124/210
- xusba USB Partition A Tegra114/124/210
- xusbb USB Partition B Tegra114/124/210
- xusbc USB Partition C Tegra114/124/210
+ This node contains a hierarchy of power domain nodes, which should match
+ the powergates on the Tegra SoC. Each powergate node represents a power-
+ domain on the Tegra SoC that can be power-gated by the Tegra PMC.
+
+ Hardware blocks belonging to a power domain should contain "power-domains"
+ property that is a phandle pointing to corresponding powergate node.
+
+ The name of the powergate node should be one of the below. Note that not
+ every powergate is applicable to all Tegra devices and the following list
+ shows which powergates are applicable to which devices.
+
+ Please refer to Tegra TRM for mode details on the powergate nodes to use
+ for each power-gate block inside Tegra.
+
+ Name Description Devices Applicable
+ --------------------------------------------------------------
+ 3d 3D Graphics Tegra20/114/124/210
+ 3d0 3D Graphics 0 Tegra30
+ 3d1 3D Graphics 1 Tegra30
+ aud Audio Tegra210
+ dfd Debug Tegra210
+ dis Display A Tegra114/124/210
+ disb Display B Tegra114/124/210
+ heg 2D Graphics Tegra30/114/124/210
+ iram Internal RAM Tegra124/210
+ mpe MPEG Encode All
+ nvdec NVIDIA Video Decode Engine Tegra210
+ nvjpg NVIDIA JPEG Engine Tegra210
+ pcie PCIE Tegra20/30/124/210
+ sata SATA Tegra30/124/210
+ sor Display interfaces Tegra124/210
+ ve2 Video Encode Engine 2 Tegra210
+ venc Video Encode Engine All
+ vdec Video Decode Engine Tegra20/30/114/124
+ vic Video Imaging Compositor Tegra124/210
+ xusba USB Partition A Tegra114/124/210
+ xusbb USB Partition B Tegra114/124/210
+ xusbc USB Partition C Tegra114/124/210
patternProperties:
"^[a-z0-9]+$":
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/7] dt-bindings: arm: tegra: pmc: Remove useless boilerplate descriptions
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
@ 2023-07-26 16:27 ` Thierry Reding
2023-07-26 16:27 ` [PATCH v3 3/7] dt-bindings: arm: tegra: pmc: Move additionalProperties Thierry Reding
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
The descriptions for the clocks and resets properties are no longer
useful in the context of json-schema, so drop them.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- drop description of "reg" property
- add Reviewed-by: from Rob
.../bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
index 38fe66142547..0ac258bc7be0 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
@@ -21,8 +21,6 @@ properties:
reg:
maxItems: 1
- description:
- Offset and length of the register set for the device.
clock-names:
items:
@@ -33,9 +31,6 @@ properties:
clocks:
maxItems: 2
- description:
- Must contain an entry for each entry in clock-names.
- See ../clocks/clocks-bindings.txt for details.
'#clock-cells':
const: 1
@@ -234,18 +229,10 @@ properties:
clocks:
minItems: 1
maxItems: 8
- description:
- Must contain an entry for each clock required by the PMC
- for controlling a power-gate.
- See ../clocks/clock-bindings.txt document for more details.
resets:
minItems: 1
maxItems: 8
- description:
- Must contain an entry for each reset required by the PMC
- for controlling a power-gate.
- See ../reset/reset.txt for more details.
power-domains:
maxItems: 1
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/7] dt-bindings: arm: tegra: pmc: Move additionalProperties
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
2023-07-26 16:27 ` [PATCH v3 2/7] dt-bindings: arm: tegra: pmc: Remove useless boilerplate descriptions Thierry Reding
@ 2023-07-26 16:27 ` Thierry Reding
2023-07-26 16:27 ` [PATCH v3 4/7] dt-bindings: arm: tegra: pmc: Increase maximum number of clocks per powergate Thierry Reding
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
For indented subschemas it can be difficult to understand which block an
additionalProperties property belongs to. Moving it closer to the
beginning of a block is a good way to clarify this.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- add Reviewed-by: from Rob
.../bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
index 0ac258bc7be0..d6f2c5862841 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
@@ -126,6 +126,7 @@ properties:
description: The vast majority of hardware blocks of Tegra SoC belong to a
core power domain, which has a dedicated voltage rail that powers the
blocks.
+ additionalProperties: false
properties:
operating-points-v2:
description: Should contain level, voltages and opp-supported-hw
@@ -139,12 +140,11 @@ properties:
- operating-points-v2
- "#power-domain-cells"
- additionalProperties: false
-
i2c-thermtrip:
type: object
description: On Tegra30, Tegra114 and Tegra124 if i2c-thermtrip subnode
exists, hardware-triggered thermal reset will be enabled.
+ additionalProperties: false
properties:
nvidia,i2c-controller-id:
$ref: /schemas/types.yaml#/definitions/uint32
@@ -176,10 +176,9 @@ properties:
- nvidia,reg-addr
- nvidia,reg-data
- additionalProperties: false
-
powergates:
type: object
+ additionalProperties: false
description: |
This node contains a hierarchy of power domain nodes, which should match
the powergates on the Tegra SoC. Each powergate node represents a power-
@@ -224,7 +223,6 @@ properties:
"^[a-z0-9]+$":
type: object
additionalProperties: false
-
properties:
clocks:
minItems: 1
@@ -246,8 +244,6 @@ properties:
- resets
- '#power-domain-cells'
- additionalProperties: false
-
patternProperties:
"^[a-f0-9]+-[a-f0-9]+$":
type: object
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 4/7] dt-bindings: arm: tegra: pmc: Increase maximum number of clocks per powergate
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
2023-07-26 16:27 ` [PATCH v3 2/7] dt-bindings: arm: tegra: pmc: Remove useless boilerplate descriptions Thierry Reding
2023-07-26 16:27 ` [PATCH v3 3/7] dt-bindings: arm: tegra: pmc: Move additionalProperties Thierry Reding
@ 2023-07-26 16:27 ` Thierry Reding
2023-07-26 16:27 ` [PATCH v3 5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema Thierry Reding
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
Some powergate definitions need more than 8 clocks, so bump the number
up to 10, which is the current maximum in any known device tree file.
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- add Acked-by: from Rob
.../devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
index d6f2c5862841..a336a75d8b82 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
@@ -226,7 +226,7 @@ properties:
properties:
clocks:
minItems: 1
- maxItems: 8
+ maxItems: 10
resets:
minItems: 1
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
` (2 preceding siblings ...)
2023-07-26 16:27 ` [PATCH v3 4/7] dt-bindings: arm: tegra: pmc: Increase maximum number of clocks per powergate Thierry Reding
@ 2023-07-26 16:27 ` Thierry Reding
2023-08-03 0:48 ` Rob Herring
2023-07-26 16:27 ` [PATCH v3 6/7] dt-bindings: arm: tegra: pmc: Reformat example Thierry Reding
` (2 subsequent siblings)
6 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra
From: Thierry Reding <treding@nvidia.com>
The pad configuration node schema in its current form can accidentally
match other properties as well. Restructure the schema to better match
how the device trees are using these.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v3:
- remove quirks that are no longer needed with latest dt-schema
Changes in v2:
- highlight quirks working around possible core schema
- use phandle: true instead of fully redefining it
- drop unneeded status property definition
.../arm/tegra/nvidia,tegra20-pmc.yaml | 171 +++++++++++-------
1 file changed, 109 insertions(+), 62 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
index a336a75d8b82..de1b23167658 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
@@ -244,69 +244,76 @@ properties:
- resets
- '#power-domain-cells'
-patternProperties:
- "^[a-f0-9]+-[a-f0-9]+$":
+ pinmux:
type: object
- description:
- This is a Pad configuration node. On Tegra SOCs a pad is a set of
- pins which are configured as a group. The pin grouping is a fixed
- attribute of the hardware. The PMC can be used to set pad power state
- and signaling voltage. A pad can be either in active or power down mode.
- The support for power state and signaling voltage configuration varies
- depending on the pad in question. 3.3V and 1.8V signaling voltages
- are supported on pins where software controllable signaling voltage
- switching is available.
-
- The pad configuration state nodes are placed under the pmc node and they
- are referred to by the pinctrl client properties. For more information
- see Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
- The pad name should be used as the value of the pins property in pin
- configuration nodes.
-
- The following pads are present on Tegra124 and Tegra132
- audio, bb, cam, comp, csia, csb, cse, dsi, dsib, dsic, dsid, hdmi, hsic,
- hv, lvds, mipi-bias, nand, pex-bias, pex-clk1, pex-clk2, pex-cntrl,
- sdmmc1, sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2, usb_bias.
-
- The following pads are present on Tegra210
- audio, audio-hv, cam, csia, csib, csic, csid, csie, csif, dbg,
- debug-nonao, dmic, dp, dsi, dsib, dsic, dsid, emmc, emmc2, gpio, hdmi,
- hsic, lvds, mipi-bias, pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
- sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3, usb-bias.
-
- properties:
- pins:
- $ref: /schemas/types.yaml#/definitions/string
- description: Must contain name of the pad(s) to be configured.
-
- low-power-enable:
- $ref: /schemas/types.yaml#/definitions/flag
- description: Configure the pad into power down mode.
-
- low-power-disable:
- $ref: /schemas/types.yaml#/definitions/flag
- description: Configure the pad into active mode.
-
- power-source:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
- TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
- The values are defined in
- include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
- Power state can be configured on all Tegra124 and Tegra132
- pads. None of the Tegra124 or Tegra132 pads support signaling
- voltage switching.
- All of the listed Tegra210 pads except pex-cntrl support power
- state configuration. Signaling voltage switching is supported
- on below Tegra210 pads.
- audio, audio-hv, cam, dbg, dmic, gpio, pex-cntrl, sdmmc1,
- sdmmc3, spi, spi-hv, and uart.
-
- required:
- - pins
-
- additionalProperties: false
+ additionalProperties:
+ type: object
+ description: |
+ This is a pad configuration node. On Tegra SoCs a pad is a set of pins
+ which are configured as a group. The pin grouping is a fixed attribute
+ of the hardware. The PMC can be used to set pad power state and
+ signaling voltage. A pad can be either in active or power down mode.
+ The support for power state and signaling voltage configuration varies
+ depending on the pad in question. 3.3V and 1.8V signaling voltages are
+ supported on pins where software controllable signaling voltage
+ switching is available.
+
+ The pad configuration state nodes are placed under the pmc node and
+ they are referred to by the pinctrl client properties. For more
+ information see:
+
+ Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+
+ The pad name should be used as the value of the pins property in pin
+ configuration nodes.
+
+ The following pads are present on Tegra124 and Tegra132:
+
+ audio, bb, cam, comp, csia, csb, cse, dsi, dsib, dsic, dsid, hdmi,
+ hsic, hv, lvds, mipi-bias, nand, pex-bias, pex-clk1, pex-clk2,
+ pex-cntrl, sdmmc1, sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2,
+ usb_bias
+
+ The following pads are present on Tegra210:
+
+ audio, audio-hv, cam, csia, csib, csic, csid, csie, csif, dbg,
+ debug-nonao, dmic, dp, dsi, dsib, dsic, dsid, emmc, emmc2, gpio,
+ hdmi, hsic, lvds, mipi-bias, pex-bias, pex-clk1, pex-clk2, pex-cntrl,
+ sdmmc1, sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3, usb-bias
+ additionalProperties: false
+ properties:
+ pins:
+ $ref: /schemas/types.yaml#/definitions/string-array
+ description: Must contain name of the pad(s) to be configured.
+
+ low-power-enable:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Configure the pad into power down mode.
+
+ low-power-disable:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Configure the pad into active mode.
+
+ power-source:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
+ TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages. The
+ values are defined in:
+
+ include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
+
+ Power state can be configured on all Tegra124 and Tegra132 pads.
+ None of the Tegra124 or Tegra132 pads support signaling voltage
+ switching. All of the listed Tegra210 pads except pex-cntrl support
+ power state configuration. Signaling voltage switching is supported
+ on the following Tegra210 pads:
+
+ audio, audio-hv, cam, dbg, dmic, gpio, pex-cntrl, sdmmc1, sdmmc3,
+ spi, spi-hv, uart
+
+ required:
+ - pins
required:
- compatible
@@ -315,6 +322,46 @@ required:
- clocks
- '#clock-cells'
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: nvidia,tegra124-pmc
+ then:
+ properties:
+ pinmux:
+ additionalProperties:
+ type: object
+ properties:
+ pins:
+ items:
+ enum: [ audio, bb, cam, comp, csia, csb, cse, dsi, dsib,
+ dsic, dsid, hdmi, hsic, hv, lvds, mipi-bias, nand,
+ pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
+ sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2,
+ usb_bias ]
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: nvidia,tegra210-pmc
+ then:
+ properties:
+ pinmux:
+ additionalProperties:
+ type: object
+ properties:
+ pins:
+ items:
+ enum: [ audio, audio-hv, cam, csia, csib, csic, csid, csie,
+ csif, dbg, debug-nonao, dmic, dp, dsi, dsib, dsic,
+ dsid, emmc, emmc2, gpio, hdmi, hsic, lvds, mipi-bias,
+ pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
+ sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3,
+ usb-bias ]
+
additionalProperties: false
dependencies:
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 6/7] dt-bindings: arm: tegra: pmc: Reformat example
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
` (3 preceding siblings ...)
2023-07-26 16:27 ` [PATCH v3 5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema Thierry Reding
@ 2023-07-26 16:27 ` Thierry Reding
2023-07-26 16:27 ` [PATCH v3 7/7] dt-bindings: arm: tegra: pmc: Relicense and move into soc/tegra directory Thierry Reding
2023-08-16 16:20 ` [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
Reformat the example using 4 spaces for indentation.
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- add Acked-by: from Rob
.../arm/tegra/nvidia,tegra20-pmc.yaml | 77 +++++++++----------
1 file changed, 38 insertions(+), 39 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
index de1b23167658..a54b562e2a1c 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
@@ -371,47 +371,46 @@ dependencies:
examples:
- |
-
#include <dt-bindings/clock/tegra210-car.h>
#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
#include <dt-bindings/soc/tegra-pmc.h>
- tegra_pmc: pmc@7000e400 {
- compatible = "nvidia,tegra210-pmc";
- reg = <0x7000e400 0x400>;
- core-supply = <®ulator>;
- clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
- clock-names = "pclk", "clk32k_in";
- #clock-cells = <1>;
-
- nvidia,invert-interrupt;
- nvidia,suspend-mode = <0>;
- nvidia,cpu-pwr-good-time = <0>;
- nvidia,cpu-pwr-off-time = <0>;
- nvidia,core-pwr-good-time = <4587 3876>;
- nvidia,core-pwr-off-time = <39065>;
- nvidia,core-power-req-active-high;
- nvidia,sys-clock-req-active-high;
-
- pd_core: core-domain {
- operating-points-v2 = <&core_opp_table>;
- #power-domain-cells = <0>;
- };
-
- powergates {
- pd_audio: aud {
- clocks = <&tegra_car TEGRA210_CLK_APE>,
- <&tegra_car TEGRA210_CLK_APB2APE>;
- resets = <&tegra_car 198>;
- power-domains = <&pd_core>;
- #power-domain-cells = <0>;
- };
-
- pd_xusbss: xusba {
- clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
- resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
- power-domains = <&pd_core>;
- #power-domain-cells = <0>;
- };
- };
+ pmc@7000e400 {
+ compatible = "nvidia,tegra210-pmc";
+ reg = <0x7000e400 0x400>;
+ core-supply = <®ulator>;
+ clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
+ clock-names = "pclk", "clk32k_in";
+ #clock-cells = <1>;
+
+ nvidia,invert-interrupt;
+ nvidia,suspend-mode = <0>;
+ nvidia,cpu-pwr-good-time = <0>;
+ nvidia,cpu-pwr-off-time = <0>;
+ nvidia,core-pwr-good-time = <4587 3876>;
+ nvidia,core-pwr-off-time = <39065>;
+ nvidia,core-power-req-active-high;
+ nvidia,sys-clock-req-active-high;
+
+ pd_core: core-domain {
+ operating-points-v2 = <&core_opp_table>;
+ #power-domain-cells = <0>;
+ };
+
+ powergates {
+ pd_audio: aud {
+ clocks = <&tegra_car TEGRA210_CLK_APE>,
+ <&tegra_car TEGRA210_CLK_APB2APE>;
+ resets = <&tegra_car 198>;
+ power-domains = <&pd_core>;
+ #power-domain-cells = <0>;
+ };
+
+ pd_xusbss: xusba {
+ clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
+ resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
+ power-domains = <&pd_core>;
+ #power-domain-cells = <0>;
+ };
+ };
};
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 7/7] dt-bindings: arm: tegra: pmc: Relicense and move into soc/tegra directory
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
` (4 preceding siblings ...)
2023-07-26 16:27 ` [PATCH v3 6/7] dt-bindings: arm: tegra: pmc: Reformat example Thierry Reding
@ 2023-07-26 16:27 ` Thierry Reding
2023-08-16 16:20 ` [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-07-26 16:27 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
Dual-license this binding for consistency with other Tegra bindings and
move it into the soc/tegra directory.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- add Reviewed-by: from Rob
.../bindings/{arm => soc}/tegra/nvidia,tegra20-pmc.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename Documentation/devicetree/bindings/{arm => soc}/tegra/nvidia,tegra20-pmc.yaml (99%)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml b/Documentation/devicetree/bindings/soc/tegra/nvidia,tegra20-pmc.yaml
similarity index 99%
rename from Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
rename to Documentation/devicetree/bindings/soc/tegra/nvidia,tegra20-pmc.yaml
index a54b562e2a1c..b86f6f53ca95 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.yaml
+++ b/Documentation/devicetree/bindings/soc/tegra/nvidia,tegra20-pmc.yaml
@@ -1,7 +1,7 @@
-# SPDX-License-Identifier: GPL-2.0
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
-$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra20-pmc.yaml#
+$id: http://devicetree.org/schemas/soc/tegra/nvidia,tegra20-pmc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Tegra Power Management Controller (PMC)
--
2.41.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema
2023-07-26 16:27 ` [PATCH v3 5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema Thierry Reding
@ 2023-08-03 0:48 ` Rob Herring
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2023-08-03 0:48 UTC (permalink / raw)
To: Thierry Reding
Cc: Rob Herring, Krzysztof Kozlowski, devicetree, Conor Dooley,
linux-tegra, Jon Hunter
On Wed, 26 Jul 2023 18:27:42 +0200, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
>
> The pad configuration node schema in its current form can accidentally
> match other properties as well. Restructure the schema to better match
> how the device trees are using these.
>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
> Changes in v3:
> - remove quirks that are no longer needed with latest dt-schema
>
> Changes in v2:
> - highlight quirks working around possible core schema
> - use phandle: true instead of fully redefining it
> - drop unneeded status property definition
>
> .../arm/tegra/nvidia,tegra20-pmc.yaml | 171 +++++++++++-------
> 1 file changed, 109 insertions(+), 62 deletions(-)
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
` (5 preceding siblings ...)
2023-07-26 16:27 ` [PATCH v3 7/7] dt-bindings: arm: tegra: pmc: Relicense and move into soc/tegra directory Thierry Reding
@ 2023-08-16 16:20 ` Thierry Reding
6 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-08-16 16:20 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
Cc: Jon Hunter, devicetree, linux-tegra, Rob Herring
From: Thierry Reding <treding@nvidia.com>
On Wed, 26 Jul 2023 18:27:38 +0200, Thierry Reding wrote:
> Reformat the description of various properties to make them more
> consistent with existing ones. Make use of json-schema's ability to
> provide a description for individual list items to make improve the
> documentation further.
>
>
Applied, thanks!
[1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions
commit: 0d2c8f5507480ba5255ab60312820b49814afd63
[2/7] dt-bindings: arm: tegra: pmc: Remove useless boilerplate descriptions
commit: 5dfaacd234fd07ec0891edc2207cc85f44305626
[3/7] dt-bindings: arm: tegra: pmc: Move additionalProperties
commit: f69187cceb3a7cb3f4eb73180dea1df265835932
[4/7] dt-bindings: arm: tegra: pmc: Increase maximum number of clocks per powergate
commit: 7b42c3a3bcb655331810ea95ac71a0f692857e2f
[5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema
commit: fe893e08d37d7779e604f5bfb5c00d84c5cbd52d
[6/7] dt-bindings: arm: tegra: pmc: Reformat example
commit: cf66bae6e35ccf65aa5f9335a4a0021304f746f8
[7/7] dt-bindings: arm: tegra: pmc: Relicense and move into soc/tegra directory
commit: 9d697e4b743080f560e3eee54599853e8ee8fa25
Best regards,
--
Thierry Reding <treding@nvidia.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-08-16 16:21 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-26 16:27 [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
2023-07-26 16:27 ` [PATCH v3 2/7] dt-bindings: arm: tegra: pmc: Remove useless boilerplate descriptions Thierry Reding
2023-07-26 16:27 ` [PATCH v3 3/7] dt-bindings: arm: tegra: pmc: Move additionalProperties Thierry Reding
2023-07-26 16:27 ` [PATCH v3 4/7] dt-bindings: arm: tegra: pmc: Increase maximum number of clocks per powergate Thierry Reding
2023-07-26 16:27 ` [PATCH v3 5/7] dt-bindings: arm: tegra: pmc: Restructure pad configuration node schema Thierry Reding
2023-08-03 0:48 ` Rob Herring
2023-07-26 16:27 ` [PATCH v3 6/7] dt-bindings: arm: tegra: pmc: Reformat example Thierry Reding
2023-07-26 16:27 ` [PATCH v3 7/7] dt-bindings: arm: tegra: pmc: Relicense and move into soc/tegra directory Thierry Reding
2023-08-16 16:20 ` [PATCH v3 1/7] dt-bindings: arm: tegra: pmc: Improve property descriptions Thierry Reding
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).