[PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes

Ayushi Makhija quic_amakhija at quicinc.com
Mon Apr 14 09:56:43 UTC 2025


Hi Dmitry,

On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>> Hi Dmirity/Konard
>>
>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>> Add anx7625 DSI to DP bridge device nodes.
>>>>
>>>> Signed-off-by: Ayushi Makhija <quic_amakhija at quicinc.com>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>>>>  1 file changed, 207 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>> index 175f8b1e3b2d..8e784ccf4138 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>> @@ -28,6 +28,13 @@ chosen {
>>>>  		stdout-path = "serial0:115200n8";
>>>>  	};
>>>>  
>>>> +	vph_pwr: vph-pwr-regulator {
>>>> +		compatible = "regulator-fixed";
>>>> +		regulator-name = "vph_pwr";
>>>> +		regulator-always-on;
>>>> +		regulator-boot-on;
>>>> +	};
>>>> +
>>>>  	vreg_conn_1p8: vreg_conn_1p8 {
>>>>  		compatible = "regulator-fixed";
>>>>  		regulator-name = "vreg_conn_1p8";
>>>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>>>>  			};
>>>>  		};
>>>>  	};
>>>> +
>>>> +	dp-dsi0-connector {
>>>> +		compatible = "dp-connector";
>>>> +		label = "DSI0";
>>>> +		type = "full-size";
>>>> +
>>>> +		port {
>>>> +			dp_dsi0_connector_in: endpoint {
>>>> +				remote-endpoint = <&dsi2dp_bridge0_out>;
>>>> +			};
>>>> +		};
>>>> +	};
>>>> +
>>>> +	dp-dsi1-connector {
>>>> +		compatible = "dp-connector";
>>>> +		label = "DSI1";
>>>> +		type = "full-size";
>>>> +
>>>> +		port {
>>>> +			dp_dsi1_connector_in: endpoint {
>>>> +				remote-endpoint = <&dsi2dp_bridge1_out>;
>>>> +			};
>>>> +		};
>>>> +	};
>>>>  };
>>>>  
>>>>  &apps_rsc {
>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>  
>>>>  &i2c18 {
>>>>  	clock-frequency = <400000>;
>>>> -	pinctrl-0 = <&qup_i2c18_default>;
>>>> +	pinctrl-0 = <&qup_i2c18_default>,
>>>> +		    <&io_expander_intr_active>,
>>>> +		    <&io_expander_reset_active>;
>>>
>>> These pinctrl entries should go to the IO expander itself.
>>>
>>>>  	pinctrl-names = "default";
>>>> +
>>>>  	status = "okay";
>>>> +
>>>> +	io_expander: gpio at 74 {
>>>> +		compatible = "ti,tca9539";
>>>> +		reg = <0x74>;
>>>> +		interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>> +		gpio-controller;
>>>> +		#gpio-cells = <2>;
>>>> +		interrupt-controller;
>>>> +		#interrupt-cells = <2>;
>>>> +
>>>> +		gpio2-hog {
>>>
>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>> these pins should likely be used by the corresponding anx bridges.
>>
>> Thanks, for the review.
>>
>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
> 
> Please make sure that there are pinctrl entries for all pins.
> 

Thanks, for the review.

While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.

Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio at 74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
        '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#

        io_expander: gpio at 74 {
                compatible = "ti,tca9539";
                reg = <0x74>;
                interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
                #interrupt-cells = <2>;

                pinctrl-0 = <&io_expander_intr_active>,
                            <&io_expander_reset_active>;
                pinctrl-names = "default";

                dsi0_int_pin: dsi0-int-pin-state {
                        pins = "gpio2";
                        input-enable;
                        bias-disable;
                };

                dsi1_int_pin: dsi1-int-pin-state {
                        pins = "gpio10";
                        input-enable;
                        bias-disable;
                };

        };

I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.

Thanks,
Ayushi


More information about the Freedreno mailing list