Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Fri, Jul 20, 2018 at 1:16 PM Jon Hunter wrote: > Adding Linus ... OMG this sounds bad. > >> I don't know offhand. Doesn't look like it if you have custom values. > > > > It's listed under "Supported generic properties" in > > pinctrl-bindings.txt. The convention seems to be not to add a vendor > > prefix even though such custom macro values are used. The property is > > currently used by qcom,pmic-gpio, qcom,pmic-mpp, and renesas,pfc-pinctrl. > > I could not find a bindings document describing it with a vendor prefix. > > Looking at other users of the 'power-source' property it is not clear to > me if the values should/can be vendor specific or not. I see cases where > some people use definitions and others use actual voltages. > > Linus, any recommendations here? It's a bit of imperfect world here. I always imagines it was some kind of enumerator like source A, B or C... so 0, 1 defined in sime include/dt-bindings/* would make most sense to me. In general, use SI-units if you can, else use something that makes sense for the people writing the device tree. These enumerators seems to make sense. If nothing makes any sense, maybe a custom property makes it make sense. Yours, Linus Walleij
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Fri, Jul 20, 2018 at 1:16 PM Jon Hunter wrote: > Adding Linus ... OMG this sounds bad. > >> I don't know offhand. Doesn't look like it if you have custom values. > > > > It's listed under "Supported generic properties" in > > pinctrl-bindings.txt. The convention seems to be not to add a vendor > > prefix even though such custom macro values are used. The property is > > currently used by qcom,pmic-gpio, qcom,pmic-mpp, and renesas,pfc-pinctrl. > > I could not find a bindings document describing it with a vendor prefix. > > Looking at other users of the 'power-source' property it is not clear to > me if the values should/can be vendor specific or not. I see cases where > some people use definitions and others use actual voltages. > > Linus, any recommendations here? It's a bit of imperfect world here. I always imagines it was some kind of enumerator like source A, B or C... so 0, 1 defined in sime include/dt-bindings/* would make most sense to me. In general, use SI-units if you can, else use something that makes sense for the people writing the device tree. These enumerators seems to make sense. If nothing makes any sense, maybe a custom property makes it make sense. Yours, Linus Walleij
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
Adding Linus ... On 17/07/18 16:30, Aapo Vienamo wrote: ... > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > + > +The values accepted by power-source property are > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. You need to list out what properties the child nodes can have. power-source needs a vendor prefix. >>> >>> Isn't it a generic pinctrl property? >> >> I don't know offhand. Doesn't look like it if you have custom values. > > It's listed under "Supported generic properties" in > pinctrl-bindings.txt. The convention seems to be not to add a vendor > prefix even though such custom macro values are used. The property is > currently used by qcom,pmic-gpio, qcom,pmic-mpp, and renesas,pfc-pinctrl. > I could not find a bindings document describing it with a vendor prefix. Looking at other users of the 'power-source' property it is not clear to me if the values should/can be vendor specific or not. I see cases where some people use definitions and others use actual voltages. Linus, any recommendations here? Cheers Jon -- nvpublic
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
Adding Linus ... On 17/07/18 16:30, Aapo Vienamo wrote: ... > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > + > +The values accepted by power-source property are > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. You need to list out what properties the child nodes can have. power-source needs a vendor prefix. >>> >>> Isn't it a generic pinctrl property? >> >> I don't know offhand. Doesn't look like it if you have custom values. > > It's listed under "Supported generic properties" in > pinctrl-bindings.txt. The convention seems to be not to add a vendor > prefix even though such custom macro values are used. The property is > currently used by qcom,pmic-gpio, qcom,pmic-mpp, and renesas,pfc-pinctrl. > I could not find a bindings document describing it with a vendor prefix. Looking at other users of the 'power-source' property it is not clear to me if the values should/can be vendor specific or not. I see cases where some people use definitions and others use actual voltages. Linus, any recommendations here? Cheers Jon -- nvpublic
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Tue, 17 Jul 2018 08:22:07 -0600 Rob Herring wrote: > On Tue, Jul 17, 2018 at 6:23 AM Aapo Vienamo wrote: > > > > On Mon, 16 Jul 2018 09:43:09 -0600 > > Rob Herring wrote: > > > > > On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > > > > Document the pinctrl bindings used by the PMC driver for performing pad > > > > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > > > > are modified as they both cover SoC generations for which these bindings > > > > apply. > > > > > > > > Add a header defining Tegra PMC pad voltage configurations. > > > > > > > > Signed-off-by: Aapo Vienamo > > > > Acked-by: Jon Hunter > > > > --- > > > > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 > > > > +++ > > > > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > > > > ++ > > > > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > > > > 3 files changed, 197 insertions(+) > > > > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > > > > > > > diff --git > > > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > index 5a3bf7c..9528f41 100644 > > > > --- > > > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > +++ > > > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > @@ -34,3 +34,87 @@ Board DTS: > > > > pmc@c36 { > > > > nvidia,invert-interrupt; > > > > }; > > > > + > > > > +== Pad Control Nodes == > > > > + > > > > +The PMC can be used to set pad power state and voltage configuration. > > > > +The pad configuration is done via the pinctrl framework. The driver > > > > +implements power-source, low-power-enable, and low-power-disable > > > > pinconf > > > > +pin configuration node properties. Each pinctrl pin corresponds to a > > > > +single Tegra PMC pad. Thus, in the following sections of this document > > > > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. > > > > > > "pinctrl framework" is Linux specific and doesn't belong in the binding. > > > Neither does what a driver supports. Describe what the h/w supports. > > > > > > > + > > > > +The pad configuration state nodes are placed under the pmc node and > > > > they > > > > +are referred to by the pinctrl client device properties. For more > > > > > > Another driver detail not relevant. > > > > > > > +information see the examples presented later and > > > > > > examples don't document bindings. The documentation should be complete > > > without examples. > > > > > > > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > > > > + > > > > +The values accepted by power-source property are > > > > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are > > > > defined > > > > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. > > > > > > You need to list out what properties the child nodes can have. > > > > > > power-source needs a vendor prefix. > > > > Isn't it a generic pinctrl property? > > I don't know offhand. Doesn't look like it if you have custom values. It's listed under "Supported generic properties" in pinctrl-bindings.txt. The convention seems to be not to add a vendor prefix even though such custom macro values are used. The property is currently used by qcom,pmic-gpio, qcom,pmic-mpp, and renesas,pfc-pinctrl. I could not find a bindings document describing it with a vendor prefix. -Aapo
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Tue, 17 Jul 2018 08:22:07 -0600 Rob Herring wrote: > On Tue, Jul 17, 2018 at 6:23 AM Aapo Vienamo wrote: > > > > On Mon, 16 Jul 2018 09:43:09 -0600 > > Rob Herring wrote: > > > > > On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > > > > Document the pinctrl bindings used by the PMC driver for performing pad > > > > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > > > > are modified as they both cover SoC generations for which these bindings > > > > apply. > > > > > > > > Add a header defining Tegra PMC pad voltage configurations. > > > > > > > > Signed-off-by: Aapo Vienamo > > > > Acked-by: Jon Hunter > > > > --- > > > > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 > > > > +++ > > > > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > > > > ++ > > > > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > > > > 3 files changed, 197 insertions(+) > > > > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > > > > > > > diff --git > > > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > index 5a3bf7c..9528f41 100644 > > > > --- > > > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > +++ > > > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > > @@ -34,3 +34,87 @@ Board DTS: > > > > pmc@c36 { > > > > nvidia,invert-interrupt; > > > > }; > > > > + > > > > +== Pad Control Nodes == > > > > + > > > > +The PMC can be used to set pad power state and voltage configuration. > > > > +The pad configuration is done via the pinctrl framework. The driver > > > > +implements power-source, low-power-enable, and low-power-disable > > > > pinconf > > > > +pin configuration node properties. Each pinctrl pin corresponds to a > > > > +single Tegra PMC pad. Thus, in the following sections of this document > > > > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. > > > > > > "pinctrl framework" is Linux specific and doesn't belong in the binding. > > > Neither does what a driver supports. Describe what the h/w supports. > > > > > > > + > > > > +The pad configuration state nodes are placed under the pmc node and > > > > they > > > > +are referred to by the pinctrl client device properties. For more > > > > > > Another driver detail not relevant. > > > > > > > +information see the examples presented later and > > > > > > examples don't document bindings. The documentation should be complete > > > without examples. > > > > > > > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > > > > + > > > > +The values accepted by power-source property are > > > > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are > > > > defined > > > > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. > > > > > > You need to list out what properties the child nodes can have. > > > > > > power-source needs a vendor prefix. > > > > Isn't it a generic pinctrl property? > > I don't know offhand. Doesn't look like it if you have custom values. It's listed under "Supported generic properties" in pinctrl-bindings.txt. The convention seems to be not to add a vendor prefix even though such custom macro values are used. The property is currently used by qcom,pmic-gpio, qcom,pmic-mpp, and renesas,pfc-pinctrl. I could not find a bindings document describing it with a vendor prefix. -Aapo
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Tue, Jul 17, 2018 at 6:23 AM Aapo Vienamo wrote: > > On Mon, 16 Jul 2018 09:43:09 -0600 > Rob Herring wrote: > > > On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > > > Document the pinctrl bindings used by the PMC driver for performing pad > > > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > > > are modified as they both cover SoC generations for which these bindings > > > apply. > > > > > > Add a header defining Tegra PMC pad voltage configurations. > > > > > > Signed-off-by: Aapo Vienamo > > > Acked-by: Jon Hunter > > > --- > > > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 > > > +++ > > > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > > > ++ > > > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > > > 3 files changed, 197 insertions(+) > > > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > > > > > diff --git > > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > index 5a3bf7c..9528f41 100644 > > > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > @@ -34,3 +34,87 @@ Board DTS: > > > pmc@c36 { > > > nvidia,invert-interrupt; > > > }; > > > + > > > +== Pad Control Nodes == > > > + > > > +The PMC can be used to set pad power state and voltage configuration. > > > +The pad configuration is done via the pinctrl framework. The driver > > > +implements power-source, low-power-enable, and low-power-disable pinconf > > > +pin configuration node properties. Each pinctrl pin corresponds to a > > > +single Tegra PMC pad. Thus, in the following sections of this document > > > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. > > > > "pinctrl framework" is Linux specific and doesn't belong in the binding. > > Neither does what a driver supports. Describe what the h/w supports. > > > > > + > > > +The pad configuration state nodes are placed under the pmc node and they > > > +are referred to by the pinctrl client device properties. For more > > > > Another driver detail not relevant. > > > > > +information see the examples presented later and > > > > examples don't document bindings. The documentation should be complete > > without examples. > > > > > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > > > + > > > +The values accepted by power-source property are > > > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > > > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. > > > > You need to list out what properties the child nodes can have. > > > > power-source needs a vendor prefix. > > Isn't it a generic pinctrl property? I don't know offhand. Doesn't look like it if you have custom values. Rob
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Tue, Jul 17, 2018 at 6:23 AM Aapo Vienamo wrote: > > On Mon, 16 Jul 2018 09:43:09 -0600 > Rob Herring wrote: > > > On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > > > Document the pinctrl bindings used by the PMC driver for performing pad > > > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > > > are modified as they both cover SoC generations for which these bindings > > > apply. > > > > > > Add a header defining Tegra PMC pad voltage configurations. > > > > > > Signed-off-by: Aapo Vienamo > > > Acked-by: Jon Hunter > > > --- > > > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 > > > +++ > > > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > > > ++ > > > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > > > 3 files changed, 197 insertions(+) > > > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > > > > > diff --git > > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > index 5a3bf7c..9528f41 100644 > > > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > > @@ -34,3 +34,87 @@ Board DTS: > > > pmc@c36 { > > > nvidia,invert-interrupt; > > > }; > > > + > > > +== Pad Control Nodes == > > > + > > > +The PMC can be used to set pad power state and voltage configuration. > > > +The pad configuration is done via the pinctrl framework. The driver > > > +implements power-source, low-power-enable, and low-power-disable pinconf > > > +pin configuration node properties. Each pinctrl pin corresponds to a > > > +single Tegra PMC pad. Thus, in the following sections of this document > > > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. > > > > "pinctrl framework" is Linux specific and doesn't belong in the binding. > > Neither does what a driver supports. Describe what the h/w supports. > > > > > + > > > +The pad configuration state nodes are placed under the pmc node and they > > > +are referred to by the pinctrl client device properties. For more > > > > Another driver detail not relevant. > > > > > +information see the examples presented later and > > > > examples don't document bindings. The documentation should be complete > > without examples. > > > > > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > > > + > > > +The values accepted by power-source property are > > > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > > > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. > > > > You need to list out what properties the child nodes can have. > > > > power-source needs a vendor prefix. > > Isn't it a generic pinctrl property? I don't know offhand. Doesn't look like it if you have custom values. Rob
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Mon, 16 Jul 2018 09:43:09 -0600 Rob Herring wrote: > On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > > Document the pinctrl bindings used by the PMC driver for performing pad > > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > > are modified as they both cover SoC generations for which these bindings > > apply. > > > > Add a header defining Tegra PMC pad voltage configurations. > > > > Signed-off-by: Aapo Vienamo > > Acked-by: Jon Hunter > > --- > > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 +++ > > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > > ++ > > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > > 3 files changed, 197 insertions(+) > > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > > > diff --git > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > index 5a3bf7c..9528f41 100644 > > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > @@ -34,3 +34,87 @@ Board DTS: > > pmc@c36 { > > nvidia,invert-interrupt; > > }; > > + > > +== Pad Control Nodes == > > + > > +The PMC can be used to set pad power state and voltage configuration. > > +The pad configuration is done via the pinctrl framework. The driver > > +implements power-source, low-power-enable, and low-power-disable pinconf > > +pin configuration node properties. Each pinctrl pin corresponds to a > > +single Tegra PMC pad. Thus, in the following sections of this document > > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. > > "pinctrl framework" is Linux specific and doesn't belong in the binding. > Neither does what a driver supports. Describe what the h/w supports. > > > + > > +The pad configuration state nodes are placed under the pmc node and they > > +are referred to by the pinctrl client device properties. For more > > Another driver detail not relevant. > > > +information see the examples presented later and > > examples don't document bindings. The documentation should be complete > without examples. > > > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > > + > > +The values accepted by power-source property are > > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. > > You need to list out what properties the child nodes can have. > > power-source needs a vendor prefix. Isn't it a generic pinctrl property? > > + > > +Following pinctrl pin name strings are present on Tegra186: > > +csia csibdsi mipi-bias > > +pex-clk-bias pex-clk3pex-clk2pex-clk1 > > +usb0 usb1usb2usb-bias > > +uart audio hsicdbg > > +hdmi-dp0 hdmi-dp1pex-cntrl sdmmc2-hv > > +sdmmc4 cam dsibdsic > > +dsid csiccsidcsie > > +dsif spi ufs dmic-hv > > +edpsdmmc1-hv sdmmc3-hv conn > > +audio-hv ao-hv > > + > > +All of the listed Tegra186 pins except ao-hv support the > > +low-power-enable and low-power-disable properties. The power-source > > +property is supported following Tegra210 pins: sdmmc2-hv, dmic-hv, > > +sdmmc1-hv, sdmmc3-hv, audio-hv, ao-hv. > > + > > +Pad configuration state example: > > + pmc: pmc@7000e400 { > > + compatible = "nvidia,tegra186-pmc"; > > + reg = <0 0x0c36 0 0x1>, > > + <0 0x0c37 0 0x1>, > > + <0 0x0c38 0 0x1>, > > + <0 0x0c39 0 0x1>; > > + reg-names = "pmc", "wake", "aotag", "scratch"; > > + > > + ... > > + > > + sdmmc1_3v3: sdmmc1-3v3 { > > + pins = "sdmmc1-hv"; > > + power-source = ; > > + }; > > + > > + sdmmc1_1v8: sdmmc1-1v8 { > > + pins = "sdmmc1-hv"; > > + power-source = ; > > + }; > > + > > + hdmi_off: hdmi-off { > > + pins = "hdmi"; > > + low-power-enable; > > + } > > + > > + hdmi_on: hdmi-on { > > + pins = "hdmi"; > > + low-power-disable; > > + } > > + }; > > + > > +Pinctrl client example: > > + sdmmc1: sdhci@340 { > > + ... > > + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; > > + pinctrl-0 = <_3v3>; > > + pinctrl-1 = <_1v8>; > > + }; > > + > > + ... > > + > > + sor0: sor@1554 { > > + ... > > + pinctrl-0 = <_off>; > > +
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Mon, 16 Jul 2018 09:43:09 -0600 Rob Herring wrote: > On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > > Document the pinctrl bindings used by the PMC driver for performing pad > > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > > are modified as they both cover SoC generations for which these bindings > > apply. > > > > Add a header defining Tegra PMC pad voltage configurations. > > > > Signed-off-by: Aapo Vienamo > > Acked-by: Jon Hunter > > --- > > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 +++ > > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > > ++ > > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > > 3 files changed, 197 insertions(+) > > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > > > diff --git > > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > index 5a3bf7c..9528f41 100644 > > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > > @@ -34,3 +34,87 @@ Board DTS: > > pmc@c36 { > > nvidia,invert-interrupt; > > }; > > + > > +== Pad Control Nodes == > > + > > +The PMC can be used to set pad power state and voltage configuration. > > +The pad configuration is done via the pinctrl framework. The driver > > +implements power-source, low-power-enable, and low-power-disable pinconf > > +pin configuration node properties. Each pinctrl pin corresponds to a > > +single Tegra PMC pad. Thus, in the following sections of this document > > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. > > "pinctrl framework" is Linux specific and doesn't belong in the binding. > Neither does what a driver supports. Describe what the h/w supports. > > > + > > +The pad configuration state nodes are placed under the pmc node and they > > +are referred to by the pinctrl client device properties. For more > > Another driver detail not relevant. > > > +information see the examples presented later and > > examples don't document bindings. The documentation should be complete > without examples. > > > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > > + > > +The values accepted by power-source property are > > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. > > You need to list out what properties the child nodes can have. > > power-source needs a vendor prefix. Isn't it a generic pinctrl property? > > + > > +Following pinctrl pin name strings are present on Tegra186: > > +csia csibdsi mipi-bias > > +pex-clk-bias pex-clk3pex-clk2pex-clk1 > > +usb0 usb1usb2usb-bias > > +uart audio hsicdbg > > +hdmi-dp0 hdmi-dp1pex-cntrl sdmmc2-hv > > +sdmmc4 cam dsibdsic > > +dsid csiccsidcsie > > +dsif spi ufs dmic-hv > > +edpsdmmc1-hv sdmmc3-hv conn > > +audio-hv ao-hv > > + > > +All of the listed Tegra186 pins except ao-hv support the > > +low-power-enable and low-power-disable properties. The power-source > > +property is supported following Tegra210 pins: sdmmc2-hv, dmic-hv, > > +sdmmc1-hv, sdmmc3-hv, audio-hv, ao-hv. > > + > > +Pad configuration state example: > > + pmc: pmc@7000e400 { > > + compatible = "nvidia,tegra186-pmc"; > > + reg = <0 0x0c36 0 0x1>, > > + <0 0x0c37 0 0x1>, > > + <0 0x0c38 0 0x1>, > > + <0 0x0c39 0 0x1>; > > + reg-names = "pmc", "wake", "aotag", "scratch"; > > + > > + ... > > + > > + sdmmc1_3v3: sdmmc1-3v3 { > > + pins = "sdmmc1-hv"; > > + power-source = ; > > + }; > > + > > + sdmmc1_1v8: sdmmc1-1v8 { > > + pins = "sdmmc1-hv"; > > + power-source = ; > > + }; > > + > > + hdmi_off: hdmi-off { > > + pins = "hdmi"; > > + low-power-enable; > > + } > > + > > + hdmi_on: hdmi-on { > > + pins = "hdmi"; > > + low-power-disable; > > + } > > + }; > > + > > +Pinctrl client example: > > + sdmmc1: sdhci@340 { > > + ... > > + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; > > + pinctrl-0 = <_3v3>; > > + pinctrl-1 = <_1v8>; > > + }; > > + > > + ... > > + > > + sor0: sor@1554 { > > + ... > > + pinctrl-0 = <_off>; > > +
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > Document the pinctrl bindings used by the PMC driver for performing pad > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > are modified as they both cover SoC generations for which these bindings > apply. > > Add a header defining Tegra PMC pad voltage configurations. > > Signed-off-by: Aapo Vienamo > Acked-by: Jon Hunter > --- > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 +++ > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > ++ > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > 3 files changed, 197 insertions(+) > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > diff --git > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > index 5a3bf7c..9528f41 100644 > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > @@ -34,3 +34,87 @@ Board DTS: > pmc@c36 { > nvidia,invert-interrupt; > }; > + > +== Pad Control Nodes == > + > +The PMC can be used to set pad power state and voltage configuration. > +The pad configuration is done via the pinctrl framework. The driver > +implements power-source, low-power-enable, and low-power-disable pinconf > +pin configuration node properties. Each pinctrl pin corresponds to a > +single Tegra PMC pad. Thus, in the following sections of this document > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. "pinctrl framework" is Linux specific and doesn't belong in the binding. Neither does what a driver supports. Describe what the h/w supports. > + > +The pad configuration state nodes are placed under the pmc node and they > +are referred to by the pinctrl client device properties. For more Another driver detail not relevant. > +information see the examples presented later and examples don't document bindings. The documentation should be complete without examples. > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > + > +The values accepted by power-source property are > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. You need to list out what properties the child nodes can have. power-source needs a vendor prefix. > + > +Following pinctrl pin name strings are present on Tegra186: > +csia csibdsi mipi-bias > +pex-clk-bias pex-clk3pex-clk2pex-clk1 > +usb0 usb1usb2usb-bias > +uart audio hsicdbg > +hdmi-dp0 hdmi-dp1pex-cntrl sdmmc2-hv > +sdmmc4 cam dsibdsic > +dsid csiccsidcsie > +dsif spi ufs dmic-hv > +edp sdmmc1-hv sdmmc3-hv conn > +audio-hv ao-hv > + > +All of the listed Tegra186 pins except ao-hv support the > +low-power-enable and low-power-disable properties. The power-source > +property is supported following Tegra210 pins: sdmmc2-hv, dmic-hv, > +sdmmc1-hv, sdmmc3-hv, audio-hv, ao-hv. > + > +Pad configuration state example: > + pmc: pmc@7000e400 { > + compatible = "nvidia,tegra186-pmc"; > + reg = <0 0x0c36 0 0x1>, > + <0 0x0c37 0 0x1>, > + <0 0x0c38 0 0x1>, > + <0 0x0c39 0 0x1>; > + reg-names = "pmc", "wake", "aotag", "scratch"; > + > + ... > + > + sdmmc1_3v3: sdmmc1-3v3 { > + pins = "sdmmc1-hv"; > + power-source = ; > + }; > + > + sdmmc1_1v8: sdmmc1-1v8 { > + pins = "sdmmc1-hv"; > + power-source = ; > + }; > + > + hdmi_off: hdmi-off { > + pins = "hdmi"; > + low-power-enable; > + } > + > + hdmi_on: hdmi-on { > + pins = "hdmi"; > + low-power-disable; > + } > + }; > + > +Pinctrl client example: > + sdmmc1: sdhci@340 { > + ... > + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; > + pinctrl-0 = <_3v3>; > + pinctrl-1 = <_1v8>; > + }; > + > + ... > + > + sor0: sor@1554 { > + ... > + pinctrl-0 = <_off>; > + pinctrl-1 = <_on>; > + pinctrl-names = "hdmi-on", "hdmi-off"; > + }; > diff --git > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt > index a74b37b..d50a505 100644 > ---
Re: [PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
On Thu, Jul 12, 2018 at 03:00:11PM +0300, Aapo Vienamo wrote: > Document the pinctrl bindings used by the PMC driver for performing pad > configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt > are modified as they both cover SoC generations for which these bindings > apply. > > Add a header defining Tegra PMC pad voltage configurations. > > Signed-off-by: Aapo Vienamo > Acked-by: Jon Hunter > --- > .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 +++ > .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 > ++ > include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 > 3 files changed, 197 insertions(+) > create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h > > diff --git > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > index 5a3bf7c..9528f41 100644 > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt > @@ -34,3 +34,87 @@ Board DTS: > pmc@c36 { > nvidia,invert-interrupt; > }; > + > +== Pad Control Nodes == > + > +The PMC can be used to set pad power state and voltage configuration. > +The pad configuration is done via the pinctrl framework. The driver > +implements power-source, low-power-enable, and low-power-disable pinconf > +pin configuration node properties. Each pinctrl pin corresponds to a > +single Tegra PMC pad. Thus, in the following sections of this document > +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. "pinctrl framework" is Linux specific and doesn't belong in the binding. Neither does what a driver supports. Describe what the h/w supports. > + > +The pad configuration state nodes are placed under the pmc node and they > +are referred to by the pinctrl client device properties. For more Another driver detail not relevant. > +information see the examples presented later and examples don't document bindings. The documentation should be complete without examples. > +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. > + > +The values accepted by power-source property are > +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined > +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. You need to list out what properties the child nodes can have. power-source needs a vendor prefix. > + > +Following pinctrl pin name strings are present on Tegra186: > +csia csibdsi mipi-bias > +pex-clk-bias pex-clk3pex-clk2pex-clk1 > +usb0 usb1usb2usb-bias > +uart audio hsicdbg > +hdmi-dp0 hdmi-dp1pex-cntrl sdmmc2-hv > +sdmmc4 cam dsibdsic > +dsid csiccsidcsie > +dsif spi ufs dmic-hv > +edp sdmmc1-hv sdmmc3-hv conn > +audio-hv ao-hv > + > +All of the listed Tegra186 pins except ao-hv support the > +low-power-enable and low-power-disable properties. The power-source > +property is supported following Tegra210 pins: sdmmc2-hv, dmic-hv, > +sdmmc1-hv, sdmmc3-hv, audio-hv, ao-hv. > + > +Pad configuration state example: > + pmc: pmc@7000e400 { > + compatible = "nvidia,tegra186-pmc"; > + reg = <0 0x0c36 0 0x1>, > + <0 0x0c37 0 0x1>, > + <0 0x0c38 0 0x1>, > + <0 0x0c39 0 0x1>; > + reg-names = "pmc", "wake", "aotag", "scratch"; > + > + ... > + > + sdmmc1_3v3: sdmmc1-3v3 { > + pins = "sdmmc1-hv"; > + power-source = ; > + }; > + > + sdmmc1_1v8: sdmmc1-1v8 { > + pins = "sdmmc1-hv"; > + power-source = ; > + }; > + > + hdmi_off: hdmi-off { > + pins = "hdmi"; > + low-power-enable; > + } > + > + hdmi_on: hdmi-on { > + pins = "hdmi"; > + low-power-disable; > + } > + }; > + > +Pinctrl client example: > + sdmmc1: sdhci@340 { > + ... > + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; > + pinctrl-0 = <_3v3>; > + pinctrl-1 = <_1v8>; > + }; > + > + ... > + > + sor0: sor@1554 { > + ... > + pinctrl-0 = <_off>; > + pinctrl-1 = <_on>; > + pinctrl-names = "hdmi-on", "hdmi-off"; > + }; > diff --git > a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt > b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt > index a74b37b..d50a505 100644 > ---
[PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
Document the pinctrl bindings used by the PMC driver for performing pad configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt are modified as they both cover SoC generations for which these bindings apply. Add a header defining Tegra PMC pad voltage configurations. Signed-off-by: Aapo Vienamo Acked-by: Jon Hunter --- .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 +++ .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 ++ include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 3 files changed, 197 insertions(+) create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt index 5a3bf7c..9528f41 100644 --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt @@ -34,3 +34,87 @@ Board DTS: pmc@c36 { nvidia,invert-interrupt; }; + +== Pad Control Nodes == + +The PMC can be used to set pad power state and voltage configuration. +The pad configuration is done via the pinctrl framework. The driver +implements power-source, low-power-enable, and low-power-disable pinconf +pin configuration node properties. Each pinctrl pin corresponds to a +single Tegra PMC pad. Thus, in the following sections of this document +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. + +The pad configuration state nodes are placed under the pmc node and they +are referred to by the pinctrl client device properties. For more +information see the examples presented later and +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. + +The values accepted by power-source property are +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. + +Following pinctrl pin name strings are present on Tegra186: +csia csibdsi mipi-bias +pex-clk-bias pex-clk3pex-clk2pex-clk1 +usb0 usb1usb2usb-bias +uart audio hsicdbg +hdmi-dp0 hdmi-dp1pex-cntrl sdmmc2-hv +sdmmc4 cam dsibdsic +dsid csiccsidcsie +dsif spi ufs dmic-hv +edpsdmmc1-hv sdmmc3-hv conn +audio-hv ao-hv + +All of the listed Tegra186 pins except ao-hv support the +low-power-enable and low-power-disable properties. The power-source +property is supported following Tegra210 pins: sdmmc2-hv, dmic-hv, +sdmmc1-hv, sdmmc3-hv, audio-hv, ao-hv. + +Pad configuration state example: + pmc: pmc@7000e400 { + compatible = "nvidia,tegra186-pmc"; + reg = <0 0x0c36 0 0x1>, + <0 0x0c37 0 0x1>, + <0 0x0c38 0 0x1>, + <0 0x0c39 0 0x1>; + reg-names = "pmc", "wake", "aotag", "scratch"; + + ... + + sdmmc1_3v3: sdmmc1-3v3 { + pins = "sdmmc1-hv"; + power-source = ; + }; + + sdmmc1_1v8: sdmmc1-1v8 { + pins = "sdmmc1-hv"; + power-source = ; + }; + + hdmi_off: hdmi-off { + pins = "hdmi"; + low-power-enable; + } + + hdmi_on: hdmi-on { + pins = "hdmi"; + low-power-disable; + } + }; + +Pinctrl client example: + sdmmc1: sdhci@340 { + ... + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; + pinctrl-0 = <_3v3>; + pinctrl-1 = <_1v8>; + }; + + ... + + sor0: sor@1554 { + ... + pinctrl-0 = <_off>; + pinctrl-1 = <_on>; + pinctrl-names = "hdmi-on", "hdmi-off"; + }; diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt index a74b37b..d50a505 100644 --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt @@ -195,3 +195,98 @@ Example: power-domains = <_audio>; ... }; + +== Pad Control Nodes == + +The PMC can be used to set pad power state and voltage configuration. +This functionality is present on SoCs from Tegra124 onwards. The pad +configuration is done via the pinctrl framework. The driver implements +power-source, low-power-enable, and low-power-disable pinconf pin +configuration node properties. Each pinctrl pin corresponds
[PATCH v3 5/7] dt-bindings: Add Tegra PMC pad configuration bindings
Document the pinctrl bindings used by the PMC driver for performing pad configuration. Both nvidia,tegra186-pmc.txt and nvidia,tegra20-pmc.txt are modified as they both cover SoC generations for which these bindings apply. Add a header defining Tegra PMC pad voltage configurations. Signed-off-by: Aapo Vienamo Acked-by: Jon Hunter --- .../bindings/arm/tegra/nvidia,tegra186-pmc.txt | 84 +++ .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 95 ++ include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h | 18 3 files changed, 197 insertions(+) create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt index 5a3bf7c..9528f41 100644 --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt @@ -34,3 +34,87 @@ Board DTS: pmc@c36 { nvidia,invert-interrupt; }; + +== Pad Control Nodes == + +The PMC can be used to set pad power state and voltage configuration. +The pad configuration is done via the pinctrl framework. The driver +implements power-source, low-power-enable, and low-power-disable pinconf +pin configuration node properties. Each pinctrl pin corresponds to a +single Tegra PMC pad. Thus, in the following sections of this document +pin refers to the pinctrl frameworks notion of a Tegra PMC pad. + +The pad configuration state nodes are placed under the pmc node and they +are referred to by the pinctrl client device properties. For more +information see the examples presented later and +Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. + +The values accepted by power-source property are +TEGRA_IO_PAD_VOLTAGE_1V8 and TEGRA_IO_PAD_VOLTAGE_3V3, which are defined +in dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. + +Following pinctrl pin name strings are present on Tegra186: +csia csibdsi mipi-bias +pex-clk-bias pex-clk3pex-clk2pex-clk1 +usb0 usb1usb2usb-bias +uart audio hsicdbg +hdmi-dp0 hdmi-dp1pex-cntrl sdmmc2-hv +sdmmc4 cam dsibdsic +dsid csiccsidcsie +dsif spi ufs dmic-hv +edpsdmmc1-hv sdmmc3-hv conn +audio-hv ao-hv + +All of the listed Tegra186 pins except ao-hv support the +low-power-enable and low-power-disable properties. The power-source +property is supported following Tegra210 pins: sdmmc2-hv, dmic-hv, +sdmmc1-hv, sdmmc3-hv, audio-hv, ao-hv. + +Pad configuration state example: + pmc: pmc@7000e400 { + compatible = "nvidia,tegra186-pmc"; + reg = <0 0x0c36 0 0x1>, + <0 0x0c37 0 0x1>, + <0 0x0c38 0 0x1>, + <0 0x0c39 0 0x1>; + reg-names = "pmc", "wake", "aotag", "scratch"; + + ... + + sdmmc1_3v3: sdmmc1-3v3 { + pins = "sdmmc1-hv"; + power-source = ; + }; + + sdmmc1_1v8: sdmmc1-1v8 { + pins = "sdmmc1-hv"; + power-source = ; + }; + + hdmi_off: hdmi-off { + pins = "hdmi"; + low-power-enable; + } + + hdmi_on: hdmi-on { + pins = "hdmi"; + low-power-disable; + } + }; + +Pinctrl client example: + sdmmc1: sdhci@340 { + ... + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; + pinctrl-0 = <_3v3>; + pinctrl-1 = <_1v8>; + }; + + ... + + sor0: sor@1554 { + ... + pinctrl-0 = <_off>; + pinctrl-1 = <_on>; + pinctrl-names = "hdmi-on", "hdmi-off"; + }; diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt index a74b37b..d50a505 100644 --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt @@ -195,3 +195,98 @@ Example: power-domains = <_audio>; ... }; + +== Pad Control Nodes == + +The PMC can be used to set pad power state and voltage configuration. +This functionality is present on SoCs from Tegra124 onwards. The pad +configuration is done via the pinctrl framework. The driver implements +power-source, low-power-enable, and low-power-disable pinconf pin +configuration node properties. Each pinctrl pin corresponds