• Akinobu Mita's avatar
    net: w5100: support W5500 · 35ef7d68
    Akinobu Mita authored
    This adds support for W5500 chip.
    
    W5500 has similar register and memory organization with W5100 and W5200.
    There are a few important differences listed below but it is still
    possible to share common code with W5100 and W5200.
    
    * W5500 register and memory are organized by multiple blocks.  Each one
    is selected by 16bits offset address and 5bits block select bits.
    
    But the existing register access operations take u16 address.  This change
    extends the addess by u32 address and put offset address to lower 16bits
    and block select bits to upper 16bits.
    
    This change also adds the offset addresses for socket register and TX/RX
    memory blocks to the driver private data structure in order to reduce
    conditional switches for each chip.
    
    * W5500 has the different register offset for socket interrupt mask
    register.  Newly added internal functions w5100_enable_intr() and
    w5100_disable_intr() take care of the diffrence.
    
    * W5500 has the different register offset for retry time-value register.
    But this register is only used to verify that the reset value is correctly
    read at initialization.  So move the verification to w5100_hw_reset()
    which already does different things for different chips.
    Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
    Cc: Mike Sinkovsky <msink@permonline.ru>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    35ef7d68
w5100.c 31 KB