Commit 1019b783 authored by Martin Kepplinger's avatar Martin Kepplinger Committed by Shawn Guo

arm64: dts: imx8mq-librem5: describe power supply for cameras

CAMERA_PWR_EN controls two different power supplies that cameras will use.
The hardware killswitch controls a third one. Describe that appropriately.

The pinctrl that describes the gpio that is used in 2 places here is added
to the pmic. This is done because pmic is powered early enough to make
sure this will work.

When we would have put the same pinctrl property into the 2 regulator nodes
(instead of the pmic), we'd get:

imx8mq-pinctrl 30330000.pinctrl: pin MX8MQ_IOMUXC_GPIO1_IO00 already requested by regulator-csi-1v8; cannot claim for regulator-vcam-2v8
imx8mq-pinctrl 30330000.pinctrl: pin-10 (regulator-vcam-2v8) status -22
imx8mq-pinctrl 30330000.pinctrl: could not request pin 10 (MX8MQ_IOMUXC_GPIO1_IO00) from group camerapwrgrp  on device 30330000.pinctrl
Signed-off-by: default avatarMartin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent b43e6c03
...@@ -63,6 +63,40 @@ reg_aud_1v8: regulator-audio-1v8 { ...@@ -63,6 +63,40 @@ reg_aud_1v8: regulator-audio-1v8 {
enable-active-high; enable-active-high;
}; };
/*
* the pinctrl for reg_csi_1v8 and reg_vcam_1v8 is added to the PMIC
* since we can't have it twice in the 2 different regulator nodes.
*/
reg_csi_1v8: regulator-csi-1v8 {
compatible = "regulator-fixed";
regulator-name = "CAMERA_VDDIO_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&reg_vdd_3v3>;
gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
/* controlled by the CAMERA_POWER_KEY HKS */
reg_vcam_1v2: regulator-vcam-1v2 {
compatible = "regulator-fixed";
regulator-name = "CAMERA_VDDD_1V2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
vin-supply = <&reg_vdd_1v8>;
enable-active-high;
};
reg_vcam_2v8: regulator-vcam-2v8 {
compatible = "regulator-fixed";
regulator-name = "CAMERA_VDDA_2V8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
vin-supply = <&reg_vdd_3v3>;
gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reg_gnss: regulator-gnss { reg_gnss: regulator-gnss {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -330,6 +364,20 @@ MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x83 ...@@ -330,6 +364,20 @@ MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x83
>; >;
}; };
pinctrl_camera_pwr: camerapwrgrp {
fsl,pins = <
/* CAMERA_PWR_EN_3V3 */
MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x83
>;
};
pinctrl_csi1: csi1grp {
fsl,pins = <
/* CSI1_NRST */
MX8MQ_IOMUXC_ENET_RXC_GPIO1_IO25 0x83
>;
};
pinctrl_charger_in: chargeringrp { pinctrl_charger_in: chargeringrp {
fsl,pins = < fsl,pins = <
/* CHRG_INT */ /* CHRG_INT */
...@@ -726,7 +774,7 @@ pmic: pmic@4b { ...@@ -726,7 +774,7 @@ pmic: pmic@4b {
compatible = "rohm,bd71837"; compatible = "rohm,bd71837";
reg = <0x4b>; reg = <0x4b>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pmic>; pinctrl-0 = <&pinctrl_pmic>, <&pinctrl_camera_pwr>;
clocks = <&pmic_osc>; clocks = <&pmic_osc>;
clock-names = "osc"; clock-names = "osc";
clock-output-names = "pmic_clk"; clock-output-names = "pmic_clk";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment