| /* 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 __CROS_EC_PI3USB30532_H |
| #define __CROS_EC_PI3USB30532_H |
| |
| #include <inttypes.h> |
| |
| #include "usb_pd.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) |
| |
| #endif /* __CROS_EC_PI3USB30532_H */ |