view src/cs/services/atp/atp_spp_api.h @ 673:62a5285e014a

Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango Back in 2015 the Mother's idea was to produce a FreeCalypso development board that would be a clone of TI Leonardo, including the original quadband RFFE; one major additional stipulation was that this board needed to be able to run original unmodified TCS211-20070608 firmware with all blobs intact, with only minimal binary patches to main.lib and tpudrv.lib. The necessary patched libs were produced at that time in the tcs211-patches repository. That plan was changed and we produced FCDEV3B instead, with Openmoko's triband RFFE instead of Leonardo quadband, but when FC Magnetite started in 2016, a TPUDRV_blob= provision was still made, allowing the possibility of patching OM's tpudrv.lib for a restored Leonardo RFFE. Now in 2020 we have FC Tango which is essentially a verbatim clone of Leonardo core, including the original quadband RFFE. We have also deblobbed our firmware so much that we have absolutely no real need for a blob version of tpudrv.lib - but I thought it would be neat to put the ancient TPUDRV_blob= mechanism (classic config) to its originally intended use, just for the heck of it.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 29 May 2020 03:55:36 +0000
parents 945cf7f506b2
children
line wrap: on
line source

/*******************************************************************************
*
* File Name : atp_spp_api.h
*
* Definitions for the interface between ATP and SPP SW entity
*
* (C) Texas Instruments, all rights reserved
*
* Version number	: 0.1      Date : 16-Marsh-2000
*
* History			: 0.1  - Created by E. Baissus
*
*
* Author			: Eric Baissus : e-baissus@ti.com
*
*   (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved
******************************************************************************/
#ifndef ATP_SPP_API_H
#define ATP_SPP_API_H


#include "rv/rv_general.h"
#include "rvf/rvf_api.h"
#include "l2cap_gen.h"
#include "spp_general.h"
#include "atp/atp_api.h"

#define SPP_ALL_THE_EVENTS (0xFF)
#define SPP_RX_HEAD_SIZE (SPP_TX_OFFSET)
#define SPP_RX_TRAIL_SIZE (SPP_TX_LENGTH-(SPP_TX_OFFSET))


/* Types and definition used between ATP and SPP */
typedef enum
{
	ATP_IS_SERVER,
	ATP_IS_CLIENT
} T_ATP_IS_SERVER;


/* Custom information used during a new open port request to spp */
typedef enum
{
	ATP_PAYLOAD_LENGTH_RENEG_ON,
	ATP_PAYLOAD_LENGTH_RENEG_OFF
} T_ATP_PAYLOAD_LENTH_RENEG_EN;

typedef enum
{
	ATP_AUTOMATIC_FLOW_CTRL_ON,
	ATP_AUTOMATIC_FLOW_CTRL_OFF
} T_ATP_SPP_FLOW_CONTROL_MODE;

typedef struct
{
	T_ATP_CUSTOM_TYPE custom_type;
	T_BD_ADDR bd_addr;
	UINT16 server_channel;
	UINT16 max_payload_length; // max = 32 KBytes
	T_ATP_PAYLOAD_LENTH_RENEG_EN max_payload_length_reneg_en;
	T_RVF_MB_ID rx_mb;
	T_ATP_SPP_FLOW_CONTROL_MODE flow_ctrl_mode;
	T_ATP_IS_SERVER is_server;
} T_ATP_CUSTOM_TO_SPP_INFO;

/* Custom information used during a new open port response by spp */
typedef struct
{
	T_ATP_CUSTOM_TYPE custom_type;
	T_BD_ADDR bd_addr;
	UINT16 max_payload_length;
} T_ATP_CUSTOM_FROM_SPP_INFO;

/* Custom Commands exchanged with SPP : see atp_send_cmd and ATP_CMD_RDY definitions*/
#define ATP_FROM_SPP_MAX_PAYLOAD_IND_CMD (0) // custom info is the payload value (UINT32)
#define ATP_FROM_SPP_REG_SERVER_ERROR (1) // No custom info
 

extern T_RV_RET atp_spp_init(T_RVF_ADDR_ID addr_id, T_RVF_MB_ID mb_id);
extern T_RV_RET atp_spp_start(void);

#endif