mirror of
https://github.com/torvalds/linux.git
synced 2026-04-28 03:22:27 -04:00
Add optional "limit-hs-gear" and "limit-rate" properties to the UFS controller common binding. These properties allow limiting the maximum HS gear and rate. This is useful in cases where the customer board may have signal integrity, clock configuration or layout issues that prevent reliable operation at higher gears. Such limitations are especially critical in those platforms, where stability is prioritized over peak performance. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Ram Kumar Dwivedi <quic_rdwivedi@quicinc.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
130 lines
3.3 KiB
YAML
130 lines
3.3 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/ufs/ufs-common.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Common properties for Universal Flash Storage (UFS) Host Controllers
|
|
|
|
maintainers:
|
|
- Alim Akhtar <alim.akhtar@samsung.com>
|
|
- Avri Altman <avri.altman@wdc.com>
|
|
|
|
properties:
|
|
clocks: true
|
|
|
|
clock-names: true
|
|
|
|
freq-table-hz:
|
|
items:
|
|
items:
|
|
- description: Minimum frequency for given clock in Hz
|
|
- description: Maximum frequency for given clock in Hz
|
|
deprecated: true
|
|
description: |
|
|
Preferred is operating-points-v2.
|
|
|
|
Array of <min max> operating frequencies in Hz stored in the same order
|
|
as the clocks property. If either this property or operating-points-v2 is
|
|
not defined or a value in the array is "0" then it is assumed that the
|
|
frequency is set by the parent clock or a fixed rate clock source.
|
|
|
|
operating-points-v2:
|
|
description:
|
|
Preferred over freq-table-hz.
|
|
If present, each OPP must contain array of frequencies stored in the same
|
|
order for each clock. If clock frequency in the array is "0" then it is
|
|
assumed that the frequency is set by the parent clock or a fixed rate
|
|
clock source.
|
|
|
|
opp-table:
|
|
type: object
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
lanes-per-direction:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [1, 2]
|
|
default: 2
|
|
description:
|
|
Number of lanes available per direction. Note that it is assume same
|
|
number of lanes is used both directions at once.
|
|
|
|
vdd-hba-supply:
|
|
description:
|
|
Phandle to UFS host controller supply regulator node.
|
|
|
|
vcc-supply:
|
|
description:
|
|
Phandle to VCC supply regulator node.
|
|
|
|
vccq-supply:
|
|
description:
|
|
Phandle to VCCQ supply regulator node.
|
|
|
|
vccq2-supply:
|
|
description:
|
|
Phandle to VCCQ2 supply regulator node.
|
|
|
|
vcc-supply-1p8:
|
|
type: boolean
|
|
description:
|
|
For embedded UFS devices, valid VCC range is 1.7-1.95V or 2.7-3.6V. This
|
|
boolean property when set, specifies to use low voltage range of
|
|
1.7-1.95V. Note for external UFS cards this property is invalid and valid
|
|
VCC range is always 2.7-3.6V.
|
|
|
|
vcc-max-microamp:
|
|
description:
|
|
Specifies max. load that can be drawn from VCC supply.
|
|
|
|
vccq-max-microamp:
|
|
description:
|
|
Specifies max. load that can be drawn from VCCQ supply.
|
|
|
|
vccq2-max-microamp:
|
|
description:
|
|
Specifies max. load that can be drawn from VCCQ2 supply.
|
|
|
|
msi-parent: true
|
|
|
|
limit-hs-gear:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 1
|
|
maximum: 6
|
|
default: 6
|
|
description:
|
|
Restricts the maximum HS gear used in both TX and RX directions.
|
|
|
|
limit-gear-rate:
|
|
$ref: /schemas/types.yaml#/definitions/string
|
|
enum: [rate-a, rate-b]
|
|
default: rate-b
|
|
description:
|
|
Restricts the UFS controller to rate-a or rate-b for both TX and
|
|
RX directions.
|
|
|
|
dependencies:
|
|
freq-table-hz: [ clocks ]
|
|
operating-points-v2: [ clocks, clock-names ]
|
|
|
|
required:
|
|
- interrupts
|
|
|
|
allOf:
|
|
- if:
|
|
required:
|
|
- freq-table-hz
|
|
then:
|
|
properties:
|
|
operating-points-v2: false
|
|
- if:
|
|
required:
|
|
- operating-points-v2
|
|
then:
|
|
properties:
|
|
freq-table-hz: false
|
|
|
|
additionalProperties: true
|