Files
android_kernel_samsung_msm8…/include/linux/smsc_hub.h
T
Pavankumar Kondeti 1faf31c45c USB: HSIC SMSC HUB: Add support for 3502 model
The SMSC 3502 HUB has only one USB UICC port. "VBAT only" single
supply configuration is used. A gpio is used to control the
external oscillator which supplies the ref clock to the HUB. USB
UICC card is connected to this HUB on MSM8926. Provide a sysfs
interface for userspace to enable/disable the HUB. This is
required to save the power when a non-supported card is inserted.

The HUB is disabled during boot. If the card is inserted and supports
UICC, HUB is enabled by the userspace.

Change-Id: Ic2b0c5bd2066a2ecae7f18aac2ab8d0bc2f075c0
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2014-02-25 13:46:47 +05:30

60 lines
1.7 KiB
C

/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef __LINUX_SMSC3503_H__
#define __LINUX_SMSC3503_H__
#define SMSC3502_ID 3502
#define SMSC3503_ID 3503
#define SMSC4604_ID 4604
#define SMSC3503_I2C_ADDR 0x08
#define SMSC4604_I2C_ADDR 0x2d
#define SMSC_GSBI_I2C_BUS_ID 0
/*Serial interface Registers*/
#define SMSC3503_VENDORID 0x00 /*u16 read*/
#define SMSC3503_PRODUCTID 0x02 /*u16 read*/
#define SMSC3503_DEVICEID 0x04 /*u16 read*/
#define SMSC3503_CONFIG_BYTE_1 0x06 /*u8 read*/
#define PORT_PWR (1<<0)
#define EOP_DISABLE (1<<3)
#define MTT_ENABLE (1<<4)
#define HS_DISABLE (1<<5)
#define SELF_BUS_PWR (1<<7)
#define SMSC3503_CONFIG_BYTE_2 0x07 /*u8 read*/
#define SMSC3503_LANGID 0x11 /*u16 read*/
#define SMSC3503_MFRSL 0x13 /*u8 read*/
#define SMSC3503_PRDSL 0x14 /*u8 read*/
#define SMSC3503_SERSL 0x15 /*u8 read*/
#define SMSC3503_MANSTR 0x16 /*0x16h-0x53h*/
#define SMSC3503_PRDSTR 0x54 /*0x54h-0x91h*/
#define SMSC3503_SERSTR 0x92 /*0x92h-0xCFh*/
#define SMSC3503_SP_ILOCK 0xE7 /*u8 read, set,clear*/
#define CONFIG_N (1<<0)
#define CONNECT_N (1<<1)
#define PRTPWRPINSEL (1<<4)
#define OCSPINSEL (1<<5)
struct smsc_hub_platform_data {
u32 model_id;
int hub_reset;
int refclk_gpio;
int int_gpio;
int xo_clk_gpio;
};
#endif