126f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury/*
2bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*
3bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*Copyright (C) 2015 The Android Open Source Project
4bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*
5bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*Licensed under the Apache License, Version 2.0 (the "License");
6bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*you may not use this file except in compliance with the License.
7bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*You may obtain a copy of the License at
8bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*
9bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*     http://www.apache.org/licenses/LICENSE-2.0
10bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*
11bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*Unless required by applicable law or agreed to in writing, software
12bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*distributed under the License is distributed on an "AS IS" BASIS,
13bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*See the License for the specific language governing permissions and
15bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi/*limitations under the License.
16bbef5dff2b94fef72012e721cd6124cd87621af4Utkarsh Sanghi */
1726f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury *
1826f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury * This file was copied from https://github.com/devttys0/libmpsse.git (sha1
1926f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury * f1a6744b), and modified to suite the Chromium OS project.
2026f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury */
21771df5a65efedd9fb2eb690cfd2e188e3dc3a4ecVadim Bendebury
2226f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury#ifndef TRUNKS_FTDI_SUPPORT_H_
2326f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury#define TRUNKS_FTDI_SUPPORT_H_
2426f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury
2526f26f5ae2c7a76aa199206dece12f65aa67da12Vadim Bendebury#include "trunks/ftdi/mpsse.h"
26771df5a65efedd9fb2eb690cfd2e188e3dc3a4ecVadim Bendebury
27c9aa4123ba0b0e08bec42c3abf48687b51806ba2Vadim Bendeburyint raw_write(struct mpsse_context* mpsse, uint8_t* buf, int size);
284dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn int raw_read(struct mpsse_context* mpsse, uint8_t* buf, int size);
294dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn void set_timeouts(struct mpsse_context* mpsse, int timeout);
304dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn uint16_t freq2div(uint32_t system_clock, uint32_t freq);
314dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn uint32_t div2freq(uint32_t system_clock, uint16_t div);
324dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn uint8_t* build_block_buffer(struct mpsse_context* mpsse,
334dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                             uint8_t cmd,
344dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                             const uint8_t* data,
354dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                             int size,
364dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn                             int* buf_size);
374dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn int set_bits_high(struct mpsse_context* mpsse, int port);
384dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn int set_bits_low(struct mpsse_context* mpsse, int port);
394dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn int gpio_write(struct mpsse_context* mpsse, int pin, int direction);
404dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn int is_valid_context(struct mpsse_context* mpsse);
41771df5a65efedd9fb2eb690cfd2e188e3dc3a4ecVadim Bendebury
424dc4629c415e7ca90ff146d7bb75b5646ecd8b17Darren Krahn#endif /*  TRUNKS_FTDI_SUPPORT_H_ */
43