[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bd136800-8ef5-4597-b918-41b9f97db14f@quicinc.com>
Date: Wed, 7 May 2025 18:27:54 +0530
From: Ayushi Makhija <quic_amakhija@...cinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
CC: <linux-arm-msm@...r.kernel.org>, <dri-devel@...ts.freedesktop.org>,
<freedreno@...ts.freedesktop.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <robdclark@...il.com>,
<sean@...rly.run>, <marijn.suijten@...ainline.org>,
<andersson@...nel.org>, <robh@...nel.org>, <robh+dt@...nel.org>,
<krzk+dt@...nel.org>, <konradybcio@...nel.org>, <conor+dt@...nel.org>,
<andrzej.hajda@...el.com>, <neil.armstrong@...aro.org>,
<rfoss@...nel.org>, <Laurent.pinchart@...asonboard.com>,
<jonas@...boo.se>, <jernej.skrabec@...il.com>,
<quic_abhinavk@...cinc.com>, <quic_rajeevny@...cinc.com>,
<quic_vproddut@...cinc.com>, <quic_jesszhan@...cinc.com>,
Konrad Dybcio <konrad.dybcio@....qualcomm.com>
Subject: Re: [PATCH v6 07/11] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI
to DP bridge nodes
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_amakhija@...cinc.com>
>>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@....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
Powered by blists - more mailing lists