2
0

737-05-net-ethernet-mtk_eth_soc-convert-caps-in-mtk_soc_dat.patch 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. From 45b575fd9e6a455090820248bf1b98b1f2c7b6c8 Mon Sep 17 00:00:00 2001
  2. From: Lorenzo Bianconi <[email protected]>
  3. Date: Tue, 7 Mar 2023 15:56:00 +0000
  4. Subject: [PATCH 5/7] net: ethernet: mtk_eth_soc: convert caps in mtk_soc_data
  5. struct to u64
  6. This is a preliminary patch to introduce support for MT7988 SoC.
  7. Signed-off-by: Lorenzo Bianconi <[email protected]>
  8. Signed-off-by: Daniel Golle <[email protected]>
  9. ---
  10. drivers/net/ethernet/mediatek/mtk_eth_path.c | 22 +++----
  11. drivers/net/ethernet/mediatek/mtk_eth_soc.h | 62 ++++++++++----------
  12. 2 files changed, 42 insertions(+), 42 deletions(-)
  13. --- a/drivers/net/ethernet/mediatek/mtk_eth_path.c
  14. +++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c
  15. @@ -15,10 +15,10 @@
  16. struct mtk_eth_muxc {
  17. const char *name;
  18. int cap_bit;
  19. - int (*set_path)(struct mtk_eth *eth, int path);
  20. + int (*set_path)(struct mtk_eth *eth, u64 path);
  21. };
  22. -static const char *mtk_eth_path_name(int path)
  23. +static const char *mtk_eth_path_name(u64 path)
  24. {
  25. switch (path) {
  26. case MTK_ETH_PATH_GMAC1_RGMII:
  27. @@ -40,7 +40,7 @@ static const char *mtk_eth_path_name(int
  28. }
  29. }
  30. -static int set_mux_gdm1_to_gmac1_esw(struct mtk_eth *eth, int path)
  31. +static int set_mux_gdm1_to_gmac1_esw(struct mtk_eth *eth, u64 path)
  32. {
  33. bool updated = true;
  34. u32 val, mask, set;
  35. @@ -71,7 +71,7 @@ static int set_mux_gdm1_to_gmac1_esw(str
  36. return 0;
  37. }
  38. -static int set_mux_gmac2_gmac0_to_gephy(struct mtk_eth *eth, int path)
  39. +static int set_mux_gmac2_gmac0_to_gephy(struct mtk_eth *eth, u64 path)
  40. {
  41. unsigned int val = 0;
  42. bool updated = true;
  43. @@ -94,7 +94,7 @@ static int set_mux_gmac2_gmac0_to_gephy(
  44. return 0;
  45. }
  46. -static int set_mux_u3_gmac2_to_qphy(struct mtk_eth *eth, int path)
  47. +static int set_mux_u3_gmac2_to_qphy(struct mtk_eth *eth, u64 path)
  48. {
  49. unsigned int val = 0, mask = 0, reg = 0;
  50. bool updated = true;
  51. @@ -125,7 +125,7 @@ static int set_mux_u3_gmac2_to_qphy(stru
  52. return 0;
  53. }
  54. -static int set_mux_gmac1_gmac2_to_sgmii_rgmii(struct mtk_eth *eth, int path)
  55. +static int set_mux_gmac1_gmac2_to_sgmii_rgmii(struct mtk_eth *eth, u64 path)
  56. {
  57. unsigned int val = 0;
  58. bool updated = true;
  59. @@ -163,7 +163,7 @@ static int set_mux_gmac1_gmac2_to_sgmii_
  60. return 0;
  61. }
  62. -static int set_mux_gmac12_to_gephy_sgmii(struct mtk_eth *eth, int path)
  63. +static int set_mux_gmac12_to_gephy_sgmii(struct mtk_eth *eth, u64 path)
  64. {
  65. unsigned int val = 0;
  66. bool updated = true;
  67. @@ -218,7 +218,7 @@ static const struct mtk_eth_muxc mtk_eth
  68. },
  69. };
  70. -static int mtk_eth_mux_setup(struct mtk_eth *eth, int path)
  71. +static int mtk_eth_mux_setup(struct mtk_eth *eth, u64 path)
  72. {
  73. int i, err = 0;
  74. @@ -249,7 +249,7 @@ out:
  75. int mtk_gmac_sgmii_path_setup(struct mtk_eth *eth, int mac_id)
  76. {
  77. - int path;
  78. + u64 path;
  79. path = (mac_id == 0) ? MTK_ETH_PATH_GMAC1_SGMII :
  80. MTK_ETH_PATH_GMAC2_SGMII;
  81. @@ -260,7 +260,7 @@ int mtk_gmac_sgmii_path_setup(struct mtk
  82. int mtk_gmac_gephy_path_setup(struct mtk_eth *eth, int mac_id)
  83. {
  84. - int path = 0;
  85. + u64 path = 0;
  86. if (mac_id == 1)
  87. path = MTK_ETH_PATH_GMAC2_GEPHY;
  88. @@ -274,7 +274,7 @@ int mtk_gmac_gephy_path_setup(struct mtk
  89. int mtk_gmac_rgmii_path_setup(struct mtk_eth *eth, int mac_id)
  90. {
  91. - int path;
  92. + u64 path;
  93. path = (mac_id == 0) ? MTK_ETH_PATH_GMAC1_RGMII :
  94. MTK_ETH_PATH_GMAC2_RGMII;
  95. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
  96. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
  97. @@ -878,44 +878,44 @@ enum mkt_eth_capabilities {
  98. };
  99. /* Supported hardware group on SoCs */
  100. -#define MTK_RGMII BIT(MTK_RGMII_BIT)
  101. -#define MTK_TRGMII BIT(MTK_TRGMII_BIT)
  102. -#define MTK_SGMII BIT(MTK_SGMII_BIT)
  103. -#define MTK_ESW BIT(MTK_ESW_BIT)
  104. -#define MTK_GEPHY BIT(MTK_GEPHY_BIT)
  105. -#define MTK_MUX BIT(MTK_MUX_BIT)
  106. -#define MTK_INFRA BIT(MTK_INFRA_BIT)
  107. -#define MTK_SHARED_SGMII BIT(MTK_SHARED_SGMII_BIT)
  108. -#define MTK_HWLRO BIT(MTK_HWLRO_BIT)
  109. -#define MTK_SHARED_INT BIT(MTK_SHARED_INT_BIT)
  110. -#define MTK_TRGMII_MT7621_CLK BIT(MTK_TRGMII_MT7621_CLK_BIT)
  111. -#define MTK_QDMA BIT(MTK_QDMA_BIT)
  112. -#define MTK_NETSYS_V1 BIT(MTK_NETSYS_V1_BIT)
  113. -#define MTK_NETSYS_V2 BIT(MTK_NETSYS_V2_BIT)
  114. -#define MTK_NETSYS_V3 BIT(MTK_NETSYS_V3_BIT)
  115. -#define MTK_SOC_MT7628 BIT(MTK_SOC_MT7628_BIT)
  116. -#define MTK_RSTCTRL_PPE1 BIT(MTK_RSTCTRL_PPE1_BIT)
  117. -#define MTK_U3_COPHY_V2 BIT(MTK_U3_COPHY_V2_BIT)
  118. +#define MTK_RGMII BIT_ULL(MTK_RGMII_BIT)
  119. +#define MTK_TRGMII BIT_ULL(MTK_TRGMII_BIT)
  120. +#define MTK_SGMII BIT_ULL(MTK_SGMII_BIT)
  121. +#define MTK_ESW BIT_ULL(MTK_ESW_BIT)
  122. +#define MTK_GEPHY BIT_ULL(MTK_GEPHY_BIT)
  123. +#define MTK_MUX BIT_ULL(MTK_MUX_BIT)
  124. +#define MTK_INFRA BIT_ULL(MTK_INFRA_BIT)
  125. +#define MTK_SHARED_SGMII BIT_ULL(MTK_SHARED_SGMII_BIT)
  126. +#define MTK_HWLRO BIT_ULL(MTK_HWLRO_BIT)
  127. +#define MTK_SHARED_INT BIT_ULL(MTK_SHARED_INT_BIT)
  128. +#define MTK_TRGMII_MT7621_CLK BIT_ULL(MTK_TRGMII_MT7621_CLK_BIT)
  129. +#define MTK_QDMA BIT_ULL(MTK_QDMA_BIT)
  130. +#define MTK_NETSYS_V1 BIT_ULL(MTK_NETSYS_V1_BIT)
  131. +#define MTK_NETSYS_V2 BIT_ULL(MTK_NETSYS_V2_BIT)
  132. +#define MTK_NETSYS_V3 BIT_ULL(MTK_NETSYS_V3_BIT)
  133. +#define MTK_SOC_MT7628 BIT_ULL(MTK_SOC_MT7628_BIT)
  134. +#define MTK_RSTCTRL_PPE1 BIT_ULL(MTK_RSTCTRL_PPE1_BIT)
  135. +#define MTK_U3_COPHY_V2 BIT_ULL(MTK_U3_COPHY_V2_BIT)
  136. #define MTK_ETH_MUX_GDM1_TO_GMAC1_ESW \
  137. - BIT(MTK_ETH_MUX_GDM1_TO_GMAC1_ESW_BIT)
  138. + BIT_ULL(MTK_ETH_MUX_GDM1_TO_GMAC1_ESW_BIT)
  139. #define MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY \
  140. - BIT(MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY_BIT)
  141. + BIT_ULL(MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY_BIT)
  142. #define MTK_ETH_MUX_U3_GMAC2_TO_QPHY \
  143. - BIT(MTK_ETH_MUX_U3_GMAC2_TO_QPHY_BIT)
  144. + BIT_ULL(MTK_ETH_MUX_U3_GMAC2_TO_QPHY_BIT)
  145. #define MTK_ETH_MUX_GMAC1_GMAC2_TO_SGMII_RGMII \
  146. - BIT(MTK_ETH_MUX_GMAC1_GMAC2_TO_SGMII_RGMII_BIT)
  147. + BIT_ULL(MTK_ETH_MUX_GMAC1_GMAC2_TO_SGMII_RGMII_BIT)
  148. #define MTK_ETH_MUX_GMAC12_TO_GEPHY_SGMII \
  149. - BIT(MTK_ETH_MUX_GMAC12_TO_GEPHY_SGMII_BIT)
  150. + BIT_ULL(MTK_ETH_MUX_GMAC12_TO_GEPHY_SGMII_BIT)
  151. /* Supported path present on SoCs */
  152. -#define MTK_ETH_PATH_GMAC1_RGMII BIT(MTK_ETH_PATH_GMAC1_RGMII_BIT)
  153. -#define MTK_ETH_PATH_GMAC1_TRGMII BIT(MTK_ETH_PATH_GMAC1_TRGMII_BIT)
  154. -#define MTK_ETH_PATH_GMAC1_SGMII BIT(MTK_ETH_PATH_GMAC1_SGMII_BIT)
  155. -#define MTK_ETH_PATH_GMAC2_RGMII BIT(MTK_ETH_PATH_GMAC2_RGMII_BIT)
  156. -#define MTK_ETH_PATH_GMAC2_SGMII BIT(MTK_ETH_PATH_GMAC2_SGMII_BIT)
  157. -#define MTK_ETH_PATH_GMAC2_GEPHY BIT(MTK_ETH_PATH_GMAC2_GEPHY_BIT)
  158. -#define MTK_ETH_PATH_GDM1_ESW BIT(MTK_ETH_PATH_GDM1_ESW_BIT)
  159. +#define MTK_ETH_PATH_GMAC1_RGMII BIT_ULL(MTK_ETH_PATH_GMAC1_RGMII_BIT)
  160. +#define MTK_ETH_PATH_GMAC1_TRGMII BIT_ULL(MTK_ETH_PATH_GMAC1_TRGMII_BIT)
  161. +#define MTK_ETH_PATH_GMAC1_SGMII BIT_ULL(MTK_ETH_PATH_GMAC1_SGMII_BIT)
  162. +#define MTK_ETH_PATH_GMAC2_RGMII BIT_ULL(MTK_ETH_PATH_GMAC2_RGMII_BIT)
  163. +#define MTK_ETH_PATH_GMAC2_SGMII BIT_ULL(MTK_ETH_PATH_GMAC2_SGMII_BIT)
  164. +#define MTK_ETH_PATH_GMAC2_GEPHY BIT_ULL(MTK_ETH_PATH_GMAC2_GEPHY_BIT)
  165. +#define MTK_ETH_PATH_GDM1_ESW BIT_ULL(MTK_ETH_PATH_GDM1_ESW_BIT)
  166. #define MTK_GMAC1_RGMII (MTK_ETH_PATH_GMAC1_RGMII | MTK_RGMII)
  167. #define MTK_GMAC1_TRGMII (MTK_ETH_PATH_GMAC1_TRGMII | MTK_TRGMII)
  168. @@ -1071,7 +1071,7 @@ struct mtk_reg_map {
  169. struct mtk_soc_data {
  170. const struct mtk_reg_map *reg_map;
  171. u32 ana_rgc3;
  172. - u32 caps;
  173. + u64 caps;
  174. u32 required_clks;
  175. bool required_pctl;
  176. u8 offload_version;