common.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /*
  2. * (C) Copyright 2008
  3. * Heiko Schocher, DENX Software Engineering, hs@denx.de.
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #ifndef __KEYMILE_COMMON_H
  8. #define __KEYMILE_COMMON_H
  9. #define WRG_RESET 0x80
  10. #define H_OPORTS_14 0x40
  11. #define WRG_LED 0x02
  12. #define WRL_BOOT 0x01
  13. #define OPRTL_XBUFENA 0x20
  14. #define H_OPORTS_SCC4_ENA 0x10
  15. #define H_OPORTS_SCC4_FD_ENA 0x04
  16. #define H_OPORTS_FCC1_PW_DWN 0x01
  17. #define PIGGY_PRESENT 0x80
  18. struct km_bec_fpga {
  19. unsigned char id;
  20. unsigned char rev;
  21. unsigned char oprth;
  22. unsigned char oprtl;
  23. unsigned char res1[3];
  24. unsigned char bprth;
  25. unsigned char bprtl;
  26. unsigned char gprt3;
  27. unsigned char gprt2;
  28. unsigned char gprt1;
  29. unsigned char gprt0;
  30. unsigned char res2[2];
  31. unsigned char prst;
  32. unsigned char res3[0xfff0];
  33. unsigned char pgy_id;
  34. unsigned char pgy_rev;
  35. unsigned char pgy_outputs;
  36. unsigned char pgy_eth;
  37. };
  38. #define BFTICU_DIPSWITCH_MASK 0x0f
  39. /*
  40. * BFTICU FPGA iomap
  41. * BFTICU is used on mgcoge and mgocge3ne
  42. */
  43. struct bfticu_iomap {
  44. u8 xi_ena; /* General defect enable */
  45. u8 pack1[3];
  46. u8 en_csn;
  47. u8 pack2;
  48. u8 safe_mem;
  49. u8 pack3;
  50. u8 id;
  51. u8 pack4;
  52. u8 rev;
  53. u8 build;
  54. u8 p_frc;
  55. u8 p_msk;
  56. u8 pack5[2];
  57. u8 xg_int;
  58. u8 pack6[15];
  59. u8 s_conf;
  60. u8 pack7;
  61. u8 dmx_conf12;
  62. u8 pack8;
  63. u8 s_clkslv;
  64. u8 pack9[11];
  65. u8 d_conf;
  66. u8 d_mask_ca;
  67. u8 d_pll_del;
  68. u8 pack10[16];
  69. u8 t_conf_ca;
  70. u8 t_mask_ca;
  71. u8 pack11[13];
  72. u8 m_def0;
  73. u8 m_def1;
  74. u8 m_def2;
  75. u8 m_def3;
  76. u8 m_def4;
  77. u8 m_def5;
  78. u8 m_def_trap0;
  79. u8 m_def_trap1;
  80. u8 m_def_trap2;
  81. u8 m_def_trap3;
  82. u8 m_def_trap4;
  83. u8 m_def_trap5;
  84. u8 m_mask_def0;
  85. u8 m_mask_def1;
  86. u8 m_mask_def2;
  87. u8 m_mask_def3;
  88. u8 m_mask_def4;
  89. u8 m_mask_def5;
  90. u8 m_def_mask0;
  91. u8 m_def_mask1;
  92. u8 m_def_mask2;
  93. u8 m_def_mask3;
  94. u8 m_def_mask4;
  95. u8 m_def_mask5;
  96. u8 m_def_pri;
  97. u8 pack12[11];
  98. u8 hw_status;
  99. u8 pack13;
  100. u8 hw_control1;
  101. u8 hw_control2;
  102. u8 hw_control3;
  103. u8 pack14[7];
  104. u8 led_on; /* Leds */
  105. u8 pack15;
  106. u8 sfp_control; /* SFP modules */
  107. u8 pack16;
  108. u8 alarm_control; /* Alarm output */
  109. u8 pack17;
  110. u8 icps; /* ICN clock pulse shaping */
  111. u8 mswitch; /* Read mode switch */
  112. u8 pack18[6];
  113. u8 pb_dbug;
  114. };
  115. #if !defined(CONFIG_PIGGY_MAC_ADRESS_OFFSET)
  116. #define CONFIG_PIGGY_MAC_ADRESS_OFFSET 0
  117. #endif
  118. int ethernet_present(void);
  119. int ivm_read_eeprom(unsigned char *buf, int len);
  120. int ivm_analyze_eeprom(unsigned char *buf, int len);
  121. int trigger_fpga_config(void);
  122. int wait_for_fpga_config(void);
  123. int fpga_reset(void);
  124. int toggle_eeprom_spi_bus(void);
  125. int get_testpin(void);
  126. int set_km_env(void);
  127. int fdt_set_node_and_value(void *blob,
  128. char *nodename,
  129. char *regname,
  130. void *var,
  131. int size);
  132. int fdt_get_node_and_value(void *blob,
  133. char *nodename,
  134. char *propname,
  135. void **var);
  136. #define DELAY_ABORT_SEQ 62 /* @200kHz 9 clocks = 44us, 62us is ok */
  137. #define DELAY_HALF_PERIOD (500 / (CONFIG_SYS_I2C_SPEED / 1000))
  138. int i2c_soft_read_pin(void);
  139. int i2c_make_abort(void);
  140. #endif /* __KEYMILE_COMMON_H */