blob: 22d58ff71f91919d7b444e40cf20086f9c6a6cc8 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-only
/*
* Google GS201 Pogo transport
*
* Copyright (c) 2022 Google, LLC
*
*/
#include <dt-bindings/gpio/gpio.h>
#include <arm64/exynos/exynos-pinctrl.h>
#include "gs201/gs101-pinctrl.h"
/ {
fragment@pogo_transport {
target-path = "/";
__overlay__ {
google_pogo: google,pogo {
status = "okay";
compatible = "pogo-transport";
pinctrl-names = "suspend-to-usb", "suspend-to-pogo", "hub";
pinctrl-0 = <&pogo_trans_stat
&pogo_trans_acc
&pogo_trans_pogo_sel_usb>;
pinctrl-1 = <&pogo_trans_stat
&pogo_trans_pogo_sel_pogo
&pogo_trans_hub_sel_pogo>;
pinctrl-2 = <&pogo_trans_stat
&pogo_trans_pogo_sel_hub
&pogo_trans_hub_sel_hub>;
interrupt-parent = <&gpa8>;
pogo-transport-status = <&gpa8 3 GPIO_ACTIVE_LOW>;
pogo-transport-sel = <&gpp1 0 GPIO_ACTIVE_HIGH>;
data-phandle = <&max77759tcpc>;
pogo-psy-name = "dock";
equal-priority;
pogo-ovp-en = <&s2mpg12_gpio 2 GPIO_ACTIVE_LOW>;
hub-embedded;
pogo-hub-reset = <&gpp0 0 GPIO_ACTIVE_HIGH>;
pogo-hub-sel = <&gpp2 0 GPIO_ACTIVE_HIGH>;
pogo-acc-capable;
pogo-acc-detect = <&gpa8 2 GPIO_ACTIVE_HIGH>;
usb-hub-supply = <&s_ldo28_reg>;
acc-detect-supply = <&m_ldo26_reg>;
disable-voltage-detection;
};
};
};
};
/* GPIO_FAR_ALIVE */
&pinctrl_1 {
pogo_trans_acc: pogo-transport-acc-detect {
samsung,pins = "gpa8-2";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
};
pogo_trans_stat: pogo-transport-status {
samsung,pins = "gpa8-3";
samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
};
};
/* GPIO_PERIC0 */
&pinctrl_4 {
pogo_trans_pogo_sel_usb: pogo-transport-pogo-sel-usb {
samsung,pins = "gpp1-0", "gpp2-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
};
pogo_trans_pogo_sel_pogo: pogo-transport-pogo-sel-pogo {
samsung,pins = "gpp1-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
};
pogo_trans_pogo_sel_hub: pogo-transport-pogo-sel-hub {
samsung,pins = "gpp1-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
};
pogo_trans_hub_sel_pogo: pogo-transport-hub-sel-pogo {
samsung,pins = "gpp2-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
};
pogo_trans_hub_sel_hub: pogo-transport-hub-sel-hub {
samsung,pins = "gpp1-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
};
pogo_trans_reset_hub: pogo-transport-reset-hub {
samsung,pins = "gpp0-0";
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
};
};
&hsi2c1_bus {
samsung,pins = /*"gpp2-0",*/ "gpp2-1";
};