1// Copyright 2018 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#pragma once
6
7#define FTDI_TYPE_R         (0x0600)
8#define FTDI_TYPE_BM        (0x0400)
9#define FTDI_TYPE_AM        (0x0200)
10#define FTDI_TYPE_2232C     (0x0500)
11#define FTDI_TYPE_2232H     (0x0700)
12#define FTDI_TYPE_4232H     (0x0800)
13#define FTDI_TYPE_232H      (0x0900)
14
15// Clock divisors
16#define FTDI_TYPE_R_DIVISOR     (16)
17
18#define FTDI_VID         0x0403
19#define FTDI_232R_PID    0x6001
20#define FTDI_2232_PID    0x6010
21
22#define FTDI_H_CLK 120000000
23#define FTDI_C_CLK  48000000
24
25#define FTDI_SIO_RESET          0 /* Reset the port */
26#define FTDI_SIO_MODEM_CTRL     1 /* Set the modem control register */
27#define FTDI_SIO_SET_FLOW_CTRL  2 /* Set flow control register */
28#define FTDI_SIO_SET_BAUDRATE   3 /* Set baud rate */
29#define FTDI_SIO_SET_DATA       4 /* Set the data characteristics of the port */
30
31/* Requests */
32#define FTDI_SIO_RESET_REQUEST             FTDI_SIO_RESET
33#define FTDI_SIO_SET_BAUDRATE_REQUEST      FTDI_SIO_SET_BAUD_RATE
34#define FTDI_SIO_SET_DATA_REQUEST          FTDI_SIO_SET_DATA
35#define FTDI_SIO_SET_FLOW_CTRL_REQUEST     FTDI_SIO_SET_FLOW_CTRL
36#define FTDI_SIO_SET_MODEM_CTRL_REQUEST    FTDI_SIO_MODEM_CTRL
37#define FTDI_SIO_POLL_MODEM_STATUS_REQUEST 0x05
38#define FTDI_SIO_SET_EVENT_CHAR_REQUEST    0x06
39#define FTDI_SIO_SET_ERROR_CHAR_REQUEST    0x07
40#define FTDI_SIO_SET_LATENCY_TIMER_REQUEST 0x09
41#define FTDI_SIO_GET_LATENCY_TIMER_REQUEST 0x0A
42#define FTDI_SIO_SET_BITMODE_REQUEST       0x0B
43#define FTDI_SIO_READ_PINS_REQUEST         0x0C
44#define FTDI_SIO_READ_EEPROM_REQUEST       0x90
45#define FTDI_SIO_WRITE_EEPROM_REQUEST      0x91
46#define FTDI_SIO_ERASE_EEPROM_REQUEST      0x92
47
48
49