18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * USB HandSpring Visor driver
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *	Copyright (C) 1999 - 2003
68c2ecf20Sopenharmony_ci *	    Greg Kroah-Hartman (greg@kroah.com)
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * See Documentation/usb/usb-serial.rst for more information on using this
98c2ecf20Sopenharmony_ci * driver.
108c2ecf20Sopenharmony_ci *
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#ifndef __LINUX_USB_SERIAL_VISOR_H
148c2ecf20Sopenharmony_ci#define __LINUX_USB_SERIAL_VISOR_H
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#define HANDSPRING_VENDOR_ID		0x082d
188c2ecf20Sopenharmony_ci#define HANDSPRING_VISOR_ID		0x0100
198c2ecf20Sopenharmony_ci#define HANDSPRING_TREO_ID		0x0200
208c2ecf20Sopenharmony_ci#define HANDSPRING_TREO600_ID		0x0300
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci#define PALM_VENDOR_ID			0x0830
238c2ecf20Sopenharmony_ci#define PALM_M500_ID			0x0001
248c2ecf20Sopenharmony_ci#define PALM_M505_ID			0x0002
258c2ecf20Sopenharmony_ci#define PALM_M515_ID			0x0003
268c2ecf20Sopenharmony_ci#define PALM_I705_ID			0x0020
278c2ecf20Sopenharmony_ci#define PALM_M125_ID			0x0040
288c2ecf20Sopenharmony_ci#define PALM_M130_ID			0x0050
298c2ecf20Sopenharmony_ci#define PALM_TUNGSTEN_T_ID		0x0060
308c2ecf20Sopenharmony_ci#define PALM_TREO_650			0x0061
318c2ecf20Sopenharmony_ci#define PALM_TUNGSTEN_Z_ID		0x0031
328c2ecf20Sopenharmony_ci#define PALM_ZIRE_ID			0x0070
338c2ecf20Sopenharmony_ci#define PALM_M100_ID			0x0080
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci#define GSPDA_VENDOR_ID		0x115e
368c2ecf20Sopenharmony_ci#define GSPDA_XPLORE_M68_ID		0xf100
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci#define SONY_VENDOR_ID			0x054C
398c2ecf20Sopenharmony_ci#define SONY_CLIE_3_5_ID		0x0038
408c2ecf20Sopenharmony_ci#define SONY_CLIE_4_0_ID		0x0066
418c2ecf20Sopenharmony_ci#define SONY_CLIE_S360_ID		0x0095
428c2ecf20Sopenharmony_ci#define SONY_CLIE_4_1_ID		0x009A
438c2ecf20Sopenharmony_ci#define SONY_CLIE_NX60_ID		0x00DA
448c2ecf20Sopenharmony_ci#define SONY_CLIE_NZ90V_ID		0x00E9
458c2ecf20Sopenharmony_ci#define SONY_CLIE_UX50_ID		0x0144
468c2ecf20Sopenharmony_ci#define SONY_CLIE_TJ25_ID		0x0169
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#define ACER_VENDOR_ID			0x0502
498c2ecf20Sopenharmony_ci#define ACER_S10_ID			0x0001
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#define SAMSUNG_VENDOR_ID		0x04E8
528c2ecf20Sopenharmony_ci#define SAMSUNG_SCH_I330_ID		0x8001
538c2ecf20Sopenharmony_ci#define SAMSUNG_SPH_I500_ID		0x6601
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci#define TAPWAVE_VENDOR_ID		0x12EF
568c2ecf20Sopenharmony_ci#define TAPWAVE_ZODIAC_ID		0x0100
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci#define GARMIN_VENDOR_ID		0x091E
598c2ecf20Sopenharmony_ci#define GARMIN_IQUE_3600_ID		0x0004
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci#define ACEECA_VENDOR_ID		0x4766
628c2ecf20Sopenharmony_ci#define ACEECA_MEZ1000_ID		0x0001
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci#define KYOCERA_VENDOR_ID		0x0C88
658c2ecf20Sopenharmony_ci#define KYOCERA_7135_ID			0x0021
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci#define FOSSIL_VENDOR_ID		0x0E67
688c2ecf20Sopenharmony_ci#define FOSSIL_ABACUS_ID		0x0002
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci/****************************************************************************
718c2ecf20Sopenharmony_ci * Handspring Visor Vendor specific request codes (bRequest values)
728c2ecf20Sopenharmony_ci * A big thank you to Handspring for providing the following information.
738c2ecf20Sopenharmony_ci * If anyone wants the original file where these values and structures came
748c2ecf20Sopenharmony_ci * from, send email to <greg@kroah.com>.
758c2ecf20Sopenharmony_ci ****************************************************************************/
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci/****************************************************************************
788c2ecf20Sopenharmony_ci * VISOR_REQUEST_BYTES_AVAILABLE asks the visor for the number of bytes that
798c2ecf20Sopenharmony_ci * are available to be transferred to the host for the specified endpoint.
808c2ecf20Sopenharmony_ci * Currently this is not used, and always returns 0x0001
818c2ecf20Sopenharmony_ci ****************************************************************************/
828c2ecf20Sopenharmony_ci#define VISOR_REQUEST_BYTES_AVAILABLE		0x01
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci/****************************************************************************
858c2ecf20Sopenharmony_ci * VISOR_CLOSE_NOTIFICATION is set to the device to notify it that the host
868c2ecf20Sopenharmony_ci * is now closing the pipe. An empty packet is sent in response.
878c2ecf20Sopenharmony_ci ****************************************************************************/
888c2ecf20Sopenharmony_ci#define VISOR_CLOSE_NOTIFICATION		0x02
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci/****************************************************************************
918c2ecf20Sopenharmony_ci * VISOR_GET_CONNECTION_INFORMATION is sent by the host during enumeration to
928c2ecf20Sopenharmony_ci * get the endpoints used by the connection.
938c2ecf20Sopenharmony_ci ****************************************************************************/
948c2ecf20Sopenharmony_ci#define VISOR_GET_CONNECTION_INFORMATION	0x03
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci/****************************************************************************
988c2ecf20Sopenharmony_ci * VISOR_GET_CONNECTION_INFORMATION returns data in the following format
998c2ecf20Sopenharmony_ci ****************************************************************************/
1008c2ecf20Sopenharmony_cistruct visor_connection_info {
1018c2ecf20Sopenharmony_ci	__le16	num_ports;
1028c2ecf20Sopenharmony_ci	struct {
1038c2ecf20Sopenharmony_ci		__u8	port_function_id;
1048c2ecf20Sopenharmony_ci		__u8	port;
1058c2ecf20Sopenharmony_ci	} connections[2];
1068c2ecf20Sopenharmony_ci};
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci/* struct visor_connection_info.connection[x].port defines: */
1108c2ecf20Sopenharmony_ci#define VISOR_ENDPOINT_1		0x01
1118c2ecf20Sopenharmony_ci#define VISOR_ENDPOINT_2		0x02
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci/* struct visor_connection_info.connection[x].port_function_id defines: */
1148c2ecf20Sopenharmony_ci#define VISOR_FUNCTION_GENERIC		0x00
1158c2ecf20Sopenharmony_ci#define VISOR_FUNCTION_DEBUGGER		0x01
1168c2ecf20Sopenharmony_ci#define VISOR_FUNCTION_HOTSYNC		0x02
1178c2ecf20Sopenharmony_ci#define VISOR_FUNCTION_CONSOLE		0x03
1188c2ecf20Sopenharmony_ci#define VISOR_FUNCTION_REMOTE_FILE_SYS	0x04
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci/****************************************************************************
1228c2ecf20Sopenharmony_ci * PALM_GET_SOME_UNKNOWN_INFORMATION is sent by the host during enumeration to
1238c2ecf20Sopenharmony_ci * get some information from the M series devices, that is currently unknown.
1248c2ecf20Sopenharmony_ci ****************************************************************************/
1258c2ecf20Sopenharmony_ci#define PALM_GET_EXT_CONNECTION_INFORMATION	0x04
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci/**
1288c2ecf20Sopenharmony_ci * struct palm_ext_connection_info - return data from a PALM_GET_EXT_CONNECTION_INFORMATION request
1298c2ecf20Sopenharmony_ci * @num_ports: maximum number of functions/connections in use
1308c2ecf20Sopenharmony_ci * @endpoint_numbers_different: will be 1 if in and out endpoints numbers are
1318c2ecf20Sopenharmony_ci *	different, otherwise it is 0.  If value is 1, then
1328c2ecf20Sopenharmony_ci *	connections.end_point_info is non-zero.  If value is 0, then
1338c2ecf20Sopenharmony_ci *	connections.port contains the endpoint number, which is the same for in
1348c2ecf20Sopenharmony_ci *	and out.
1358c2ecf20Sopenharmony_ci * @port_function_id: contains the creator id of the application that opened
1368c2ecf20Sopenharmony_ci *	this connection.
1378c2ecf20Sopenharmony_ci * @port: contains the in/out endpoint number.  Is 0 if in and out endpoint
1388c2ecf20Sopenharmony_ci *	numbers are different.
1398c2ecf20Sopenharmony_ci * @end_point_info: high nubbe is in endpoint and low nibble will indicate out
1408c2ecf20Sopenharmony_ci *	endpoint.  Is 0 if in and out endpoints are the same.
1418c2ecf20Sopenharmony_ci *
1428c2ecf20Sopenharmony_ci * The maximum number of connections currently supported is 2
1438c2ecf20Sopenharmony_ci */
1448c2ecf20Sopenharmony_cistruct palm_ext_connection_info {
1458c2ecf20Sopenharmony_ci	__u8 num_ports;
1468c2ecf20Sopenharmony_ci	__u8 endpoint_numbers_different;
1478c2ecf20Sopenharmony_ci	__le16 reserved1;
1488c2ecf20Sopenharmony_ci	struct {
1498c2ecf20Sopenharmony_ci		__u32 port_function_id;
1508c2ecf20Sopenharmony_ci		__u8 port;
1518c2ecf20Sopenharmony_ci		__u8 end_point_info;
1528c2ecf20Sopenharmony_ci		__le16 reserved;
1538c2ecf20Sopenharmony_ci	} connections[2];
1548c2ecf20Sopenharmony_ci};
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci#endif
1578c2ecf20Sopenharmony_ci
158