Message ID | 20210914072627.24173-1-heiko.thiery@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: imx8mq-kontron-pitx-imx8m: remove vqmmc-supply node | expand |
Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: > The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for > the 1V8 power domain. It is not only used as supply for the eMMC. > So this voltage can not be changed and is not allowed to switched off. > Therefore we do not want to provide this regulator to the SDHC driver to > control this voltage. > This specific requirement should not be solved by removing the regulator connection from the SDHCI node, but instead by constraining the regulator voltage range to a fixed 3.3V and marking the regulator as always-on to reflect the hardware requirements in the DT. Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the faster pinctrl states, as you can't use the faster pin states anyways, as they require a 1.8V signaling voltage. Regards, Lucas > Fixes: 5dbadc848259 ("arm64: dts: fsl: add support for Kontron pitx-imx8m board") > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> > --- > > v2: > - slightly reword the commit message (thanks Michael) > - add Fixes tag (thanks Fabio) > > > arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts b/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts > index f593e4ff62e1..436d98135ba9 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts > @@ -348,7 +348,6 @@ &usdhc1 { > pinctrl-0 = <&pinctrl_usdhc1>; > pinctrl-1 = <&pinctrl_usdhc1_100mhz>; > pinctrl-2 = <&pinctrl_usdhc1_200mhz>; > - vqmmc-supply = <&sw4_reg>; > bus-width = <8>; > non-removable; > no-sd;
Hi Lucas, Am 2021-09-14 10:20, schrieb Lucas Stach: > Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: >> The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for >> the 1V8 power domain. It is not only used as supply for the eMMC. >> So this voltage can not be changed and is not allowed to switched off. >> Therefore we do not want to provide this regulator to the SDHC driver >> to >> control this voltage. >> > This specific requirement should not be solved by removing the > regulator connection from the SDHCI node, but instead by constraining > the regulator voltage range to a fixed 3.3V and marking the regulator > as always-on to reflect the hardware requirements in the DT. > > Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the > faster pinctrl states, as you can't use the faster pin states anyways, > as they require a 1.8V signaling voltage. Are you speaking of the 1.8V signalling modes? As far as I know the IMX SDHC controller will switch the voltage by its own function pin. That is, its not a GPIO. -michael
Am Dienstag, dem 14.09.2021 um 10:32 +0200 schrieb Michael Walle: > Hi Lucas, > > Am 2021-09-14 10:20, schrieb Lucas Stach: > > Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: > > > The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for > > > the 1V8 power domain. It is not only used as supply for the eMMC. > > > So this voltage can not be changed and is not allowed to switched off. > > > Therefore we do not want to provide this regulator to the SDHC driver > > > to > > > control this voltage. > > > > > This specific requirement should not be solved by removing the > > regulator connection from the SDHCI node, but instead by constraining > > the regulator voltage range to a fixed 3.3V and marking the regulator > > as always-on to reflect the hardware requirements in the DT. > > > > Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the > > faster pinctrl states, as you can't use the faster pin states anyways, > > as they require a 1.8V signaling voltage. > > Are you speaking of the 1.8V signalling modes? As far as I know the > IMX SDHC controller will switch the voltage by its own function pin. > That is, its not a GPIO. Ah, I mixed things up here. This is a fixed 1.8V supply, which is valid for eMMC, so the high-speed modes are available. My comment still applies that this should be fixed by constraining the regulator, not by removing the DT connection. vqmmc is the MMC IO voltage, which can be switched either by the function pin, which gets toggled automatically when software does the voltage switch, or by explicitly switching the regulator voltage. eMMCs are a bit special as they can work with a fixed 1.8V IO supply and don't need to start with 3.3V. Regards, Lucas
Am 2021-09-14 10:52, schrieb Lucas Stach: > Am Dienstag, dem 14.09.2021 um 10:32 +0200 schrieb Michael Walle: >> Hi Lucas, >> >> Am 2021-09-14 10:20, schrieb Lucas Stach: >> > Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: >> > > The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for >> > > the 1V8 power domain. It is not only used as supply for the eMMC. >> > > So this voltage can not be changed and is not allowed to switched off. >> > > Therefore we do not want to provide this regulator to the SDHC driver >> > > to >> > > control this voltage. >> > > >> > This specific requirement should not be solved by removing the >> > regulator connection from the SDHCI node, but instead by constraining >> > the regulator voltage range to a fixed 3.3V and marking the regulator >> > as always-on to reflect the hardware requirements in the DT. >> > >> > Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the >> > faster pinctrl states, as you can't use the faster pin states anyways, >> > as they require a 1.8V signaling voltage. >> >> Are you speaking of the 1.8V signalling modes? As far as I know the >> IMX SDHC controller will switch the voltage by its own function pin. >> That is, its not a GPIO. > > Ah, I mixed things up here. This is a fixed 1.8V supply, which is valid > for eMMC, so the high-speed modes are available. My comment still > applies that this should be fixed by constraining the regulator, not by > removing the DT connection. > > vqmmc is the MMC IO voltage, which can be switched either by the > function pin, which gets toggled automatically when software does the > voltage switch, or by explicitly switching the regulator voltage. eMMCs > are a bit special as they can work with a fixed 1.8V IO supply and > don't need to start with 3.3V. I tend to agree. There might be some useful information, like the driver could fetch the voltage although it is not able to change it. NB. the regulator is already fixed at 1.8V and is marked as always on. from arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts: sw4_reg: sw4 { regulator-name = "V_1V8_S0"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; -michael
Hi, Am Di., 14. Sept. 2021 um 11:12 Uhr schrieb Michael Walle <michael@walle.cc>: > > Am 2021-09-14 10:52, schrieb Lucas Stach: > > Am Dienstag, dem 14.09.2021 um 10:32 +0200 schrieb Michael Walle: > >> Hi Lucas, > >> > >> Am 2021-09-14 10:20, schrieb Lucas Stach: > >> > Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: > >> > > The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for > >> > > the 1V8 power domain. It is not only used as supply for the eMMC. > >> > > So this voltage can not be changed and is not allowed to switched off. > >> > > Therefore we do not want to provide this regulator to the SDHC driver > >> > > to > >> > > control this voltage. > >> > > > >> > This specific requirement should not be solved by removing the > >> > regulator connection from the SDHCI node, but instead by constraining > >> > the regulator voltage range to a fixed 3.3V and marking the regulator > >> > as always-on to reflect the hardware requirements in the DT. > >> > > >> > Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the > >> > faster pinctrl states, as you can't use the faster pin states anyways, > >> > as they require a 1.8V signaling voltage. > >> > >> Are you speaking of the 1.8V signalling modes? As far as I know the > >> IMX SDHC controller will switch the voltage by its own function pin. > >> That is, its not a GPIO. > > > > Ah, I mixed things up here. This is a fixed 1.8V supply, which is valid > > for eMMC, so the high-speed modes are available. My comment still > > applies that this should be fixed by constraining the regulator, not by > > removing the DT connection. > > > > vqmmc is the MMC IO voltage, which can be switched either by the > > function pin, which gets toggled automatically when software does the > > voltage switch, or by explicitly switching the regulator voltage. eMMCs > > are a bit special as they can work with a fixed 1.8V IO supply and > > don't need to start with 3.3V. > > I tend to agree. There might be some useful information, like the driver > could fetch the voltage although it is not able to change it. > > NB. the regulator is already fixed at 1.8V and is marked as always on. > > from arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts: > > sw4_reg: sw4 { > regulator-name = "V_1V8_S0"; > regulator-min-microvolt = <1800000>; > regulator-max-microvolt = <1800000>; > regulator-always-on; > }; To be honest, the intention was that I wanted to separate the dependency between emmc and PMIC. Debian 11 unfortunately does not have a driver enabled for the PMIC used and therefore cannot initialize the emmc driver. So I should reconsider how to fix this.
Am 2021-09-14 10:52, schrieb Lucas Stach: > Am Dienstag, dem 14.09.2021 um 10:32 +0200 schrieb Michael Walle: >> Hi Lucas, >> >> Am 2021-09-14 10:20, schrieb Lucas Stach: >> > Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: >> > > The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for >> > > the 1V8 power domain. It is not only used as supply for the eMMC. >> > > So this voltage can not be changed and is not allowed to switched off. >> > > Therefore we do not want to provide this regulator to the SDHC driver >> > > to >> > > control this voltage. >> > > >> > This specific requirement should not be solved by removing the >> > regulator connection from the SDHCI node, but instead by constraining >> > the regulator voltage range to a fixed 3.3V and marking the regulator >> > as always-on to reflect the hardware requirements in the DT. >> > >> > Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the >> > faster pinctrl states, as you can't use the faster pin states anyways, >> > as they require a 1.8V signaling voltage. >> >> Are you speaking of the 1.8V signalling modes? As far as I know the >> IMX SDHC controller will switch the voltage by its own function pin. >> That is, its not a GPIO. > > Ah, I mixed things up here. This is a fixed 1.8V supply, which is valid > for eMMC, so the high-speed modes are available. My comment still > applies that this should be fixed by constraining the regulator, not by > removing the DT connection. > > vqmmc is the MMC IO voltage, which can be switched either by the > function pin, which gets toggled automatically when software does the > voltage switch, or by explicitly switching the regulator voltage. eMMCs > are a bit special as they can work with a fixed 1.8V IO supply and > don't need to start with 3.3V. Mh, I have some kind of general question though. Lets take the SDHC controller for the SD card, which needs to change the voltage if you want to use the high speed mode of the cards. Ie. from 3.3V to 1.8V. The controller does this autonomously with the help of a pin which is controlled by the controller itself. Will it have a vqmmc-supply property? And if so what whould the supply be? -michael
Am Dienstag, dem 14.09.2021 um 11:39 +0200 schrieb Michael Walle: > Am 2021-09-14 10:52, schrieb Lucas Stach: > > Am Dienstag, dem 14.09.2021 um 10:32 +0200 schrieb Michael Walle: > > > Hi Lucas, > > > > > > Am 2021-09-14 10:20, schrieb Lucas Stach: > > > > Am Dienstag, dem 14.09.2021 um 09:26 +0200 schrieb Heiko Thiery: > > > > > The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for > > > > > the 1V8 power domain. It is not only used as supply for the eMMC. > > > > > So this voltage can not be changed and is not allowed to switched off. > > > > > Therefore we do not want to provide this regulator to the SDHC driver > > > > > to > > > > > control this voltage. > > > > > > > > > This specific requirement should not be solved by removing the > > > > regulator connection from the SDHCI node, but instead by constraining > > > > the regulator voltage range to a fixed 3.3V and marking the regulator > > > > as always-on to reflect the hardware requirements in the DT. > > > > > > > > Also if your eMMC vqmmc is a fixed 3.3V, I don't think you need the > > > > faster pinctrl states, as you can't use the faster pin states anyways, > > > > as they require a 1.8V signaling voltage. > > > > > > Are you speaking of the 1.8V signalling modes? As far as I know the > > > IMX SDHC controller will switch the voltage by its own function pin. > > > That is, its not a GPIO. > > > > Ah, I mixed things up here. This is a fixed 1.8V supply, which is valid > > for eMMC, so the high-speed modes are available. My comment still > > applies that this should be fixed by constraining the regulator, not by > > removing the DT connection. > > > > vqmmc is the MMC IO voltage, which can be switched either by the > > function pin, which gets toggled automatically when software does the > > voltage switch, or by explicitly switching the regulator voltage. eMMCs > > are a bit special as they can work with a fixed 1.8V IO supply and > > don't need to start with 3.3V. > > Mh, I have some kind of general question though. > > Lets take the SDHC controller for the SD card, which needs to change > the voltage if you want to use the high speed mode of the cards. Ie. > from 3.3V to 1.8V. The controller does this autonomously with the help > of a pin which is controlled by the controller itself. Will it have a > vqmmc-supply property? And if so what whould the supply be? > If the IO voltage regulator is controlled via the fixed function pin you would not add the vqmmc-supply to the DT, as the regulator isn't known to Linux in that case. The vqmmc-supply should be used when you have a regulator which is controlled via some other path than the fixed function pin, or if the regulator is fixed. By having the connection to the fixed regulator, the MMC core is able to see that certain modes of operation are not available. Regards, Lucas
Hello Heiko, On Tue, Sep 14, 2021 at 11:37:04AM +0200, Heiko Thiery wrote: > dependency between emmc and PMIC. Debian 11 unfortunately does not > have a driver enabled for the PMIC used and therefore cannot > initialize the emmc driver. Updating to Debian 12 should give you a kernel that supports the pfuze100 driver. (But I guess you know that, because it was enabled by someone named Heiko Thiery. :-) Best regards Uwe
Hello Heiko, On Tue, Dec 12, 2023 at 02:50:04PM +0100, Heiko Thiery wrote: > Am Di., 12. Dez. 2023 um 14:41 Uhr schrieb Uwe Kleine-König < > u.kleine-koenig@pengutronix.de>: > > On Tue, Sep 14, 2021 at 11:37:04AM +0200, Heiko Thiery wrote: > > > dependency between emmc and PMIC. Debian 11 unfortunately does not > > > have a driver enabled for the PMIC used and therefore cannot > > > initialize the emmc driver. > > > > Updating to Debian 12 should give you a kernel that supports the > > pfuze100 driver. (But I guess you know that, because it was enabled by > > someone named Heiko Thiery. :-) > > > Thanks for the hint! I'm working on cleaning up my inbox and had old mails open without noticing. I only noticed after sending out that the mail is 2 years old already and I should have considered it done without a reply. Sorry if my mail appeared sneaky. Best regards Uwe
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts b/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts index f593e4ff62e1..436d98135ba9 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts +++ b/arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts @@ -348,7 +348,6 @@ &usdhc1 { pinctrl-0 = <&pinctrl_usdhc1>; pinctrl-1 = <&pinctrl_usdhc1_100mhz>; pinctrl-2 = <&pinctrl_usdhc1_200mhz>; - vqmmc-supply = <&sw4_reg>; bus-width = <8>; non-removable; no-sd;
The sw4 output (V_1V8_S0 voltage) from the PMIC is the main supply for the 1V8 power domain. It is not only used as supply for the eMMC. So this voltage can not be changed and is not allowed to switched off. Therefore we do not want to provide this regulator to the SDHC driver to control this voltage. Fixes: 5dbadc848259 ("arm64: dts: fsl: add support for Kontron pitx-imx8m board") Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> --- v2: - slightly reword the commit message (thanks Michael) - add Fixes tag (thanks Fabio) arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts | 1 - 1 file changed, 1 deletion(-)