hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/net/ethernet/microchip/lan743x_main.h
....@@ -4,6 +4,7 @@
44 #ifndef _LAN743X_H
55 #define _LAN743X_H
66
7
+#include <linux/phy.h>
78 #include "lan743x_ptp.h"
89
910 #define DRIVER_AUTHOR "Bryan Whitehead <Bryan.Whitehead@microchip.com>"
....@@ -26,6 +27,8 @@
2627 #define FPGA_REV_GET_MAJOR_(fpga_rev) ((fpga_rev) & 0x000000FF)
2728
2829 #define HW_CFG (0x010)
30
+#define HW_CFG_RELOAD_TYPE_ALL_ (0x00000FC0)
31
+#define HW_CFG_EE_OTP_RELOAD_ BIT(4)
2932 #define HW_CFG_LRST_ BIT(1)
3033
3134 #define PMT_CTL (0x014)
....@@ -102,10 +105,14 @@
102105 ((value << 0) & FCT_FLOW_CTL_ON_THRESHOLD_)
103106
104107 #define MAC_CR (0x100)
108
+#define MAC_CR_MII_EN_ BIT(19)
105109 #define MAC_CR_EEE_EN_ BIT(17)
106110 #define MAC_CR_ADD_ BIT(12)
107111 #define MAC_CR_ASD_ BIT(11)
108112 #define MAC_CR_CNTR_RST_ BIT(5)
113
+#define MAC_CR_DPX_ BIT(3)
114
+#define MAC_CR_CFG_H_ BIT(2)
115
+#define MAC_CR_CFG_L_ BIT(1)
109116 #define MAC_CR_RST_ BIT(0)
110117
111118 #define MAC_RX (0x104)
....@@ -453,16 +460,18 @@
453460 #define OTP_PWR_DN (0x1000)
454461 #define OTP_PWR_DN_PWRDN_N_ BIT(0)
455462
456
-#define OTP_ADDR1 (0x1004)
457
-#define OTP_ADDR1_15_11_MASK_ (0x1F)
458
-
459
-#define OTP_ADDR2 (0x1008)
460
-#define OTP_ADDR2_10_3_MASK_ (0xFF)
463
+#define OTP_ADDR_HIGH (0x1004)
464
+#define OTP_ADDR_LOW (0x1008)
461465
462466 #define OTP_PRGM_DATA (0x1010)
463467
464468 #define OTP_PRGM_MODE (0x1014)
465469 #define OTP_PRGM_MODE_BYTE_ BIT(0)
470
+
471
+#define OTP_READ_DATA (0x1018)
472
+
473
+#define OTP_FUNC_CMD (0x1020)
474
+#define OTP_FUNC_CMD_READ_ BIT(0)
466475
467476 #define OTP_TST_CMD (0x1024)
468477 #define OTP_TST_CMD_PRGVRFY_ BIT(3)
....@@ -651,7 +660,7 @@
651660
652661 struct lan743x_tx_buffer_info *buffer_info;
653662
654
- u32 *head_cpu_ptr;
663
+ __le32 *head_cpu_ptr;
655664 dma_addr_t head_dma_ptr;
656665 int last_head;
657666 int last_tail;
....@@ -681,7 +690,7 @@
681690
682691 struct lan743x_rx_buffer_info *buffer_info;
683692
684
- u32 *head_cpu_ptr;
693
+ __le32 *head_cpu_ptr;
685694 dma_addr_t head_dma_ptr;
686695 u32 last_head;
687696 u32 last_tail;
....@@ -694,6 +703,7 @@
694703 struct lan743x_adapter {
695704 struct net_device *netdev;
696705 struct mii_bus *mdiobus;
706
+ phy_interface_t phy_mode;
697707 int msg_enable;
698708 #ifdef CONFIG_PM
699709 u32 wolopts;
....@@ -710,6 +720,9 @@
710720 struct lan743x_phy phy;
711721 struct lan743x_tx tx[LAN743X_MAX_TX_CHANNELS];
712722 struct lan743x_rx rx[LAN743X_MAX_RX_CHANNELS];
723
+
724
+#define LAN743X_ADAPTER_FLAG_OTP BIT(0)
725
+ u32 flags;
713726 };
714727
715728 #define LAN743X_COMPONENT_FLAG_RX(channel) BIT(20 + (channel))
....@@ -762,10 +775,10 @@
762775 #define TX_DESC_DATA3_FRAME_LENGTH_MSS_MASK_ (0x3FFF0000)
763776
764777 struct lan743x_tx_descriptor {
765
- u32 data0;
766
- u32 data1;
767
- u32 data2;
768
- u32 data3;
778
+ __le32 data0;
779
+ __le32 data1;
780
+ __le32 data2;
781
+ __le32 data3;
769782 } __aligned(DEFAULT_DMA_DESCRIPTOR_SPACING);
770783
771784 #define TX_BUFFER_INFO_FLAG_ACTIVE BIT(0)
....@@ -800,10 +813,10 @@
800813 #define RX_HEAD_PADDING NET_IP_ALIGN
801814
802815 struct lan743x_rx_descriptor {
803
- u32 data0;
804
- u32 data1;
805
- u32 data2;
806
- u32 data3;
816
+ __le32 data0;
817
+ __le32 data1;
818
+ __le32 data2;
819
+ __le32 data3;
807820 } __aligned(DEFAULT_DMA_DESCRIPTOR_SPACING);
808821
809822 #define RX_BUFFER_INFO_FLAG_ACTIVE BIT(0)