[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ZzsVOV8GjCVtCi5Q@linaro.org>
Date: Mon, 18 Nov 2024 11:21:45 +0100
From: Stephan Gerhold <stephan.gerhold@...aro.org>
To: Barnabás Czémán <barnabas.czeman@...nlining.org>
Cc: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Amit Kucheria <amitk@...nel.org>,
Thara Gopinath <thara.gopinath@...il.com>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Zhang Rui <rui.zhang@...el.com>, Lukasz Luba <lukasz.luba@....com>,
Joerg Roedel <joro@...tes.org>, Will Deacon <will@...nel.org>,
Robin Murphy <robin.murphy@....com>,
Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-gpio@...r.kernel.org,
linux-pm@...r.kernel.org, iommu@...ts.linux.dev
Subject: Re: [PATCH v6 10/10] arm64: dts: qcom: Add Xiaomi Redmi 5A
On Wed, Nov 13, 2024 at 04:11:51PM +0100, Barnabás Czémán wrote:
> Add initial support for Xiaomi Redmi 5A (riva).
>
> Signed-off-by: Barnabás Czémán <barnabas.czeman@...nlining.org>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> arch/arm64/boot/dts/qcom/msm8917-xiaomi-riva.dts | 297 +++++++++++++++++++++++
> 2 files changed, 298 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 9bb8b191aeb517e8f1e3a11bca98a3d0c39c5398..7562406843cfd82397c4844d14a22e8bcf4bba74 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -62,6 +62,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt86518.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt86528.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt88047.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8916-yiming-uz801v3.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += msm8917-xiaomi-riva.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8929-wingtech-wt82918hd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8939-huawei-kiwi.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8939-longcheer-l9100.dtb
> diff --git a/arch/arm64/boot/dts/qcom/msm8917-xiaomi-riva.dts b/arch/arm64/boot/dts/qcom/msm8917-xiaomi-riva.dts
> new file mode 100644
> index 0000000000000000000000000000000000000000..81bb76f1773252be2f60777acf93d51d01981f86
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/msm8917-xiaomi-riva.dts
> @@ -0,0 +1,297 @@
> [...]
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + key-volup {
> + label = "Volume Up";
> + linux,code = <KEY_VOLUMEUP>;
> + gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
It's good practice to
> + debounce-interval = <15>;
> + };
> + };
> [...]
> +&blsp1_i2c3 {
> + status = "okay";
> +
> + touchscreen@38 {
> + compatible = "edt,edt-ft5306";
> + reg = <0x38>;
> + interrupts-extended = <&tlmm 65 IRQ_TYPE_LEVEL_LOW>;
add pinctrl
> + reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
for all
> + vcc-supply = <&pm8937_l10>;
> + iovcc-supply = <&pm8937_l5>;
> +
> + touchscreen-size-x = <720>;
> + touchscreen-size-y = <1280>;
> + };
> +};
> +
> +&blsp2_i2c1 {
> + status = "okay";
> +
> + bq27426@55 {
> + compatible = "ti,bq27426";
> + reg = <0x55>;
> + monitored-battery = <&battery>;
> + };
> +
> + bq25601@6b{
> + compatible = "ti,bq25601";
> + reg = <0x6b>;
> + monitored-battery = <&battery>;
> +
> + interrupt-parent = <&tlmm>;
> + interrupts = <61 IRQ_TYPE_EDGE_FALLING>;
GPIOs/pins
> +
> + input-voltage-limit-microvolt = <4400000>;
> + input-current-limit-microamp = <1000000>;
> + };
> +};
> [...]
> +&sdhc_2 {
> + cd-gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
that you use. :-)
Usually it can be something simple like function=gpio, bias-disable,
drive-strength = <2>, etc, plenty of examples exist upstream. Check
downstream or schematics (if you have them). Ideally you would check
what the peripheral requires.
E.g. for SD card the GPIO usually has external pull-up, so bias-pull-up
would be redundant and one can just use bias-disable:
pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
pinctrl-names = "default", "sleep";
&tlmm {
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio67";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
> + vmmc-supply = <&pm8937_l11>;
> + vqmmc-supply = <&pm8937_l12>;
> +
> + status = "okay";
> +};
> +
> [...]
> +&rpm_requests {
> + regulators-0 {
> + compatible = "qcom,rpm-pm8937-regulators";
> +
> [...]
> + pm8937_l11: l11 {
> + regulator-min-microvolt = <2950000>;
> + regulator-max-microvolt = <2950000>;
> + };
You usually need/want regulator-allow-set-load and regulator-system-load
for the SD card regulator to avoid issues with certain SD
cards/operations, see
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=af61bef513ba179559e56908b8c465e587bc3890
Thanks,
Stephan
Powered by blists - more mailing lists