mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-03 19:55:31 +00:00
serial: 8250_exar: Remove old exar_ee_read() and other unneeded code
Remove the old exar_ee_read() and associated helper functions. Remove defines that are no longer needed after the switch to using the eeprom_93cx6 driver. Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Parker Newman <pnewman@connecttech.com> Link: https://lore.kernel.org/r/ed756c48965a95ce3384ebb7fe2441b4928b4510.1727880931.git.pnewman@connecttech.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
85eb2e57ed
commit
f5927d832b
@ -136,8 +136,6 @@
|
||||
#define UART_EXAR_REGB_EECS BIT(5)
|
||||
#define UART_EXAR_REGB_EEDI BIT(6)
|
||||
#define UART_EXAR_REGB_EEDO BIT(7)
|
||||
#define UART_EXAR_REGB_EE_ADDR_SIZE 6
|
||||
#define UART_EXAR_REGB_EE_DATA_SIZE 16
|
||||
|
||||
#define UART_EXAR_XR17C15X_PORT_OFFSET 0x200
|
||||
#define UART_EXAR_XR17V25X_PORT_OFFSET 0x200
|
||||
@ -270,94 +268,6 @@ static inline u8 exar_read_reg(struct exar8250 *priv, unsigned int reg)
|
||||
return readb(priv->virt + reg);
|
||||
}
|
||||
|
||||
static inline void exar_ee_select(struct exar8250 *priv)
|
||||
{
|
||||
// Set chip select pin high to enable EEPROM reads/writes
|
||||
exar_write_reg(priv, UART_EXAR_REGB, UART_EXAR_REGB_EECS);
|
||||
// Min ~500ns delay needed between CS assert and EEPROM access
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
static inline void exar_ee_deselect(struct exar8250 *priv)
|
||||
{
|
||||
exar_write_reg(priv, UART_EXAR_REGB, 0x00);
|
||||
}
|
||||
|
||||
static inline void exar_ee_write_bit(struct exar8250 *priv, u8 bit)
|
||||
{
|
||||
u8 value = UART_EXAR_REGB_EECS;
|
||||
|
||||
if (bit)
|
||||
value |= UART_EXAR_REGB_EEDI;
|
||||
|
||||
// Clock out the bit on the EEPROM interface
|
||||
exar_write_reg(priv, UART_EXAR_REGB, value);
|
||||
// 2us delay = ~500khz clock speed
|
||||
udelay(2);
|
||||
|
||||
value |= UART_EXAR_REGB_EECK;
|
||||
|
||||
exar_write_reg(priv, UART_EXAR_REGB, value);
|
||||
udelay(2);
|
||||
}
|
||||
|
||||
static inline u8 exar_ee_read_bit(struct exar8250 *priv)
|
||||
{
|
||||
u8 regb;
|
||||
u8 value = UART_EXAR_REGB_EECS;
|
||||
|
||||
// Clock in the bit on the EEPROM interface
|
||||
exar_write_reg(priv, UART_EXAR_REGB, value);
|
||||
// 2us delay = ~500khz clock speed
|
||||
udelay(2);
|
||||
|
||||
value |= UART_EXAR_REGB_EECK;
|
||||
|
||||
exar_write_reg(priv, UART_EXAR_REGB, value);
|
||||
udelay(2);
|
||||
|
||||
regb = exar_read_reg(priv, UART_EXAR_REGB);
|
||||
|
||||
return (regb & UART_EXAR_REGB_EEDO ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* exar_ee_read() - Read a word from the EEPROM
|
||||
* @priv: Device's private structure
|
||||
* @ee_addr: Offset of EEPROM to read word from
|
||||
*
|
||||
* Read a single 16bit word from an Exar UART's EEPROM.
|
||||
* The type of the EEPROM is AT93C46D.
|
||||
*
|
||||
* Return: EEPROM word
|
||||
*/
|
||||
static u16 exar_ee_read(struct exar8250 *priv, u8 ee_addr)
|
||||
{
|
||||
int i;
|
||||
u16 data = 0;
|
||||
|
||||
exar_ee_select(priv);
|
||||
|
||||
// Send read command (opcode 110)
|
||||
exar_ee_write_bit(priv, 1);
|
||||
exar_ee_write_bit(priv, 1);
|
||||
exar_ee_write_bit(priv, 0);
|
||||
|
||||
// Send address to read from
|
||||
for (i = UART_EXAR_REGB_EE_ADDR_SIZE - 1; i >= 0; i--)
|
||||
exar_ee_write_bit(priv, ee_addr & BIT(i));
|
||||
|
||||
// Read data 1 bit at a time starting with a dummy bit
|
||||
for (i = UART_EXAR_REGB_EE_DATA_SIZE; i >= 0; i--) {
|
||||
if (exar_ee_read_bit(priv))
|
||||
data |= BIT(i);
|
||||
}
|
||||
|
||||
exar_ee_deselect(priv);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
static void exar_eeprom_93cx6_reg_read(struct eeprom_93cx6 *eeprom)
|
||||
{
|
||||
struct exar8250 *priv = eeprom->data;
|
||||
|
Loading…
Reference in New Issue
Block a user