summaryrefslogtreecommitdiff
path: root/dts/gs201-pogo-transport.dtsi
blob: 368852ff19188ac3e3e3781dc916c8c83e6d65ca (plain)
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";
};