[smscusb] Move non-inline register access functions to smscusb.c
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
6a258d8d55
commit
340f03392d
|
@ -42,6 +42,63 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||||
static struct profiler smscusb_intr_profiler __profiler =
|
static struct profiler smscusb_intr_profiler __profiler =
|
||||||
{ .name = "smscusb.intr" };
|
{ .name = "smscusb.intr" };
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Register access
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write register (without byte-swapping)
|
||||||
|
*
|
||||||
|
* @v smscusb Smscusb device
|
||||||
|
* @v address Register address
|
||||||
|
* @v value Register value
|
||||||
|
* @ret rc Return status code
|
||||||
|
*/
|
||||||
|
int smscusb_raw_writel ( struct smscusb_device *smscusb, unsigned int address,
|
||||||
|
uint32_t value ) {
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
/* Write register */
|
||||||
|
DBGCIO ( smscusb, "SMSCUSB %p [%03x] <= %08x\n",
|
||||||
|
smscusb, address, le32_to_cpu ( value ) );
|
||||||
|
if ( ( rc = usb_control ( smscusb->usb, SMSCUSB_REGISTER_WRITE, 0,
|
||||||
|
address, &value, sizeof ( value ) ) ) != 0 ) {
|
||||||
|
DBGC ( smscusb, "SMSCUSB %p could not write %03x: %s\n",
|
||||||
|
smscusb, address, strerror ( rc ) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read register (without byte-swapping)
|
||||||
|
*
|
||||||
|
* @v smscusb SMSC USB device
|
||||||
|
* @v address Register address
|
||||||
|
* @ret value Register value
|
||||||
|
* @ret rc Return status code
|
||||||
|
*/
|
||||||
|
int smscusb_raw_readl ( struct smscusb_device *smscusb, unsigned int address,
|
||||||
|
uint32_t *value ) {
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
/* Read register */
|
||||||
|
if ( ( rc = usb_control ( smscusb->usb, SMSCUSB_REGISTER_READ, 0,
|
||||||
|
address, value, sizeof ( *value ) ) ) != 0 ) {
|
||||||
|
DBGC ( smscusb, "SMSCUSB %p could not read %03x: %s\n",
|
||||||
|
smscusb, address, strerror ( rc ) );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
DBGCIO ( smscusb, "SMSCUSB %p [%03x] => %08x\n",
|
||||||
|
smscusb, address, le32_to_cpu ( *value ) );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* EEPROM access
|
* EEPROM access
|
||||||
|
|
|
@ -170,30 +170,10 @@ struct smscusb_device {
|
||||||
uint32_t int_sts;
|
uint32_t int_sts;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
extern int smscusb_raw_writel ( struct smscusb_device *smscusb,
|
||||||
* Write register (without byte-swapping)
|
unsigned int address, uint32_t value );
|
||||||
*
|
extern int smscusb_raw_readl ( struct smscusb_device *smscusb,
|
||||||
* @v smscusb Smscusb device
|
unsigned int address, uint32_t *value );
|
||||||
* @v address Register address
|
|
||||||
* @v value Register value
|
|
||||||
* @ret rc Return status code
|
|
||||||
*/
|
|
||||||
static int smscusb_raw_writel ( struct smscusb_device *smscusb,
|
|
||||||
unsigned int address, uint32_t value ) {
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Write register */
|
|
||||||
DBGCIO ( smscusb, "SMSCUSB %p [%03x] <= %08x\n",
|
|
||||||
smscusb, address, le32_to_cpu ( value ) );
|
|
||||||
if ( ( rc = usb_control ( smscusb->usb, SMSCUSB_REGISTER_WRITE, 0,
|
|
||||||
address, &value, sizeof ( value ) ) ) != 0 ) {
|
|
||||||
DBGC ( smscusb, "SMSCUSB %p could not write %03x: %s\n",
|
|
||||||
smscusb, address, strerror ( rc ) );
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write register
|
* Write register
|
||||||
|
@ -216,31 +196,6 @@ smscusb_writel ( struct smscusb_device *smscusb, unsigned int address,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Read register (without byte-swapping)
|
|
||||||
*
|
|
||||||
* @v smscusb SMSC USB device
|
|
||||||
* @v address Register address
|
|
||||||
* @ret value Register value
|
|
||||||
* @ret rc Return status code
|
|
||||||
*/
|
|
||||||
static int smscusb_raw_readl ( struct smscusb_device *smscusb,
|
|
||||||
unsigned int address, uint32_t *value ) {
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
/* Read register */
|
|
||||||
if ( ( rc = usb_control ( smscusb->usb, SMSCUSB_REGISTER_READ, 0,
|
|
||||||
address, value, sizeof ( *value ) ) ) != 0 ) {
|
|
||||||
DBGC ( smscusb, "SMSCUSB %p could not read %03x: %s\n",
|
|
||||||
smscusb, address, strerror ( rc ) );
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
DBGCIO ( smscusb, "SMSCUSB %p [%03x] => %08x\n",
|
|
||||||
smscusb, address, le32_to_cpu ( *value ) );
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read register
|
* Read register
|
||||||
*
|
*
|
||||||
|
|
Reference in New Issue