diff options
author | Rong Chang <rongchang@chromium.org> | 2015-03-23 20:12:56 +0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-05-27 05:04:14 +0000 |
commit | 552c17543fb1e85e2143025a2dc9fdd560da5abb (patch) | |
tree | 53f41adc588d00d0adfb6d2b4ff60533a3b119b7 /driver/pi3usb30532.h | |
parent | 937cc8a64e5971def21303e7a19a4ad9553e0ace (diff) | |
download | chrome-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.h | 78 |
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 */ |