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 |
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? > +};
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. > >> +}; >
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?
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 > > > > >
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
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 > > >
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 > > >
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.
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 --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>; +};