1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
// SPDX-License-Identifier: GPL-2.0-only
/*
* Google GS201 Pogo transport
*
* Copyright (c) 2022 Google, LLC
*
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/samsung.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";
};
|