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