summaryrefslogtreecommitdiff
path: root/driver/pi3usb30532.h
diff options
context:
space:
mode:
authorRong Chang <rongchang@chromium.org>2015-03-23 20:12:56 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-05-27 05:04:14 +0000
commit552c17543fb1e85e2143025a2dc9fdd560da5abb (patch)
tree53f41adc588d00d0adfb6d2b4ff60533a3b119b7 /driver/pi3usb30532.h
parent937cc8a64e5971def21303e7a19a4ad9553e0ace (diff)
downloadchrome-ec-552c17543fb1e85e2143025a2dc9fdd560da5abb.tar.gz
oak: add initial support for oak board rev1
Add initial support for Oak rev1 board. This is just the EC and includes battery charging but does not include USB PD. BUG=none BRANCH=none TEST=load on oak board and get console Signed-off-by: Rong Chang <rongchang@chromium.org> Signed-off-by: Alec Berg <alecaberg@chromium.org> Change-Id: I626f3921025fbc39ba22b04eeb6dd1084cd70777 Reviewed-on: https://chromium-review.googlesource.com/261678
Diffstat (limited to 'driver/pi3usb30532.h')
-rw-r--r--driver/pi3usb30532.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/driver/pi3usb30532.h b/driver/pi3usb30532.h
new file mode 100644
index 0000000000..f99c9561bb
--- /dev/null
+++ b/driver/pi3usb30532.h
@@ -0,0 +1,78 @@
+/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * Pericom PI3USB30532 USB port switch driver.
+ */
+
+#ifndef PI3USB30532_H
+#define PI3USB30532_H
+
+#include <inttypes.h>
+
+/* USB switch registers */
+#define PI3USB30532_REG_ADDR 0x00
+#define PI3USB30532_REG_VENDOR 0x01
+#define PI3USB30532_REG_CONTROL 0x02
+/* Control register field */
+#define PI3USB30532_CTRL_MASK 0x7
+#define PI3USB30532_CTRL_RSVD 0
+/* Switch vendor ID */
+#define PI3USB30532_VENDOR_ID 0
+
+/* PI3USB30532 control flags */
+#define PI3USB30532_BIT_SWAP (1 << 0)
+#define PI3USB30532_BIT_DP (1 << 1)
+#define PI3USB30532_BIT_USB (1 << 2)
+
+/* PI3USB30532 modes */
+/* Power down, switch open */
+#define PI3USB30532_MODE_POWERDOWN 0
+/* Keep power on, switch open */
+#define PI3USB30532_MODE_POWERON 1
+/* 4-lane DP 1.2
+ * dp0~3 : rx2, tx2, tx1, rx1
+ * hpd+/-: rfu1, rfu2
+ */
+#define PI3USB30532_MODE_DP PI3USB30532_BIT_DP
+/* 4-lane DP 1.2 swap
+ * dp0~3 : rx1, tx1, tx2, rx2
+ * hpd+/-: rfu2, rfu1
+ */
+#define PI3USB30532_MODE_DP_SWAP (PI3USB30532_MODE_DP | PI3USB30532_BIT_SWAP)
+/* USB3
+ * tx/rx : tx1, rx1
+ */
+#define PI3USB30532_MODE_USB PI3USB30532_BIT_USB
+/* USB3 swap
+ * tx/rx : tx2, rx2
+ */
+#define PI3USB30532_MODE_USB_SWAP (PI3USB30532_MODE_USB | PI3USB30532_BIT_SWAP)
+/* 2-lane DP 1.2 + USB3
+ * tx/rx : tx1, rx1
+ * dp0~1 : rx2, tx2
+ * hpd+/-: rfu1, rfu2
+ */
+#define PI3USB30532_MODE_DP_USB (PI3USB30532_BIT_DP | PI3USB30532_BIT_USB)
+/* 2-lane DP 1.2 + USB3, swap
+ * tx/rx : tx2, rx2
+ * dp0-1 : rx1, tx1
+ * hpd+/-: rfu2, rfu1
+ */
+#define PI3USB30532_MODE_DP_USB_SWAP (PI3USB30532_MODE_DP_USB | \
+ PI3USB30532_BIT_SWAP)
+
+
+/* Reads PI3USB30532 register */
+int pi3usb30532_read(uint8_t chip_idx, uint8_t reg);
+
+/* Writes PI3USB30532 register */
+int pi3usb30532_write(uint8_t chip_idx, uint8_t reg, uint8_t val);
+
+/* Writes PI3USB30532 control register */
+int pi3usb30532_set_switch(uint8_t chip_idx, uint8_t mode);
+
+/* Resets PI3USB30532 to power on default value */
+int pi3usb30532_reset(uint8_t chip_idx);
+
+#endif /* PI3USB30532_H */