mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
arm64: dts: qcom: msm8916-samsung-serranove: Add RT5033 PMIC with charger
For the regulators, apply the same settings as in the downstream devicetree [1], including the "regulator-always-on" for the SAFE_LDO. For the voltage of SAFE_LDO, however, there is only one voltage of 4.9 V available in the mainline driver [2][3]. The values of the battery data evolve from following sources: - precharge current: 450 mA corresponds to the default value of the chip. It doesn't get changed by the downstream Android driver. Therefore let's stick to this value. - constant charge current: The 1000 mA are taken from the downstream devicetree of the serranove battery. It's not easy to spot. The value is in the line "input_current_limit" [4]. The rows are according to the power supply type, the 4th value stands for "main supply" [5]. That's the value used by the Android driver when a charging cable is plugged into the device. - charge termination current: In the downstream devicetree of the battery that's the line "full_check_current_1st", which contains the 150 mA [6]. - precharge voltage: This one doesn't get set in the downstream Android driver. The chip's default is 2.8 V. That seemed too low to have a notable effect of handling the battery gentle. The chosen value of 3.5 V is a bit arbitrary and possibly rather high. As the device is already several years old and therefore most batteries too, a value on the safe side seems reasonable. - constant charge voltage: The value of 4.35 V is set in the line "chg_float_voltage" of the downstream battery devicetree [7]. The "connector" sub-node in the extcon node, the "battery" node in the general section and the line "power-supplies" in the fuel-gauge node result from the way of implementation documented in the dt-bindings of rt5033-charger [8] and mfd rt5033 [9]. [1] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/arch/arm/boot/dts/samsung/msm8916/msm8916-sec-serranovelte-eur-r03.dtsi#L135-L181 [2] https://github.com/torvalds/linux/blob/v6.3/include/linux/mfd/rt5033-private.h#L211-L212 [3] https://github.com/torvalds/linux/blob/v6.3/drivers/regulator/rt5033-regulator.c#L83 [4] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/arch/arm/boot/dts/samsung/msm8916/msm8916-sec-serranovelte-battery-r01.dtsi#L100 [5] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/include/linux/power_supply.h#L173-L177 [6] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/arch/arm/boot/dts/samsung/msm8916/msm8916-sec-serranovelte-battery-r01.dtsi#L102 [7] https://github.com/msm8916-mainline/linux-downstream/blob/GT-I9195I/arch/arm/boot/dts/samsung/msm8916/msm8916-sec-serranovelte-battery-r01.dtsi#L95 [8] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/power/supply/richtek,rt5033-charger.yaml?h=next-20230616 [9] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/mfd/richtek,rt5033.yaml?h=next-20230616 Signed-off-by: Jakob Hauser <jahau@rocketmail.com> Link: https://lore.kernel.org/r/20230619203743.8136-1-jahau@rocketmail.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
7dc3606f91
commit
404d7f6576
|
|
@ -142,6 +142,12 @@ muic: extcon@14 {
|
|||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&muic_irq_default>;
|
||||
|
||||
usb_con: connector {
|
||||
compatible = "usb-b-connector";
|
||||
label = "micro-USB";
|
||||
type = "micro";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -199,6 +205,15 @@ nfc@2b {
|
|||
pinctrl-0 = <&nfc_default>;
|
||||
};
|
||||
};
|
||||
|
||||
battery: battery {
|
||||
compatible = "simple-battery";
|
||||
precharge-current-microamp = <450000>;
|
||||
constant-charge-current-max-microamp = <1000000>;
|
||||
charge-term-current-microamp = <150000>;
|
||||
precharge-upper-limit-microvolt = <3500000>;
|
||||
constant-charge-voltage-max-microvolt = <4350000>;
|
||||
};
|
||||
};
|
||||
|
||||
&blsp_i2c2 {
|
||||
|
|
@ -228,7 +243,7 @@ magnetometer@2e {
|
|||
&blsp_i2c4 {
|
||||
status = "okay";
|
||||
|
||||
battery@35 {
|
||||
fuel-gauge@35 {
|
||||
compatible = "richtek,rt5033-battery";
|
||||
reg = <0x35>;
|
||||
|
||||
|
|
@ -237,6 +252,8 @@ battery@35 {
|
|||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&fg_alert_default>;
|
||||
|
||||
power-supplies = <&rt5033_charger>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -261,6 +278,43 @@ touchscreen@20 {
|
|||
};
|
||||
};
|
||||
|
||||
&blsp_i2c6 {
|
||||
status = "okay";
|
||||
|
||||
pmic@34 {
|
||||
compatible = "richtek,rt5033";
|
||||
reg = <0x34>;
|
||||
|
||||
interrupt-parent = <&tlmm>;
|
||||
interrupts = <62 IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int_default>;
|
||||
|
||||
regulators {
|
||||
rt5033_reg_safe_ldo: SAFE_LDO {
|
||||
regulator-min-microvolt = <4900000>;
|
||||
regulator-max-microvolt = <4900000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
rt5033_reg_ldo: LDO {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
};
|
||||
rt5033_reg_buck: BUCK {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
};
|
||||
|
||||
rt5033_charger: charger {
|
||||
compatible = "richtek,rt5033-charger";
|
||||
monitored-battery = <&battery>;
|
||||
richtek,usb-connector = <&usb_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&blsp_uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -387,6 +441,14 @@ nfc_i2c_default: nfc-i2c-default-state {
|
|||
bias-disable;
|
||||
};
|
||||
|
||||
pmic_int_default: pmic-int-default-state {
|
||||
pins = "gpio62";
|
||||
function = "gpio";
|
||||
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
tkey_default: tkey-default-state {
|
||||
pins = "gpio98";
|
||||
function = "gpio";
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user