On 5/6/2025 5:58 PM, Dmitry Baryshkov wrote: > On Tue, May 06, 2025 at 05:42:50PM +0530, Ayushi Makhija wrote: >> Hi Dmitry, >> >> On 5/5/2025 3:32 PM, Dmitry Baryshkov wrote: >>> On Mon, May 05, 2025 at 03:12:41PM +0530, Ayushi Makhija wrote: >>>> Add anx7625 DSI to DP bridge device nodes. >>>> >>>> Signed-off-by: Ayushi Makhija <quic_amakh...@quicinc.com> >>>> Reviewed-by: Konrad Dybcio <konrad.dyb...@oss.qualcomm.com> >>>> --- >>>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 183 +++++++++++++++++++++ >>>> 1 file changed, 183 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi >>>> b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi >>>> index 175f8b1e3b2d..de14f3ea8835 100644 >>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi >>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi >>>> @@ -28,6 +28,15 @@ chosen { >>>> stdout-path = "serial0:115200n8"; >>>> }; >>>> >>>> + vph_pwr: vph-pwr-regulator { >>>> + compatible = "regulator-fixed"; >>>> + regulator-name = "vph_pwr"; >>>> + regulator-min-microvolt = <12000000>; >>>> + regulator-max-microvolt = <12000000>; >>> >>> 12 V, if my eyes don't deceive me. >> >> Yes, it's 12V. According to the chipset's power grid, the VPH rail is rated >> at 12 volts. >> That's significantly higher than what we typically see on mobile platforms. >> I guess, >> this is due to the SA8775P Ride SX being designed for automotive >> applications, where higher voltage levels are required. >> >>> >>>> + regulator-always-on; >>>> + regulator-boot-on; >>>> + }; >>>> + >>> >>> [...] >>> >>>> + >>>> + bridge@58 { >>>> + compatible = "analogix,anx7625"; >>>> + reg = <0x58>; >>>> + interrupts-extended = <&io_expander 2 >>>> IRQ_TYPE_EDGE_FALLING>; >>>> + enable-gpios = <&io_expander 1 >>>> GPIO_ACTIVE_HIGH>; >>>> + reset-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>; >>>> + vdd10-supply = <&vph_pwr>; >>>> + vdd18-supply = <&vph_pwr>; >>>> + vdd33-supply = <&vph_pwr>; >>> >>> Here you are saying that 1.0V, 1.8V and 3.3V pins are powered on by 12V >>> supply. I wonder how the board doesn't trigger all fire alarms in the >>> building. >>> >> >> Let me try to explain the connections from the schematics. >> >> In the SA8775P RIDE SX platform, the ANX bridge supplies are connected from >> the below sources: >> >> 1) AVDD1P8 is sourced from the `VREG_1P8` of the backplane card. >> 2) AVDD3P0 is sourced from the `VREG_3P0` of the backplane card. >> 3) AVDD1P0 is sourced from the TPS74801 LDO voltage regulator that has >> `VREG_1P8` connected to >> VIN & EN lines, and `VREG_3P0` connected to BIAS line. >> >> The `VREG_1P8` is sourced from a buck converter TPS54618CQRTERQ1 that is >> using >> `VREG_5P0` as VIN and EN_VR1P8_M3P3 as EN signal. >> Where the `EN_VR1P8_M3P3` is an output signal from SAK-TC397XX-256F300S BD >> micro-controller. >> >> Similarly, the `VREG_1P3` and `VREG_5P0` are sourced from another buck >> converter LM5143QRWGRQ1 >> that is using `VREG_12P0` as VIN and `EN_VR5P0_M3P3` as EN signal. >> Where the EN_VR5P0_M3P3 is an output from the same micro-controller. >> >> Combining above details, all three ANX bridge supplies are getting enabled >> by `VREG_12P0` supply, >> `EN_VR1P8_M3P3` and `EN_VR5P0_M3P3` signals once the SOC is out of reset. >> >> The `VREG_12P0` is directly sourced from `VBATT_IN`. >> >> Since, there is no SW control for ANX bridge supplies and they are getting >> enabled >> once the SOC is out of reset, I have used vph-pwr-regulator dummy regulator. >> I am not sure if it's the right way to handle above scenario. Please let me >> know if there is other way to do the same. > > Add these regulators as fixed ones, describing the power grid. Consult > other board files if you are unsure. RB3, RB5, HDKs - all these boards > have fixed-regulators for the grid. >
Hi Dmirty, After referring the RB3, RB5, HDKs boards example for fixed regulator. 1) Reference 1 (qrb5165-rb5.dts file) (https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts) In qrb5165-rb5.dts file, If we refer the fixed regulator of lt9611_1v2 lt9611_1v2: lt9611-vdd12-regulator { compatible = "regulator-fixed"; regulator-name = "LT9611_1V2"; vin-supply = <&vdc_3v3>; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; Here we can see the vin-supply is vdc_3v3, which is itself is a fixed-regulator. vdc_3v3: vdc-3v3-regulator { compatible = "regulator-fixed"; regulator-name = "VDC_3V3"; vin-supply = <&vreg_l11c_3p3>; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; Then vin-supply for vdc_3v3 is vreg_l11c_3p3, Which is a RPMH regulator. vreg_l11c_3p3: ldo11 { regulator-name = "vreg_l11c_3p3"; regulator-min-microvolt = <3296000>; regulator-max-microvolt = <3296000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-always-on; }; Do we need to do the same for our vdd10-supply , vdd18-supply and vdd33-supply of anx7625 bridge supplies ? Example for vdd18-supply (AVDD1P8) (Anx7625 vdd18-supply) vreg_1p8 : vreg-vdd18-regulator { compatible = "regulator-fixed"; regulator-name = "vreg_1p8"; vin-supply = <&vreg_5p0>; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; Here vreg_1p8 is using vreg_5p0 as vin-supply. vreg_5p0 : vreg-5p0-regulator { compatible = "regulator-fixed"; regulator-name = "vreg_5p0"; vin-supply = <&vreg_12p0>; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; Here vreg_5p0 is using vreg_12p0 as vin-supply. vreg_12p0: vreg-12p0-regulator { compatible = "regulator-fixed"; regulator-name = "vreg_12p0"; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; }; 2) Reference 2 (qcs6490-rb3gen2.dts) (https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts) Or In qcs6490-rb3gen2.dts file, If we refer the fixed regulator of lt9611_1v2 lt9611_1v2: lt9611-vdd12-regulator { compatible = "regulator-fixed"; regulator-name = "LT9611_1V2"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; There is not any vin-supply here. Example for vdd18-supply (AVDD1P8) (Anx7625 vdd18-supply) vreg_1p8 : vreg-vdd18-regulator { compatible = "regulator-fixed"; regulator-name = "vreg_1p8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; Let me know, Which way we need to define the our anx7625 bridge supplies. Thanks, Ayushi