// SPDX-License-Identifier: GPL-2.0-only
/*
 * Battery device tree entries specific to Whitefin
 *
 * Copyright 2020 Google,LLC
 *
 */

&pinctrl_0 {
/* [MAX77759: FG_INTB] > FG_INT_L > [XEINT_23 : SC59845XWE] */
	if_pmic_fg_irq: if-pmic-fg-irq {
		samsung,pins = "gpa9-3"; /* XEINT_23 */
		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
	};

};

&pinctrl_1 {
/* [MAX77729FEWN : INTB] > IF_PMIC_IRQ_L > [XEINT_15 : SC59845XWE] */
	if_pmic_irq: if-pmic-irq {
		samsung,pins = "gpa8-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
	};
};

&hsi2c_12{

	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	clock-frequency = <400000>;

	/* also as max77759 pmic  */
	max77729_pmic:max77729pmic@66 {
		status = "okay";
		compatible = "maxim,max77729pmic";
		reg = <0x66>;

		pinctrl-names = "default";
		pinctrl-0 = <&if_pmic_irq>;
		max777x9,irq-gpio = <&gpa8 3 GPIO_ACTIVE_LOW>;

		max77759,max_m5 = <&max77759_fg>;
		max20339,ovp = <&max20339_ovp>;

		max777x9_gpio: max777x9_gpio {
			gpio-controller;
			#gpio-cells = <2>;
			ngpios = <6>;
		};
	};

	max77759_fg:max77759fg@36 {
		status = "okay";
		compatible = "maxim,max77759";
		reg = <0x36>;

		/* FG_INT_L -> XEINT_23 */
		pinctrl-names = "default";
		pinctrl-0 = <&if_pmic_fg_irq>;
		maxim,irq-gpio = <&gpa9 3 GPIO_ACTIVE_LOW>;

		maxim,rsense-default = <500>;

		/* no needed for EEPROM */
		maxim,batt-id-range-pct = <0>;

		/* model data available only for V2P2 */

		maxim,psy-type-unknown;
	};

	max77759_chg:max77759chrg@69 {
		status = "okay";
		compatible = "maxim,max77759chrg";
		reg = <0x69>;

		#thermal-sensor-cells = <1>;

		interrupt-parent = <&gpa8>;
		max77759,irq-gpio = <&gpa8 3 GPIO_ACTIVE_LOW>;
		max77759,psy-name = "main-charger";

		max77759,max_m5 = <&max77759_fg>;
		max77759,pmic = <&max77729_pmic>;

		/* system use cases */
		max77759,bst-on = <&max777x9_gpio 4 GPIO_ACTIVE_HIGH>;
		max77759,bst-sel = <&gpp27 3 GPIO_ACTIVE_HIGH>;
		max77759,extbst-ctl = <&max77759_tcpc_gpio 0 GPIO_ACTIVE_HIGH>;
		max77759,lsw1-is_open = <&max20339_gpio 5 GPIO_ACTIVE_HIGH>;
		max77759,lsw1-is_closed = <&max20339_gpio 6 GPIO_ACTIVE_HIGH>;
		max77759,vin-is_valid =  <&max20339_gpio 3 GPIO_ACTIVE_HIGH>;
	};

};
