ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Committer:
group-onsemi
Date:
Wed Jan 25 20:34:15 2017 +0000
Revision:
0:098463de4c5d
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-onsemi 0:098463de4c5d 1 /* Copyright (c) 2010-2012 mbed.org, MIT License
group-onsemi 0:098463de4c5d 2 *
group-onsemi 0:098463de4c5d 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
group-onsemi 0:098463de4c5d 4 * and associated documentation files (the "Software"), to deal in the Software without
group-onsemi 0:098463de4c5d 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
group-onsemi 0:098463de4c5d 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
group-onsemi 0:098463de4c5d 7 * Software is furnished to do so, subject to the following conditions:
group-onsemi 0:098463de4c5d 8 *
group-onsemi 0:098463de4c5d 9 * The above copyright notice and this permission notice shall be included in all copies or
group-onsemi 0:098463de4c5d 10 * substantial portions of the Software.
group-onsemi 0:098463de4c5d 11 *
group-onsemi 0:098463de4c5d 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
group-onsemi 0:098463de4c5d 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
group-onsemi 0:098463de4c5d 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
group-onsemi 0:098463de4c5d 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
group-onsemi 0:098463de4c5d 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
group-onsemi 0:098463de4c5d 17 */
group-onsemi 0:098463de4c5d 18
group-onsemi 0:098463de4c5d 19 #define __DEBUG__ 4
group-onsemi 0:098463de4c5d 20 #ifndef __MODULE__
group-onsemi 0:098463de4c5d 21 #define __MODULE__ "UbloxCDMAModemInitializer.cpp"
group-onsemi 0:098463de4c5d 22 #endif
group-onsemi 0:098463de4c5d 23
group-onsemi 0:098463de4c5d 24 #include "core/dbg.h"
group-onsemi 0:098463de4c5d 25
group-onsemi 0:098463de4c5d 26 #include <stdint.h>
group-onsemi 0:098463de4c5d 27
group-onsemi 0:098463de4c5d 28 #include "UbloxCDMAModemInitializer.h"
group-onsemi 0:098463de4c5d 29
group-onsemi 0:098463de4c5d 30 UbloxCDMAModemInitializer::UbloxCDMAModemInitializer(USBHost* pHost) : WANDongleInitializer(pHost)
group-onsemi 0:098463de4c5d 31 {
group-onsemi 0:098463de4c5d 32 }
group-onsemi 0:098463de4c5d 33
group-onsemi 0:098463de4c5d 34 uint16_t UbloxCDMAModemInitializer::getMSDVid()
group-onsemi 0:098463de4c5d 35 {
group-onsemi 0:098463de4c5d 36 return 0x05C6;
group-onsemi 0:098463de4c5d 37 }
group-onsemi 0:098463de4c5d 38 uint16_t UbloxCDMAModemInitializer::getMSDPid()
group-onsemi 0:098463de4c5d 39 {
group-onsemi 0:098463de4c5d 40 return 0x0000; //No MSD mode (presumably)
group-onsemi 0:098463de4c5d 41 }
group-onsemi 0:098463de4c5d 42
group-onsemi 0:098463de4c5d 43 uint16_t UbloxCDMAModemInitializer::getSerialVid()
group-onsemi 0:098463de4c5d 44 {
group-onsemi 0:098463de4c5d 45 return 0x05C6;
group-onsemi 0:098463de4c5d 46 }
group-onsemi 0:098463de4c5d 47 uint16_t UbloxCDMAModemInitializer::getSerialPid()
group-onsemi 0:098463de4c5d 48 {
group-onsemi 0:098463de4c5d 49 return 0x9004;
group-onsemi 0:098463de4c5d 50 }
group-onsemi 0:098463de4c5d 51
group-onsemi 0:098463de4c5d 52 bool UbloxCDMAModemInitializer::switchMode(USBDeviceConnected* pDev)
group-onsemi 0:098463de4c5d 53 {
group-onsemi 0:098463de4c5d 54 return true;
group-onsemi 0:098463de4c5d 55 }
group-onsemi 0:098463de4c5d 56
group-onsemi 0:098463de4c5d 57 int UbloxCDMAModemInitializer::getSerialPortCount()
group-onsemi 0:098463de4c5d 58 {
group-onsemi 0:098463de4c5d 59 return 2;
group-onsemi 0:098463de4c5d 60 }
group-onsemi 0:098463de4c5d 61
group-onsemi 0:098463de4c5d 62 /*virtual*/ void UbloxCDMAModemInitializer::setVidPid(uint16_t vid, uint16_t pid)
group-onsemi 0:098463de4c5d 63 {
group-onsemi 0:098463de4c5d 64 m_currentSerialIntf = 0;
group-onsemi 0:098463de4c5d 65 m_currentEndpoint = 0;
group-onsemi 0:098463de4c5d 66 }
group-onsemi 0:098463de4c5d 67
group-onsemi 0:098463de4c5d 68 /*virtual*/ bool UbloxCDMAModemInitializer::parseInterface(uint8_t intf_nb, uint8_t intf_class, uint8_t intf_subclass, uint8_t intf_protocol) //Must return true if the interface should be parsed
group-onsemi 0:098463de4c5d 69 {
group-onsemi 0:098463de4c5d 70 DBG("Interface #%d; Class:%02x; SubClass:%02x; Protocol:%02x", intf_nb, intf_class, intf_subclass, intf_protocol);
group-onsemi 0:098463de4c5d 71
group-onsemi 0:098463de4c5d 72 if( intf_class == 0xFF ) {
group-onsemi 0:098463de4c5d 73 if( m_currentSerialIntf == 0 || m_currentSerialIntf == 1) {
group-onsemi 0:098463de4c5d 74 m_serialIntfMap[m_currentSerialIntf++] = intf_nb;
group-onsemi 0:098463de4c5d 75 return true;
group-onsemi 0:098463de4c5d 76 }
group-onsemi 0:098463de4c5d 77 m_currentSerialIntf++;
group-onsemi 0:098463de4c5d 78 }
group-onsemi 0:098463de4c5d 79
group-onsemi 0:098463de4c5d 80 return false;
group-onsemi 0:098463de4c5d 81 }
group-onsemi 0:098463de4c5d 82
group-onsemi 0:098463de4c5d 83 /*virtual*/ bool UbloxCDMAModemInitializer::useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir) //Must return true if the endpoint will be used
group-onsemi 0:098463de4c5d 84 {
group-onsemi 0:098463de4c5d 85 DBG("USBEndpoint on Interface #%d; Type:%d; Direction:%d Current %d", intf_nb, type, dir, m_currentEndpoint);
group-onsemi 0:098463de4c5d 86 if(type == BULK_ENDPOINT) {
group-onsemi 0:098463de4c5d 87 if( intf_nb == 1 || intf_nb == 0) {
group-onsemi 0:098463de4c5d 88 m_currentEndpoint++;
group-onsemi 0:098463de4c5d 89 return true;
group-onsemi 0:098463de4c5d 90 } else {
group-onsemi 0:098463de4c5d 91 m_currentEndpoint++;
group-onsemi 0:098463de4c5d 92 }
group-onsemi 0:098463de4c5d 93 }
group-onsemi 0:098463de4c5d 94
group-onsemi 0:098463de4c5d 95 /*
group-onsemi 0:098463de4c5d 96 if(type == INTERRUPT_ENDPOINT) {
group-onsemi 0:098463de4c5d 97 if( intf_nb == 1) {
group-onsemi 0:098463de4c5d 98 m_currentEndpoint++;
group-onsemi 0:098463de4c5d 99 return true;
group-onsemi 0:098463de4c5d 100 } else {
group-onsemi 0:098463de4c5d 101 m_currentEndpoint++;
group-onsemi 0:098463de4c5d 102 }
group-onsemi 0:098463de4c5d 103 }
group-onsemi 0:098463de4c5d 104 */
group-onsemi 0:098463de4c5d 105
group-onsemi 0:098463de4c5d 106 return false;
group-onsemi 0:098463de4c5d 107 }
group-onsemi 0:098463de4c5d 108
group-onsemi 0:098463de4c5d 109
group-onsemi 0:098463de4c5d 110 /*virtual*/ int UbloxCDMAModemInitializer::getType()
group-onsemi 0:098463de4c5d 111 {
group-onsemi 0:098463de4c5d 112 return WAN_DONGLE_TYPE_UBLOX_LISAC200;
group-onsemi 0:098463de4c5d 113 }
group-onsemi 0:098463de4c5d 114