Message ID | 20240506225139.57647-4-kyarlagadda@nvidia.com |
---|---|
State | New |
Headers | show |
Series | Introduce Tegra register config settings | expand |
On 07/05/2024 00:51, Krishna Yarlagadda wrote: > 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. Please use subject prefixes matching the subsystem. You can get them for example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching. For bindings, the preferred subjects are explained here: https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters > > Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> > --- > .../misc/nvidia,tegra-config-settings.yaml | 50 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 51 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..e379cbd5b597 > --- /dev/null > +++ b/Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml > @@ -0,0 +1,50 @@ > +# 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. No full stop, that's a title. > + > +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@gmail.com> > + > +patternProperties: > + "^[a-z0-9_]*$": > + description: > + Config name to be applied on controller. > + type: object Nope, this means nothing. Sorry, describe hardware, do not create some fake nodes. > + > +additionalProperties: true > + > +examples: > + - | > + config { Messed indentation. > + common { > + nvidia,i2c-hs-sclk-high-period = <0x03>; > + nvidia,i2c-hs-sclk-low-period = <0x08>; > + }; Best regards, Krzysztof
On Tue May 7, 2024 at 8:32 AM CEST, Krzysztof Kozlowski wrote: > On 07/05/2024 00:51, Krishna Yarlagadda wrote: > > 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. > > Please use subject prefixes matching the subsystem. You can get them for > example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory > your patch is touching. For bindings, the preferred subjects are > explained here: > https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters > > > > > Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> > > --- > > .../misc/nvidia,tegra-config-settings.yaml | 50 +++++++++++++++++++ > > MAINTAINERS | 1 + > > 2 files changed, 51 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..e379cbd5b597 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml > > @@ -0,0 +1,50 @@ > > +# 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. > > No full stop, that's a title. > > > + > > +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@gmail.com> > > + > > +patternProperties: > > + "^[a-z0-9_]*$": > > + description: > > + Config name to be applied on controller. > > + type: object > > Nope, this means nothing. Sorry, describe hardware, do not create some > fake nodes. We're trying to solve a real problem here, though. In order for the hardware to operate properly we need certain parameters to be programmed into the hardware. If this is not acceptable, do you have a suggestion on where else to put this information? Thierry
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..e379cbd5b597 --- /dev/null +++ b/Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml @@ -0,0 +1,50 @@ +# 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@gmail.com> + +patternProperties: + "^[a-z0-9_]*$": + description: + Config name to be applied on controller. + type: object + +additionalProperties: true + +examples: + - | + config { + common { + nvidia,i2c-hs-sclk-high-period = <0x03>; + nvidia,i2c-hs-sclk-low-period = <0x08>; + }; + fast { + nvidia,i2c-clk-divisor-fs-mode = <0x3c>; + nvidia,i2c-sclk-high-period = <0x02>; + }; + fastplus { + nvidia,i2c-clk-divisor-fs-mode = <0x4f>; + nvidia,i2c-sclk-high-period = <0x07>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 9eeb749ef234..a8c0cfd1d5a6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21996,6 +21996,7 @@ M: Thierry Reding <thierry.reding@gmail.com> R: Laxman Dewangan <ldewangan@nvidia.com> R: Krishna Yarlagadda <kyarlagadda@nvidia.com> S: Supported +F: Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml F: Documentation/misc-devices/tegra-cfg.rst F: drivers/soc/tegra/tegra-cfg.c
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@nvidia.com> --- .../misc/nvidia,tegra-config-settings.yaml | 50 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 51 insertions(+) create mode 100644 Documentation/devicetree/bindings/misc/nvidia,tegra-config-settings.yaml