@ -40,71 +40,6 @@ static int wait_for_sync(struct cros_ec_dev *dev)
return 0 ;
}
/**
* Send a command to a LPC CROS_EC device and return the reply .
*
* The device ' s internal input / output buffers are used .
*
* @ param dev CROS_EC device
* @ param cmd Command to send ( EC_CMD_ . . . )
* @ param cmd_version Version of command to send ( EC_VER_ . . . )
* @ param dout Output data ( may be NULL If dout_len = 0 )
* @ param dout_len Size of output data in bytes
* @ param dinp Place to put pointer to response data
* @ param din_len Maximum size of response in bytes
* @ return number of bytes in response , or - 1 on error
*/
static int old_lpc_command ( struct cros_ec_dev * dev , uint8_t cmd ,
const uint8_t * dout , int dout_len ,
uint8_t * * dinp , int din_len )
{
int ret , i ;
if ( dout_len > EC_OLD_PARAM_SIZE ) {
debug ( " %s: Cannot send %d bytes \n " , __func__ , dout_len ) ;
return - 1 ;
}
if ( din_len > EC_OLD_PARAM_SIZE ) {
debug ( " %s: Cannot receive %d bytes \n " , __func__ , din_len ) ;
return - 1 ;
}
if ( wait_for_sync ( dev ) ) {
debug ( " %s: Timeout waiting ready \n " , __func__ ) ;
return - 1 ;
}
debug_trace ( " cmd: %02x, " , cmd ) ;
for ( i = 0 ; i < dout_len ; i + + ) {
debug_trace ( " %02x " , dout [ i ] ) ;
outb ( dout [ i ] , EC_LPC_ADDR_OLD_PARAM + i ) ;
}
outb ( cmd , EC_LPC_ADDR_HOST_CMD ) ;
debug_trace ( " \n " ) ;
if ( wait_for_sync ( dev ) ) {
debug ( " %s: Timeout waiting ready \n " , __func__ ) ;
return - 1 ;
}
ret = inb ( EC_LPC_ADDR_HOST_DATA ) ;
if ( ret ) {
debug ( " %s: CROS_EC result code %d \n " , __func__ , ret ) ;
return - ret ;
}
debug_trace ( " resp: %02x, " , ret ) ;
for ( i = 0 ; i < din_len ; i + + ) {
dev - > din [ i ] = inb ( EC_LPC_ADDR_OLD_PARAM + i ) ;
debug_trace ( " %02x " , dev - > din [ i ] ) ;
}
debug_trace ( " \n " ) ;
* dinp = dev - > din ;
return din_len ;
}
int cros_ec_lpc_command ( struct cros_ec_dev * dev , uint8_t cmd , int cmd_version ,
const uint8_t * dout , int dout_len ,
uint8_t * * dinp , int din_len )
@ -119,11 +54,6 @@ int cros_ec_lpc_command(struct cros_ec_dev *dev, uint8_t cmd, int cmd_version,
int csum ;
int i ;
/* Fall back to old-style command interface if args aren't supported */
if ( ! dev - > cmd_version_is_supported )
return old_lpc_command ( dev , cmd , dout , dout_len , dinp ,
din_len ) ;
if ( dout_len > EC_HOST_PARAM_SIZE ) {
debug ( " %s: Cannot send %d bytes \n " , __func__ , dout_len ) ;
return - 1 ;
@ -256,13 +186,9 @@ int cros_ec_lpc_check_version(struct cros_ec_dev *dev)
( inb ( EC_LPC_ADDR_MEMMAP +
EC_MEMMAP_HOST_CMD_FLAGS ) &
EC_HOST_CMD_FLAG_LPC_ARGS_SUPPORTED ) ) {
dev - > cmd_version_is_supported = 1 ;
} else {
/* We are going to use the old IO ports */
dev - > cmd_version_is_supported = 0 ;
return 0 ;
}
debug ( " lpc: version %s \n " , dev - > cmd_version_is_supported ?
" new " : " old " ) ;
return 0 ;
printf ( " %s: ERROR: old EC interface not supported \n " , __func__ ) ;
return - 1 ;
}