Config framework parses device tree and provides a list of register settings with mask per mode to be applied by the controller. Add binding document for config settings framework. Config settings are defined as a property per field and have different modes per device. Signed-off-by: Krishna Yarlagadda <kyarlagadda@xxxxxxxxxx> --- .../misc/nvidia,tegra-config-settings.yaml | 62 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 63 insertions(+) create mode 100644 Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml b/Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml new file mode 100644 index 000000000000..4e5d52504c01 --- /dev/null +++ b/Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/misc/nvidia,tegra-config-settings.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Config properties for a device + +description: + Config setting is the configuration based on chip/board/system + characterization on interface/controller settings. This is needed for + - making the controller internal configuration to better perform + - making the interface to work proper by setting drive strength, slew + rates etc + - making the low power leakage. + There are two types of recommended configuration settings + - Controller register specific for internal operation of controller. + - Pad control/Pinmux/pincontrol registers for interfacing. + These configurations can further be categorized as static and dynamic. + - Static config does not change until a controller is reset. + - Dynamic config changes based on mode or condition, controller is + operating in. + +maintainers: + - Thierry Reding <thierry.reding@xxxxxxxxx> + +properties: + $nodename: + const: configsettings + +patternProperties: + "config-[a-z0-9_]+$": + description: + Config node representing properties of a device. Properties of + each device are listed under a unique subnode and referenced from + device node. + type: object + additionalProperties: false + + patternProperties: + "^[a-z0-9_]+-cfg$": + description: + Config profiles applied conditionally. + type: object + patternProperties: + "nvidia,[a-z0-9_]+$": + description: + Register field configuration. + $ref: /schemas/types.yaml#/definitions/uint32 + +additionalProperties: true + +examples: + - | + configsettings { + configi2c1: config-i2c3160000 { + i2c-common-cfg { + nvidia,i2c-hs-sclk-high-period = <0x03>; + nvidia,i2c-hs-sclk-low-period = <0x08>; + }; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 8a60c98ac755..ac8410ed421f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22260,6 +22260,7 @@ M: Thierry Reding <thierry.reding@xxxxxxxxx> R: Laxman Dewangan <ldewangan@xxxxxxxxxx> R: Krishna Yarlagadda <kyarlagadda@xxxxxxxxxx> S: Supported +F: Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml F: Documentation/misc-devices/tegra-cfg.rst TEGRA PWM DRIVER -- 2.43.2