| // 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"; |
| }; |