mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 03:35:32 -04:00
net: ethernet: oa_tc6: Export standard defined registers
Move defines for standard Open Alliance TC6 register addresses and subfields in the oa_tc6's header. As such, other ethernet drivers that rely on oa_tc6 can use them directly. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Ciprian Regus <ciprian.regus@analog.com> Link: https://patch.msgid.link/20260708-adin1140-driver-v5-5-4aca7b51a58b@analog.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
87ac7ea215
commit
9210d402bd
@@ -12,47 +12,6 @@
|
||||
#include <linux/phy.h>
|
||||
#include <linux/oa_tc6.h>
|
||||
|
||||
/* OPEN Alliance TC6 registers */
|
||||
/* Standard Capabilities Register */
|
||||
#define OA_TC6_REG_STDCAP 0x0002
|
||||
#define STDCAP_DIRECT_PHY_REG_ACCESS BIT(8)
|
||||
|
||||
/* Reset Control and Status Register */
|
||||
#define OA_TC6_REG_RESET 0x0003
|
||||
#define RESET_SWRESET BIT(0) /* Software Reset */
|
||||
|
||||
/* Configuration Register #0 */
|
||||
#define OA_TC6_REG_CONFIG0 0x0004
|
||||
#define CONFIG0_SYNC BIT(15)
|
||||
#define CONFIG0_ZARFE_ENABLE BIT(12)
|
||||
#define CONFIG0_PROTE BIT(5)
|
||||
|
||||
/* Status Register #0 */
|
||||
#define OA_TC6_REG_STATUS0 0x0008
|
||||
#define STATUS0_RESETC BIT(6) /* Reset Complete */
|
||||
#define STATUS0_HEADER_ERROR BIT(5)
|
||||
#define STATUS0_LOSS_OF_FRAME_ERROR BIT(4)
|
||||
#define STATUS0_RX_BUFFER_OVERFLOW_ERROR BIT(3)
|
||||
#define STATUS0_TX_PROTOCOL_ERROR BIT(0)
|
||||
|
||||
/* Buffer Status Register */
|
||||
#define OA_TC6_REG_BUFFER_STATUS 0x000B
|
||||
#define BUFFER_STATUS_TX_CREDITS_AVAILABLE GENMASK(15, 8)
|
||||
#define BUFFER_STATUS_RX_CHUNKS_AVAILABLE GENMASK(7, 0)
|
||||
|
||||
/* Interrupt Mask Register #0 */
|
||||
#define OA_TC6_REG_INT_MASK0 0x000C
|
||||
#define INT_MASK0_HEADER_ERR_MASK BIT(5)
|
||||
#define INT_MASK0_LOSS_OF_FRAME_ERR_MASK BIT(4)
|
||||
#define INT_MASK0_RX_BUFFER_OVERFLOW_ERR_MASK BIT(3)
|
||||
#define INT_MASK0_TX_PROTOCOL_ERR_MASK BIT(0)
|
||||
#define INT_MASK0_ALL_INTERRUPTS (GENMASK(5, 0) | \
|
||||
GENMASK(12, 7))
|
||||
|
||||
/* PHY Clause 22 registers base address and mask */
|
||||
#define OA_TC6_PHY_STD_REG_ADDR_BASE 0xFF00
|
||||
#define OA_TC6_PHY_STD_REG_ADDR_MASK 0x1F
|
||||
|
||||
/* Control command header */
|
||||
#define OA_TC6_CTRL_HEADER_DATA_NOT_CTRL BIT(31)
|
||||
#define OA_TC6_CTRL_HEADER_WRITE_NOT_READ BIT(29)
|
||||
@@ -82,15 +41,6 @@
|
||||
#define OA_TC6_DATA_FOOTER_END_BYTE_OFFSET GENMASK(13, 8)
|
||||
#define OA_TC6_DATA_FOOTER_TX_CREDITS GENMASK(5, 1)
|
||||
|
||||
/* PHY – Clause 45 registers memory map selector (MMS) as per table 6 in the
|
||||
* OPEN Alliance specification.
|
||||
*/
|
||||
#define OA_TC6_PHY_C45_PCS_MMS2 2 /* MMD 3 */
|
||||
#define OA_TC6_PHY_C45_PMA_PMD_MMS3 3 /* MMD 1 */
|
||||
#define OA_TC6_PHY_C45_VS_PLCA_MMS4 4 /* MMD 31 */
|
||||
#define OA_TC6_PHY_C45_AUTO_NEG_MMS5 5 /* MMD 7 */
|
||||
#define OA_TC6_PHY_C45_POWER_UNIT_MMS6 6 /* MMD 13 */
|
||||
|
||||
#define OA_TC6_CTRL_PROT_REPLY_SIZE 4
|
||||
#define OA_TC6_CTRL_HEADER_SIZE 4
|
||||
#define OA_TC6_CTRL_REG_VALUE_SIZE 4
|
||||
|
||||
@@ -10,6 +10,56 @@
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
/* OPEN Alliance TC6 registers */
|
||||
/* Standard Capabilities Register */
|
||||
#define OA_TC6_REG_STDCAP 0x0002
|
||||
#define STDCAP_DIRECT_PHY_REG_ACCESS BIT(8)
|
||||
|
||||
/* Reset Control and Status Register */
|
||||
#define OA_TC6_REG_RESET 0x0003
|
||||
#define RESET_SWRESET BIT(0) /* Software Reset */
|
||||
|
||||
/* Configuration Register #0 */
|
||||
#define OA_TC6_REG_CONFIG0 0x0004
|
||||
#define CONFIG0_SYNC BIT(15)
|
||||
#define CONFIG0_ZARFE_ENABLE BIT(12)
|
||||
#define CONFIG0_PROTE BIT(5)
|
||||
|
||||
/* Status Register #0 */
|
||||
#define OA_TC6_REG_STATUS0 0x0008
|
||||
#define STATUS0_RESETC BIT(6) /* Reset Complete */
|
||||
#define STATUS0_HEADER_ERROR BIT(5)
|
||||
#define STATUS0_LOSS_OF_FRAME_ERROR BIT(4)
|
||||
#define STATUS0_RX_BUFFER_OVERFLOW_ERROR BIT(3)
|
||||
#define STATUS0_TX_PROTOCOL_ERROR BIT(0)
|
||||
|
||||
/* Buffer Status Register */
|
||||
#define OA_TC6_REG_BUFFER_STATUS 0x000B
|
||||
#define BUFFER_STATUS_TX_CREDITS_AVAILABLE GENMASK(15, 8)
|
||||
#define BUFFER_STATUS_RX_CHUNKS_AVAILABLE GENMASK(7, 0)
|
||||
|
||||
/* Interrupt Mask Register #0 */
|
||||
#define OA_TC6_REG_INT_MASK0 0x000C
|
||||
#define INT_MASK0_HEADER_ERR_MASK BIT(5)
|
||||
#define INT_MASK0_LOSS_OF_FRAME_ERR_MASK BIT(4)
|
||||
#define INT_MASK0_RX_BUFFER_OVERFLOW_ERR_MASK BIT(3)
|
||||
#define INT_MASK0_TX_PROTOCOL_ERR_MASK BIT(0)
|
||||
#define INT_MASK0_ALL_INTERRUPTS (GENMASK(5, 0) | \
|
||||
GENMASK(12, 7))
|
||||
|
||||
/* PHY Clause 22 registers base address and mask */
|
||||
#define OA_TC6_PHY_STD_REG_ADDR_BASE 0xFF00
|
||||
#define OA_TC6_PHY_STD_REG_ADDR_MASK 0x1F
|
||||
|
||||
/* PHY – Clause 45 registers memory map selector (MMS) as per table 6 in the
|
||||
* OPEN Alliance specification.
|
||||
*/
|
||||
#define OA_TC6_PHY_C45_PCS_MMS2 2 /* MMD 3 */
|
||||
#define OA_TC6_PHY_C45_PMA_PMD_MMS3 3 /* MMD 1 */
|
||||
#define OA_TC6_PHY_C45_VS_PLCA_MMS4 4 /* MMD 31 */
|
||||
#define OA_TC6_PHY_C45_AUTO_NEG_MMS5 5 /* MMD 7 */
|
||||
#define OA_TC6_PHY_C45_POWER_UNIT_MMS6 6 /* MMD 13 */
|
||||
|
||||
struct oa_tc6;
|
||||
|
||||
enum oa_tc6_quirk_flag {
|
||||
|
||||
Reference in New Issue
Block a user