diff mbox series

[v9,4/4] arm64: dts: qcom: aim300: add AIM300 AIoT

Message ID 20240529100926.3166325-5-quic_tengfan@quicinc.com (mailing list archive)
State Changes Requested
Headers show
Series arm64: qcom: add AIM300 AIoT board support | expand

Commit Message

Tengfei Fan May 29, 2024, 10:09 a.m. UTC
Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
I2C functions support.
Here is a diagram of AIM300 AIoT Carrie Board and SoM
 +--------------------------------------------------+
 |             AIM300 AIOT Carrier Board            |
 |                                                  |
 |           +-----------------+                    |
 |power----->| Fixed regulator |---------+          |
 |           +-----------------+         |          |
 |                                       |          |
 |                                       v VPH_PWR  |
 | +----------------------------------------------+ |
 | |                          AIM300 SOM |        | |
 | |                                     |VPH_PWR | |
 | |                                     v        | |
 | |   +-------+       +--------+     +------+    | |
 | |   | UFS   |       | QCS8550|     |PMIC  |    | |
 | |   +-------+       +--------+     +------+    | |
 | |                                              | |
 | +----------------------------------------------+ |
 |                                                  |
 |                    +----+          +------+      |
 |                    |USB |          | UART |      |
 |                    +----+          +------+      |
 +--------------------------------------------------+

Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
 2 files changed, 323 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts

Comments

Dmitry Baryshkov May 29, 2024, 3:18 p.m. UTC | #1
On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> I2C functions support.
> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>  +--------------------------------------------------+
>  |             AIM300 AIOT Carrier Board            |
>  |                                                  |
>  |           +-----------------+                    |
>  |power----->| Fixed regulator |---------+          |
>  |           +-----------------+         |          |
>  |                                       |          |
>  |                                       v VPH_PWR  |
>  | +----------------------------------------------+ |
>  | |                          AIM300 SOM |        | |
>  | |                                     |VPH_PWR | |
>  | |                                     v        | |
>  | |   +-------+       +--------+     +------+    | |
>  | |   | UFS   |       | QCS8550|     |PMIC  |    | |
>  | |   +-------+       +--------+     +------+    | |
>  | |                                              | |
>  | +----------------------------------------------+ |
>  |                                                  |
>  |                    +----+          +------+      |
>  |                    |USB |          | UART |      |
>  |                    +----+          +------+      |
>  +--------------------------------------------------+
> 
> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/Makefile             |   1 +
>  .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
>  2 files changed, 323 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts

[trimmed]

> +&remoteproc_adsp {
> +	firmware-name = "qcom/qcs8550/adsp.mbn",
> +			"qcom/qcs8550/adsp_dtbs.elf";

Please excuse me, I think I missed those on the previous run.

adsp_dtb.mbn

> +	status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> +	firmware-name = "qcom/qcs8550/cdsp.mbn",
> +			"qcom/qcs8550/cdsp_dtbs.elf";

cdsp_dtb.mbn

> +	status = "okay";
> +};
> +
> +&swr1 {
> +	status = "okay";
> +};
> +
> +&swr2 {
> +	status = "okay";
> +};
> +
> +&tlmm {
> +	gpio-reserved-ranges = <32 8>;
> +
> +	dsi_active: dsi-active-state {
> +		pins = "gpio133";
> +		function = "gpio";
> +		drive-strength = <8>;
> +		bias-disable;
> +	};

s/dsi/panel[-_]reset/

> +
> +	dsi_suspend: dsi-suspend-state {
> +		pins = "gpio133";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-pull-down;
> +	};
> +
> +	te_active: te-active-state {
> +		pins = "gpio86";
> +		function = "mdp_vsync";
> +		drive-strength = <2>;
> +		bias-pull-down;
> +	};
> +
> +	te_suspend: te-suspend-state {
> +		pins = "gpio86";
> +		function = "mdp_vsync";
> +		drive-strength = <2>;
> +		bias-pull-down;
> +	};

What is the difference between these two?

> +};
Tengfei Fan May 31, 2024, 8:35 a.m. UTC | #2
On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>> I2C functions support.
>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>   +--------------------------------------------------+
>>   |             AIM300 AIOT Carrier Board            |
>>   |                                                  |
>>   |           +-----------------+                    |
>>   |power----->| Fixed regulator |---------+          |
>>   |           +-----------------+         |          |
>>   |                                       |          |
>>   |                                       v VPH_PWR  |
>>   | +----------------------------------------------+ |
>>   | |                          AIM300 SOM |        | |
>>   | |                                     |VPH_PWR | |
>>   | |                                     v        | |
>>   | |   +-------+       +--------+     +------+    | |
>>   | |   | UFS   |       | QCS8550|     |PMIC  |    | |
>>   | |   +-------+       +--------+     +------+    | |
>>   | |                                              | |
>>   | +----------------------------------------------+ |
>>   |                                                  |
>>   |                    +----+          +------+      |
>>   |                    |USB |          | UART |      |
>>   |                    +----+          +------+      |
>>   +--------------------------------------------------+
>>
>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>> ---
>>   arch/arm64/boot/dts/qcom/Makefile             |   1 +
>>   .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
>>   2 files changed, 323 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> 
> [trimmed]
> 
>> +&remoteproc_adsp {
>> +	firmware-name = "qcom/qcs8550/adsp.mbn",
>> +			"qcom/qcs8550/adsp_dtbs.elf";
> 
> Please excuse me, I think I missed those on the previous run.
> 
> adsp_dtb.mbn

Currently, waht we have released is adsp_dtbs.elf. If we modify it to 
adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.

> 
>> +	status = "okay";
>> +};
>> +
>> +&remoteproc_cdsp {
>> +	firmware-name = "qcom/qcs8550/cdsp.mbn",
>> +			"qcom/qcs8550/cdsp_dtbs.elf";
> 
> cdsp_dtb.mbn

CDSP also as above ADSP.

> 
>> +	status = "okay";
>> +};
>> +
>> +&swr1 {
>> +	status = "okay";
>> +};
>> +
>> +&swr2 {
>> +	status = "okay";
>> +};
>> +
>> +&tlmm {
>> +	gpio-reserved-ranges = <32 8>;
>> +
>> +	dsi_active: dsi-active-state {
>> +		pins = "gpio133";
>> +		function = "gpio";
>> +		drive-strength = <8>;
>> +		bias-disable;
>> +	};
> 
> s/dsi/panel[-_]reset/

I will update this (like: "dsi_active" to "panel_resest_active") as your 
recommendation.

> 
>> +
>> +	dsi_suspend: dsi-suspend-state {
>> +		pins = "gpio133";
>> +		function = "gpio";
>> +		drive-strength = <2>;
>> +		bias-pull-down;
>> +	};

This also do update as "s/dsi/panel[-_]reset/".

>> +
>> +	te_active: te-active-state {
>> +		pins = "gpio86";
>> +		function = "mdp_vsync";
>> +		drive-strength = <2>;
>> +		bias-pull-down;
>> +	};
>> +
>> +	te_suspend: te-suspend-state {
>> +		pins = "gpio86";
>> +		function = "mdp_vsync";
>> +		drive-strength = <2>;
>> +		bias-pull-down;
>> +	};
> 
> What is the difference between these two?

TE pin needs to be pulled down for both active and suspend states. There 
is no difference.

> 
>> +};
>
Dmitry Baryshkov May 31, 2024, 8:38 a.m. UTC | #3
On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>
>
>
> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> > On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> >> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> >> I2C functions support.
> >> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> >>   +--------------------------------------------------+
> >>   |             AIM300 AIOT Carrier Board            |
> >>   |                                                  |
> >>   |           +-----------------+                    |
> >>   |power----->| Fixed regulator |---------+          |
> >>   |           +-----------------+         |          |
> >>   |                                       |          |
> >>   |                                       v VPH_PWR  |
> >>   | +----------------------------------------------+ |
> >>   | |                          AIM300 SOM |        | |
> >>   | |                                     |VPH_PWR | |
> >>   | |                                     v        | |
> >>   | |   +-------+       +--------+     +------+    | |
> >>   | |   | UFS   |       | QCS8550|     |PMIC  |    | |
> >>   | |   +-------+       +--------+     +------+    | |
> >>   | |                                              | |
> >>   | +----------------------------------------------+ |
> >>   |                                                  |
> >>   |                    +----+          +------+      |
> >>   |                    |USB |          | UART |      |
> >>   |                    +----+          +------+      |
> >>   +--------------------------------------------------+
> >>
> >> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> >> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> >> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> >> ---
> >>   arch/arm64/boot/dts/qcom/Makefile             |   1 +
> >>   .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
> >>   2 files changed, 323 insertions(+)
> >>   create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> >
> > [trimmed]
> >
> >> +&remoteproc_adsp {
> >> +    firmware-name = "qcom/qcs8550/adsp.mbn",
> >> +                    "qcom/qcs8550/adsp_dtbs.elf";
> >
> > Please excuse me, I think I missed those on the previous run.
> >
> > adsp_dtb.mbn
>
> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.

Released where? linux-firmware doesn't have such a file. And the modem
partition most likely has a different path for it anyway.

>
> >
> >> +    status = "okay";
> >> +};
> >> +
> >> +&remoteproc_cdsp {
> >> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
> >> +                    "qcom/qcs8550/cdsp_dtbs.elf";
> >
> > cdsp_dtb.mbn
>
> CDSP also as above ADSP.
>
> >

> >> +
> >> +    te_active: te-active-state {
> >> +            pins = "gpio86";
> >> +            function = "mdp_vsync";
> >> +            drive-strength = <2>;
> >> +            bias-pull-down;
> >> +    };
> >> +
> >> +    te_suspend: te-suspend-state {
> >> +            pins = "gpio86";
> >> +            function = "mdp_vsync";
> >> +            drive-strength = <2>;
> >> +            bias-pull-down;
> >> +    };
> >
> > What is the difference between these two?
>
> TE pin needs to be pulled down for both active and suspend states. There
> is no difference.

So why do you need two different states for it?
Tengfei Fan June 3, 2024, 7:38 a.m. UTC | #4
On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>
>>
>>
>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>> I2C functions support.
>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>    +--------------------------------------------------+
>>>>    |             AIM300 AIOT Carrier Board            |
>>>>    |                                                  |
>>>>    |           +-----------------+                    |
>>>>    |power----->| Fixed regulator |---------+          |
>>>>    |           +-----------------+         |          |
>>>>    |                                       |          |
>>>>    |                                       v VPH_PWR  |
>>>>    | +----------------------------------------------+ |
>>>>    | |                          AIM300 SOM |        | |
>>>>    | |                                     |VPH_PWR | |
>>>>    | |                                     v        | |
>>>>    | |   +-------+       +--------+     +------+    | |
>>>>    | |   | UFS   |       | QCS8550|     |PMIC  |    | |
>>>>    | |   +-------+       +--------+     +------+    | |
>>>>    | |                                              | |
>>>>    | +----------------------------------------------+ |
>>>>    |                                                  |
>>>>    |                    +----+          +------+      |
>>>>    |                    |USB |          | UART |      |
>>>>    |                    +----+          +------+      |
>>>>    +--------------------------------------------------+
>>>>
>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>> ---
>>>>    arch/arm64/boot/dts/qcom/Makefile             |   1 +
>>>>    .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
>>>>    2 files changed, 323 insertions(+)
>>>>    create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>
>>> [trimmed]
>>>
>>>> +&remoteproc_adsp {
>>>> +    firmware-name = "qcom/qcs8550/adsp.mbn",
>>>> +                    "qcom/qcs8550/adsp_dtbs.elf";
>>>
>>> Please excuse me, I think I missed those on the previous run.
>>>
>>> adsp_dtb.mbn
>>
>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
> 
> Released where? linux-firmware doesn't have such a file. And the modem
> partition most likely has a different path for it anyway.

Firmware releases can be obtained from 
https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git 
after users sign up for free accounts on both 
https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.

> 
>>
>>>
>>>> +    status = "okay";
>>>> +};
>>>> +
>>>> +&remoteproc_cdsp {
>>>> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>> +                    "qcom/qcs8550/cdsp_dtbs.elf";
>>>
>>> cdsp_dtb.mbn
>>
>> CDSP also as above ADSP.
>>
>>>
> 
>>>> +
>>>> +    te_active: te-active-state {
>>>> +            pins = "gpio86";
>>>> +            function = "mdp_vsync";
>>>> +            drive-strength = <2>;
>>>> +            bias-pull-down;
>>>> +    };
>>>> +
>>>> +    te_suspend: te-suspend-state {
>>>> +            pins = "gpio86"
>>>> +            function = "mdp_vsync";
>>>> +            drive-strength = <2>;
>>>> +            bias-pull-down;
>>>> +    };
>>>
>>> What is the difference between these two?
>>
>> TE pin needs to be pulled down for both active and suspend states. There
>> is no difference.
> 
> So why do you need two different states for it?

Dividing into two different states can provide a clearer expression of 
whether the corresponging functionality is avtive or suspend.

We can also find similar settings in the other SM8550 and SM8650 
platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.

[1] sm8550-qrd.dts: 
https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052

[2] sm8650-qrd.dts: 
https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098

> 
> 
> 
> 
>
Dmitry Baryshkov June 3, 2024, 7:52 a.m. UTC | #5
On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>
>
>
> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
> > On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
> >>
> >>
> >>
> >> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> >>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> >>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> >>>> I2C functions support.
> >>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> >>>>    +--------------------------------------------------+
> >>>>    |             AIM300 AIOT Carrier Board            |
> >>>>    |                                                  |
> >>>>    |           +-----------------+                    |
> >>>>    |power----->| Fixed regulator |---------+          |
> >>>>    |           +-----------------+         |          |
> >>>>    |                                       |          |
> >>>>    |                                       v VPH_PWR  |
> >>>>    | +----------------------------------------------+ |
> >>>>    | |                          AIM300 SOM |        | |
> >>>>    | |                                     |VPH_PWR | |
> >>>>    | |                                     v        | |
> >>>>    | |   +-------+       +--------+     +------+    | |
> >>>>    | |   | UFS   |       | QCS8550|     |PMIC  |    | |
> >>>>    | |   +-------+       +--------+     +------+    | |
> >>>>    | |                                              | |
> >>>>    | +----------------------------------------------+ |
> >>>>    |                                                  |
> >>>>    |                    +----+          +------+      |
> >>>>    |                    |USB |          | UART |      |
> >>>>    |                    +----+          +------+      |
> >>>>    +--------------------------------------------------+
> >>>>
> >>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> >>>> ---
> >>>>    arch/arm64/boot/dts/qcom/Makefile             |   1 +
> >>>>    .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
> >>>>    2 files changed, 323 insertions(+)
> >>>>    create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> >>>
> >>> [trimmed]
> >>>
> >>>> +&remoteproc_adsp {
> >>>> +    firmware-name = "qcom/qcs8550/adsp.mbn",
> >>>> +                    "qcom/qcs8550/adsp_dtbs.elf";
> >>>
> >>> Please excuse me, I think I missed those on the previous run.
> >>>
> >>> adsp_dtb.mbn
> >>
> >> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
> >> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
> >
> > Released where? linux-firmware doesn't have such a file. And the modem
> > partition most likely has a different path for it anyway.
>
> Firmware releases can be obtained from
> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
> after users sign up for free accounts on both
> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.

I'm getting 403 when accessing qpm-git (both with my Linaro
credentials and with gmail ones).
If I try to git-clone the URL you've provided, I'm getting "Not found"
when using a gmail account and CURL error when using Linaro
createntials.

error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302

Not to mention that the URL wasn't mentioned anywhere beforehand. So I
can hardly call that 'released'

>
> >
> >>
> >>>
> >>>> +    status = "okay";
> >>>> +};
> >>>> +
> >>>> +&remoteproc_cdsp {
> >>>> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
> >>>> +                    "qcom/qcs8550/cdsp_dtbs.elf";
> >>>
> >>> cdsp_dtb.mbn
> >>
> >> CDSP also as above ADSP.
> >>
> >>>
> >
> >>>> +
> >>>> +    te_active: te-active-state {
> >>>> +            pins = "gpio86";
> >>>> +            function = "mdp_vsync";
> >>>> +            drive-strength = <2>;
> >>>> +            bias-pull-down;
> >>>> +    };
> >>>> +
> >>>> +    te_suspend: te-suspend-state {
> >>>> +            pins = "gpio86"
> >>>> +            function = "mdp_vsync";
> >>>> +            drive-strength = <2>;
> >>>> +            bias-pull-down;
> >>>> +    };
> >>>
> >>> What is the difference between these two?
> >>
> >> TE pin needs to be pulled down for both active and suspend states. There
> >> is no difference.
> >
> > So why do you need two different states for it?
>
> Dividing into two different states can provide a clearer expression of
> whether the corresponging functionality is avtive or suspend.

How?

>
> We can also find similar settings in the other SM8550 and SM8650
> platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.

Which means more items to cleanup.

See the discussion starting from
https://lore.kernel.org/linux-arm-msm/36f22383-79a3-427e-bf17-35ce2e1dd620@linaro.org/

>
> [1] sm8550-qrd.dts:
> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
>
> [2] sm8650-qrd.dts:
> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>
> >
> >
> >
> >
> >
>
> --
> Thx and BRs,
> Tengfei Fan
Tengfei Fan June 4, 2024, 5:35 a.m. UTC | #6
On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
> On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>
>>
>>
>> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
>>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>>>> I2C functions support.
>>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>>>     +--------------------------------------------------+
>>>>>>     |             AIM300 AIOT Carrier Board            |
>>>>>>     |                                                  |
>>>>>>     |           +-----------------+                    |
>>>>>>     |power----->| Fixed regulator |---------+          |
>>>>>>     |           +-----------------+         |          |
>>>>>>     |                                       |          |
>>>>>>     |                                       v VPH_PWR  |
>>>>>>     | +----------------------------------------------+ |
>>>>>>     | |                          AIM300 SOM |        | |
>>>>>>     | |                                     |VPH_PWR | |
>>>>>>     | |                                     v        | |
>>>>>>     | |   +-------+       +--------+     +------+    | |
>>>>>>     | |   | UFS   |       | QCS8550|     |PMIC  |    | |
>>>>>>     | |   +-------+       +--------+     +------+    | |
>>>>>>     | |                                              | |
>>>>>>     | +----------------------------------------------+ |
>>>>>>     |                                                  |
>>>>>>     |                    +----+          +------+      |
>>>>>>     |                    |USB |          | UART |      |
>>>>>>     |                    +----+          +------+      |
>>>>>>     +--------------------------------------------------+
>>>>>>
>>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>>>> ---
>>>>>>     arch/arm64/boot/dts/qcom/Makefile             |   1 +
>>>>>>     .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
>>>>>>     2 files changed, 323 insertions(+)
>>>>>>     create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>>>
>>>>> [trimmed]
>>>>>
>>>>>> +&remoteproc_adsp {
>>>>>> +    firmware-name = "qcom/qcs8550/adsp.mbn",
>>>>>> +                    "qcom/qcs8550/adsp_dtbs.elf";
>>>>>
>>>>> Please excuse me, I think I missed those on the previous run.
>>>>>
>>>>> adsp_dtb.mbn
>>>>
>>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>>>
>>> Released where? linux-firmware doesn't have such a file. And the modem
>>> partition most likely has a different path for it anyway.
>>
>> Firmware releases can be obtained from
>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>> after users sign up for free accounts on both
>> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
> 
> I'm getting 403 when accessing qpm-git (both with my Linaro
> credentials and with gmail ones).
> If I try to git-clone the URL you've provided, I'm getting "Not found"
> when using a gmail account and CURL error when using Linaro
> createntials.
> 
> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
> 
> Not to mention that the URL wasn't mentioned anywhere beforehand. So I
> can hardly call that 'released'
> 
>>
>>>
>>>>
>>>>>
>>>>>> +    status = "okay";
>>>>>> +};
>>>>>> +
>>>>>> +&remoteproc_cdsp {
>>>>>> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>>>> +                    "qcom/qcs8550/cdsp_dtbs.elf";
>>>>>
>>>>> cdsp_dtb.mbn
>>>>
>>>> CDSP also as above ADSP.
>>>>
>>>>>
>>>
>>>>>> +
>>>>>> +    te_active: te-active-state {
>>>>>> +            pins = "gpio86";
>>>>>> +            function = "mdp_vsync";
>>>>>> +            drive-strength = <2>;
>>>>>> +            bias-pull-down;
>>>>>> +    };
>>>>>> +
>>>>>> +    te_suspend: te-suspend-state {
>>>>>> +            pins = "gpio86"
>>>>>> +            function = "mdp_vsync";
>>>>>> +            drive-strength = <2>;
>>>>>> +            bias-pull-down;
>>>>>> +    };
>>>>>
>>>>> What is the difference between these two?
>>>>
>>>> TE pin needs to be pulled down for both active and suspend states. There
>>>> is no difference.
>>>
>>> So why do you need two different states for it?
>>
>> Dividing into two different states can provide a clearer expression of
>> whether the corresponging functionality is avtive or suspend.
> 
> How?

I understand your consideration from the upstream patch link which you 
shared. Insteading of maintaining two separate state nodes, I will 
update a default state node in the next patch series.

> 
>>
>> We can also find similar settings in the other SM8550 and SM8650
>> platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.
> 
> Which means more items to cleanup.
> 
> See the discussion starting from
> https://lore.kernel.org/linux-arm-msm/36f22383-79a3-427e-bf17-35ce2e1dd620@linaro.org/
> 
>>
>> [1] sm8550-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
>>
>> [2] sm8650-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>>
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Thx and BRs,
>> Tengfei Fan
> 
> 
>
Tingwei Zhang June 6, 2024, 9:27 a.m. UTC | #7
On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
> On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>
>>
>>
>> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
>>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>>>> I2C functions support.
>>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>>>     +--------------------------------------------------+
>>>>>>     |             AIM300 AIOT Carrier Board            |
>>>>>>     |                                                  |
>>>>>>     |           +-----------------+                    |
>>>>>>     |power----->| Fixed regulator |---------+          |
>>>>>>     |           +-----------------+         |          |
>>>>>>     |                                       |          |
>>>>>>     |                                       v VPH_PWR  |
>>>>>>     | +----------------------------------------------+ |
>>>>>>     | |                          AIM300 SOM |        | |
>>>>>>     | |                                     |VPH_PWR | |
>>>>>>     | |                                     v        | |
>>>>>>     | |   +-------+       +--------+     +------+    | |
>>>>>>     | |   | UFS   |       | QCS8550|     |PMIC  |    | |
>>>>>>     | |   +-------+       +--------+     +------+    | |
>>>>>>     | |                                              | |
>>>>>>     | +----------------------------------------------+ |
>>>>>>     |                                                  |
>>>>>>     |                    +----+          +------+      |
>>>>>>     |                    |USB |          | UART |      |
>>>>>>     |                    +----+          +------+      |
>>>>>>     +--------------------------------------------------+
>>>>>>
>>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>>>> ---
>>>>>>     arch/arm64/boot/dts/qcom/Makefile             |   1 +
>>>>>>     .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
>>>>>>     2 files changed, 323 insertions(+)
>>>>>>     create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>>>
>>>>> [trimmed]
>>>>>
>>>>>> +&remoteproc_adsp {
>>>>>> +    firmware-name = "qcom/qcs8550/adsp.mbn",
>>>>>> +                    "qcom/qcs8550/adsp_dtbs.elf";
>>>>>
>>>>> Please excuse me, I think I missed those on the previous run.
>>>>>
>>>>> adsp_dtb.mbn
>>>>
>>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>>>
>>> Released where? linux-firmware doesn't have such a file. And the modem
>>> partition most likely has a different path for it anyway.
>>
>> Firmware releases can be obtained from
>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>> after users sign up for free accounts on both
>> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
> 
> I'm getting 403 when accessing qpm-git (both with my Linaro
> credentials and with gmail ones).
> If I try to git-clone the URL you've provided, I'm getting "Not found"
> when using a gmail account and CURL error when using Linaro
> createntials.
> 
> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
> 
> Not to mention that the URL wasn't mentioned anywhere beforehand. So I
> can hardly call that 'released'
> 
Hi Dmitry,

Let me elabarote the way to get access to firmware of aim300.

Visit the website Qualcomm used to release software which is 
chipcode.qti.qualcomm.com.
Use sign up to create a Qualcomm ID with email you have.
Login with your Qualcomm ID. Search for Qualcomm_Linux.SPF.1.0.
This is Qualcomm Linux release. Select 
qualcomm-linux-spf-1-0_test_device_public. You should be able to find 
the firmware release. You need to agree PKLA license during this process.

After that, you can edit ~/.netrc to add your username and password 
which you just create as Qualcomm ID to chipmaster2.qti.qualcomm.com and 
qpm-git.qualcomm.com.
git clone 
https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
Firmware package is under 
qualcomm-linux-spf-1-0_test_device_public/QCM8550.LE.2.0/common/build/ufs/bin/QCS8550_fw.zip.
Unzip this file. Firmware is under QCS8550_fw/lib/firmware/qcom/qcs8550/
>>
>>>
>>>>
>>>>>
>>>>>> +    status = "okay";
>>>>>> +};
>>>>>> +
>>>>>> +&remoteproc_cdsp {
>>>>>> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>>>> +                    "qcom/qcs8550/cdsp_dtbs.elf";
>>>>>
>>>>> cdsp_dtb.mbn
>>>>
>>>> CDSP also as above ADSP.
>>>>
>>>>>
>>>
>>>>>> +
>>>>>> +    te_active: te-active-state {
>>>>>> +            pins = "gpio86";
>>>>>> +            function = "mdp_vsync";
>>>>>> +            drive-strength = <2>;
>>>>>> +            bias-pull-down;
>>>>>> +    };
>>>>>> +
>>>>>> +    te_suspend: te-suspend-state {
>>>>>> +            pins = "gpio86"
>>>>>> +            function = "mdp_vsync";
>>>>>> +            drive-strength = <2>;
>>>>>> +            bias-pull-down;
>>>>>> +    };
>>>>>
>>>>> What is the difference between these two?
>>>>
>>>> TE pin needs to be pulled down for both active and suspend states. There
>>>> is no difference.
>>>
>>> So why do you need two different states for it?
>>
>> Dividing into two different states can provide a clearer expression of
>> whether the corresponging functionality is avtive or suspend.
> 
> How?
> 
>>
>> We can also find similar settings in the other SM8550 and SM8650
>> platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.
> 
> Which means more items to cleanup.
> 
> See the discussion starting from
> https://lore.kernel.org/linux-arm-msm/36f22383-79a3-427e-bf17-35ce2e1dd620@linaro.org/
> 
>>
>> [1] sm8550-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
>>
>> [2] sm8650-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>>
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Thx and BRs,
>> Tengfei Fan
> 
> 
>
Dmitry Baryshkov June 6, 2024, 10:54 a.m. UTC | #8
On Thu, 6 Jun 2024 at 12:27, Tingwei Zhang <quic_tingweiz@quicinc.com> wrote:
>
> On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
> > On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
> >>
> >>
> >>
> >> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
> >>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> >>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> >>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> >>>>>> I2C functions support.
> >>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> >>>>>>     +--------------------------------------------------+
> >>>>>>     |             AIM300 AIOT Carrier Board            |
> >>>>>>     |                                                  |
> >>>>>>     |           +-----------------+                    |
> >>>>>>     |power----->| Fixed regulator |---------+          |
> >>>>>>     |           +-----------------+         |          |
> >>>>>>     |                                       |          |
> >>>>>>     |                                       v VPH_PWR  |
> >>>>>>     | +----------------------------------------------+ |
> >>>>>>     | |                          AIM300 SOM |        | |
> >>>>>>     | |                                     |VPH_PWR | |
> >>>>>>     | |                                     v        | |
> >>>>>>     | |   +-------+       +--------+     +------+    | |
> >>>>>>     | |   | UFS   |       | QCS8550|     |PMIC  |    | |
> >>>>>>     | |   +-------+       +--------+     +------+    | |
> >>>>>>     | |                                              | |
> >>>>>>     | +----------------------------------------------+ |
> >>>>>>     |                                                  |
> >>>>>>     |                    +----+          +------+      |
> >>>>>>     |                    |USB |          | UART |      |
> >>>>>>     |                    +----+          +------+      |
> >>>>>>     +--------------------------------------------------+
> >>>>>>
> >>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> >>>>>> ---
> >>>>>>     arch/arm64/boot/dts/qcom/Makefile             |   1 +
> >>>>>>     .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
> >>>>>>     2 files changed, 323 insertions(+)
> >>>>>>     create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> >>>>>
> >>>>> [trimmed]
> >>>>>
> >>>>>> +&remoteproc_adsp {
> >>>>>> +    firmware-name = "qcom/qcs8550/adsp.mbn",
> >>>>>> +                    "qcom/qcs8550/adsp_dtbs.elf";
> >>>>>
> >>>>> Please excuse me, I think I missed those on the previous run.
> >>>>>
> >>>>> adsp_dtb.mbn
> >>>>
> >>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
> >>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
> >>>
> >>> Released where? linux-firmware doesn't have such a file. And the modem
> >>> partition most likely has a different path for it anyway.
> >>
> >> Firmware releases can be obtained from
> >> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
> >> after users sign up for free accounts on both
> >> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
> >
> > I'm getting 403 when accessing qpm-git (both with my Linaro
> > credentials and with gmail ones).
> > If I try to git-clone the URL you've provided, I'm getting "Not found"
> > when using a gmail account and CURL error when using Linaro
> > createntials.
> >
> > error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
> >
> > Not to mention that the URL wasn't mentioned anywhere beforehand. So I
> > can hardly call that 'released'
> >
> Hi Dmitry,
>
> Let me elabarote the way to get access to firmware of aim300.
>
> Visit the website Qualcomm used to release software which is
> chipcode.qti.qualcomm.com.
> Use sign up to create a Qualcomm ID with email you have.
> Login with your Qualcomm ID. Search for Qualcomm_Linux.SPF.1.0.
> This is Qualcomm Linux release. Select
> qualcomm-linux-spf-1-0_test_device_public. You should be able to find
> the firmware release. You need to agree PKLA license during this process.
>
> After that, you can edit ~/.netrc to add your username and password
> which you just create as Qualcomm ID to chipmaster2.qti.qualcomm.com and
> qpm-git.qualcomm.com.
> git clone
> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git

Cloning into 'qualcomm-linux-spf-1-0_test_device_public'...
Username for 'https://chipmaster2.qti.qualcomm.com': dbaryshkov@gmail.com
Password for 'https://dbaryshkov@gmail.com@chipmaster2.qti.qualcomm.com':
warning: redirecting to
https://chipmaster2.qti.qualcomm.com/home/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git/
error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
fatal: the remote end hung up unexpectedly


> Firmware package is under
> qualcomm-linux-spf-1-0_test_device_public/QCM8550.LE.2.0/common/build/ufs/bin/QCS8550_fw.zip.

The licence file is not present inside the repository. So after
clicking through it it I have no way to check the terms of the
licence.

> Unzip this file. Firmware is under QCS8550_fw/lib/firmware/qcom/qcs8550/

Is there anything specific to qcs8550 vs sm8550? If not, it should go
to firmware/qcom/sm8550/ instead.

However, back to the original question. We are looking for the
unification of the firmware names, not for the further diversions of
them. Few weeks ago we got another ping from arm-soc maintainers to
stop including firmware-names into the DT files. From my point of
view, no matter what file name was used in the binary release, please
use adsp_dtb.mbn for upstream submission.

> >>
> >>>
> >>>>
> >>>>>
> >>>>>> +    status = "okay";
> >>>>>> +};
> >>>>>> +
> >>>>>> +&remoteproc_cdsp {
> >>>>>> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
> >>>>>> +                    "qcom/qcs8550/cdsp_dtbs.elf";
> >>>>>
> >>>>> cdsp_dtb.mbn
> >>>>
> >>>> CDSP also as above ADSP.
Tengfei Fan June 13, 2024, 1:18 a.m. UTC | #9
On 6/6/2024 6:54 PM, Dmitry Baryshkov wrote:
> On Thu, 6 Jun 2024 at 12:27, Tingwei Zhang <quic_tingweiz@quicinc.com> wrote:
>>
>> On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
>>> On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
>>>>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>>>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>>>>>> I2C functions support.
>>>>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>>>>>      +--------------------------------------------------+
>>>>>>>>      |             AIM300 AIOT Carrier Board            |
>>>>>>>>      |                                                  |
>>>>>>>>      |           +-----------------+                    |
>>>>>>>>      |power----->| Fixed regulator |---------+          |
>>>>>>>>      |           +-----------------+         |          |
>>>>>>>>      |                                       |          |
>>>>>>>>      |                                       v VPH_PWR  |
>>>>>>>>      | +----------------------------------------------+ |
>>>>>>>>      | |                          AIM300 SOM |        | |
>>>>>>>>      | |                                     |VPH_PWR | |
>>>>>>>>      | |                                     v        | |
>>>>>>>>      | |   +-------+       +--------+     +------+    | |
>>>>>>>>      | |   | UFS   |       | QCS8550|     |PMIC  |    | |
>>>>>>>>      | |   +-------+       +--------+     +------+    | |
>>>>>>>>      | |                                              | |
>>>>>>>>      | +----------------------------------------------+ |
>>>>>>>>      |                                                  |
>>>>>>>>      |                    +----+          +------+      |
>>>>>>>>      |                    |USB |          | UART |      |
>>>>>>>>      |                    +----+          +------+      |
>>>>>>>>      +--------------------------------------------------+
>>>>>>>>
>>>>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>>>>>> ---
>>>>>>>>      arch/arm64/boot/dts/qcom/Makefile             |   1 +
>>>>>>>>      .../boot/dts/qcom/qcs8550-aim300-aiot.dts     | 322 ++++++++++++++++++
>>>>>>>>      2 files changed, 323 insertions(+)
>>>>>>>>      create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>>>>>
>>>>>>> [trimmed]
>>>>>>>
>>>>>>>> +&remoteproc_adsp {
>>>>>>>> +    firmware-name = "qcom/qcs8550/adsp.mbn",
>>>>>>>> +                    "qcom/qcs8550/adsp_dtbs.elf";
>>>>>>>
>>>>>>> Please excuse me, I think I missed those on the previous run.
>>>>>>>
>>>>>>> adsp_dtb.mbn
>>>>>>
>>>>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>>>>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>>>>>
>>>>> Released where? linux-firmware doesn't have such a file. And the modem
>>>>> partition most likely has a different path for it anyway.
>>>>
>>>> Firmware releases can be obtained from
>>>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>>>> after users sign up for free accounts on both
>>>> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
>>>
>>> I'm getting 403 when accessing qpm-git (both with my Linaro
>>> credentials and with gmail ones).
>>> If I try to git-clone the URL you've provided, I'm getting "Not found"
>>> when using a gmail account and CURL error when using Linaro
>>> createntials.
>>>
>>> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
>>>
>>> Not to mention that the URL wasn't mentioned anywhere beforehand. So I
>>> can hardly call that 'released'
>>>
>> Hi Dmitry,
>>
>> Let me elabarote the way to get access to firmware of aim300.
>>
>> Visit the website Qualcomm used to release software which is
>> chipcode.qti.qualcomm.com.
>> Use sign up to create a Qualcomm ID with email you have.
>> Login with your Qualcomm ID. Search for Qualcomm_Linux.SPF.1.0.
>> This is Qualcomm Linux release. Select
>> qualcomm-linux-spf-1-0_test_device_public. You should be able to find
>> the firmware release. You need to agree PKLA license during this process.
>>
>> After that, you can edit ~/.netrc to add your username and password
>> which you just create as Qualcomm ID to chipmaster2.qti.qualcomm.com and
>> qpm-git.qualcomm.com.
>> git clone
>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
> 
> Cloning into 'qualcomm-linux-spf-1-0_test_device_public'...
> Username for 'https://chipmaster2.qti.qualcomm.com': dbaryshkov@gmail.com
> Password for 'https://dbaryshkov@gmail.com@chipmaster2.qti.qualcomm.com':
> warning: redirecting to
> https://chipmaster2.qti.qualcomm.com/home/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git/
> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
> fatal: the remote end hung up unexpectedly
> 
> 
>> Firmware package is under
>> qualcomm-linux-spf-1-0_test_device_public/QCM8550.LE.2.0/common/build/ufs/bin/QCS8550_fw.zip.
> 
> The licence file is not present inside the repository. So after
> clicking through it it I have no way to check the terms of the
> licence.
> 
>> Unzip this file. Firmware is under QCS8550_fw/lib/firmware/qcom/qcs8550/
> 
> Is there anything specific to qcs8550 vs sm8550? If not, it should go
> to firmware/qcom/sm8550/ instead.
> 
> However, back to the original question. We are looking for the
> unification of the firmware names, not for the further diversions of
> them. Few weeks ago we got another ping from arm-soc maintainers to
> stop including firmware-names into the DT files. From my point of
> view, no matter what file name was used in the binary release, please
> use adsp_dtb.mbn for upstream submission.
> 

*_dtb.mbn will be used instead of *_dtb.elf in the next version patch 
series.

>>>>
>>>>>
>>>>>>
>>>>>>>
>>>>>>>> +    status = "okay";
>>>>>>>> +};
>>>>>>>> +
>>>>>>>> +&remoteproc_cdsp {
>>>>>>>> +    firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>>>>>> +                    "qcom/qcs8550/cdsp_dtbs.elf";
>>>>>>>
>>>>>>> cdsp_dtb.mbn
>>>>>>
>>>>>> CDSP also as above ADSP.
> 
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 99d606a15449..db093c8e4c1e 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -101,6 +101,7 @@  dtb-$(CONFIG_ARCH_QCOM)	+= qcm6490-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs404-evb-1000.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs404-evb-4000.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qdu1000-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qrb2210-rb1.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qrb4210-rb2.dtb
diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
new file mode 100644
index 000000000000..49759274fb4a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
@@ -0,0 +1,322 @@ 
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "qcs8550-aim300.dtsi"
+#include "pm8010.dtsi"
+#include "pmr735d_a.dtsi"
+#include "pmr735d_b.dtsi"
+
+/ {
+	model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
+	compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550",
+		     "qcom,sm8550";
+
+	aliases {
+		serial0 = &uart7;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&volume_up_n>;
+		pinctrl-names = "default";
+
+		key-volume-up {
+			label = "Volume Up";
+			debounce-interval = <15>;
+			gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEUP>;
+			linux,can-disable;
+			wakeup-source;
+		};
+	};
+
+	pmic-glink {
+		compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
+
+		connector@0 {
+			compatible = "usb-c-connector";
+			reg = <0>;
+			power-role = "dual";
+			data-role = "dual";
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
+
+					pmic_glink_hs_in: endpoint {
+						remote-endpoint = <&usb_1_dwc3_hs>;
+					};
+				};
+
+				port@1 {
+					reg = <1>;
+
+					pmic_glink_ss_in: endpoint {
+						remote-endpoint = <&redriver_ss_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_sbu: endpoint {
+						remote-endpoint = <&fsa4480_sbu_mux>;
+					};
+				};
+			};
+		};
+	};
+
+	vph_pwr: regulator-vph-pwr {
+		compatible = "regulator-fixed";
+		regulator-name = "vph_pwr";
+		regulator-min-microvolt = <3700000>;
+		regulator-max-microvolt = <3700000>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+};
+
+&apps_rsc {
+	regulators-0 {
+		vdd-bob1-supply = <&vph_pwr>;
+		vdd-bob2-supply = <&vph_pwr>;
+	};
+
+	regulators-3 {
+		vdd-s4-supply = <&vph_pwr>;
+		vdd-s5-supply = <&vph_pwr>;
+	};
+
+	regulators-4 {
+		vdd-s4-supply = <&vph_pwr>;
+	};
+
+	regulators-5 {
+		vdd-s1-supply = <&vph_pwr>;
+		vdd-s2-supply = <&vph_pwr>;
+		vdd-s3-supply = <&vph_pwr>;
+		vdd-s4-supply = <&vph_pwr>;
+		vdd-s5-supply = <&vph_pwr>;
+		vdd-s6-supply = <&vph_pwr>;
+	};
+};
+
+&i2c_hub_2 {
+	status = "okay";
+
+	typec-mux@42 {
+		compatible = "fcs,fsa4480";
+		reg = <0x42>;
+
+		vcc-supply = <&vreg_bob1>;
+
+		mode-switch;
+		orientation-switch;
+
+		port {
+			fsa4480_sbu_mux: endpoint {
+				remote-endpoint = <&pmic_glink_sbu>;
+			};
+		};
+	};
+
+	typec-retimer@1c {
+		compatible = "onnn,nb7vpq904m";
+		reg = <0x1c>;
+
+		vcc-supply = <&vreg_l15b_1p8>;
+
+		orientation-switch;
+		retimer-switch;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				redriver_ss_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss_in>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				redriver_ss_in: endpoint {
+					data-lanes = <3 2 1 0>;
+					remote-endpoint = <&usb_dp_qmpphy_out>;
+				};
+			};
+		};
+	};
+};
+
+&mdss_dsi0 {
+	status = "okay";
+
+	panel@0 {
+		compatible = "visionox,vtdr6130";
+		reg = <0>;
+
+		pinctrl-0 = <&dsi_active>, <&te_active>;
+		pinctrl-1 = <&dsi_suspend>, <&te_suspend>;
+		pinctrl-names = "default", "sleep";
+
+		reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+		vci-supply = <&vreg_l13b_3p0>;
+		vdd-supply = <&vreg_l11b_1p2>;
+		vddio-supply = <&vreg_l12b_1p8>;
+
+		port {
+			panel0_in: endpoint {
+				remote-endpoint = <&mdss_dsi0_out>;
+			};
+		};
+	};
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&panel0_in>;
+	data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+	status = "okay";
+};
+
+&pcie0 {
+	status = "okay";
+};
+
+&pcie0_phy {
+	status = "okay";
+};
+
+&pcie1 {
+	status = "okay";
+};
+
+&pcie1_phy {
+	status = "okay";
+};
+
+&pm8550_gpios {
+	volume_up_n: volume-up-n-state {
+		pins = "gpio6";
+		function = "normal";
+		power-source = <1>;
+		bias-pull-up;
+		input-enable;
+	};
+};
+
+&pon_pwrkey {
+	status = "okay";
+};
+
+&pon_resin {
+	linux,code = <KEY_VOLUMEDOWN>;
+
+	status = "okay";
+};
+
+&qupv3_id_0 {
+	status = "okay";
+};
+
+&remoteproc_adsp {
+	firmware-name = "qcom/qcs8550/adsp.mbn",
+			"qcom/qcs8550/adsp_dtbs.elf";
+	status = "okay";
+};
+
+&remoteproc_cdsp {
+	firmware-name = "qcom/qcs8550/cdsp.mbn",
+			"qcom/qcs8550/cdsp_dtbs.elf";
+	status = "okay";
+};
+
+&swr1 {
+	status = "okay";
+};
+
+&swr2 {
+	status = "okay";
+};
+
+&tlmm {
+	gpio-reserved-ranges = <32 8>;
+
+	dsi_active: dsi-active-state {
+		pins = "gpio133";
+		function = "gpio";
+		drive-strength = <8>;
+		bias-disable;
+	};
+
+	dsi_suspend: dsi-suspend-state {
+		pins = "gpio133";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	te_active: te-active-state {
+		pins = "gpio86";
+		function = "mdp_vsync";
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+
+	te_suspend: te-suspend-state {
+		pins = "gpio86";
+		function = "mdp_vsync";
+		drive-strength = <2>;
+		bias-pull-down;
+	};
+};
+
+&uart7 {
+	status = "okay";
+};
+
+&usb_1 {
+	status = "okay";
+};
+
+&usb_1_dwc3_hs {
+	remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+	status = "okay";
+};
+
+&usb_dp_qmpphy {
+	status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+	remote-endpoint = <&redriver_ss_in>;
+};