cpu_sh7757.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. /*
  2. * Copyright (C) 2011 Renesas Solutions Corp.
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef _ASM_CPU_SH7757_H_
  7. #define _ASM_CPU_SH7757_H_
  8. #define CCR 0xFF00001C
  9. #define WTCNT 0xFFCC0000
  10. #define CCR_CACHE_INIT 0x0000090b
  11. #define CACHE_OC_NUM_WAYS 1
  12. #ifndef __ASSEMBLY__ /* put C only stuff in this section */
  13. /* MMU */
  14. struct mmu_regs {
  15. unsigned int reserved[4];
  16. unsigned int mmucr;
  17. };
  18. #define MMU_BASE ((struct mmu_regs *)0xff000000)
  19. /* Watchdog */
  20. #define WTCSR0 0xffcc0002
  21. #define WRSTCSR_R 0xffcc0003
  22. #define WRSTCSR_W 0xffcc0002
  23. #define WTCSR_PREFIX 0xa500
  24. #define WRSTCSR_PREFIX 0x6900
  25. #define WRSTCSR_WOVF_PREFIX 0x9600
  26. /* SCIF */
  27. #define SCIF0_BASE 0xfe4b0000 /* The real name is SCIF2 */
  28. #define SCIF1_BASE 0xfe4c0000 /* The real name is SCIF3 */
  29. #define SCIF2_BASE 0xfe4d0000 /* The real name is SCIF4 */
  30. /* SerMux */
  31. #define SMR0 0xfe470000
  32. /* TMU0 */
  33. #define TMU_BASE 0xFE430000
  34. /* ETHER, GETHER MAC address */
  35. struct ether_mac_regs {
  36. unsigned int reserved[114];
  37. unsigned int mahr;
  38. unsigned int reserved2;
  39. unsigned int malr;
  40. };
  41. #define GETHER0_MAC_BASE ((struct ether_mac_regs *)0xfee0400)
  42. #define GETHER1_MAC_BASE ((struct ether_mac_regs *)0xfee0c00)
  43. #define ETHER0_MAC_BASE ((struct ether_mac_regs *)0xfef0000)
  44. #define ETHER1_MAC_BASE ((struct ether_mac_regs *)0xfef0800)
  45. /* GETHER */
  46. struct gether_control_regs {
  47. unsigned int gbecont;
  48. };
  49. #define GETHER_CONTROL_BASE ((struct gether_control_regs *)0xffc10100)
  50. #define GBECONT_RMII1 0x00020000
  51. #define GBECONT_RMII0 0x00010000
  52. /* USB0/1 */
  53. struct usb_common_regs {
  54. unsigned short reserved[129];
  55. unsigned short suspmode;
  56. };
  57. #define USB0_COMMON_BASE ((struct usb_common_regs *)0xfe450000)
  58. #define USB1_COMMON_BASE ((struct usb_common_regs *)0xfe4f0000)
  59. struct usb0_phy_regs {
  60. unsigned short reset;
  61. unsigned short reserved[4];
  62. unsigned short portsel;
  63. };
  64. #define USB0_PHY_BASE ((struct usb0_phy_regs *)0xfe5f0000)
  65. struct usb1_port_regs {
  66. unsigned int port1sel;
  67. unsigned int reserved;
  68. unsigned int usb1intsts;
  69. };
  70. #define USB1_PORT_BASE ((struct usb1_port_regs *)0xfe4f2000)
  71. struct usb1_alignment_regs {
  72. unsigned int ehcidatac; /* 0xfe4fe018 */
  73. unsigned int reserved[63];
  74. unsigned int ohcidatac;
  75. };
  76. #define USB1_ALIGNMENT_BASE ((struct usb1_alignment_regs *)0xfe4fe018)
  77. /* GCTRL, GRA */
  78. struct gctrl_regs {
  79. unsigned int wprotect;
  80. unsigned int gplldiv;
  81. unsigned int gracr2; /* GRA */
  82. unsigned int gracr3; /* GRA */
  83. unsigned int reserved[4];
  84. unsigned int fcntcr1;
  85. unsigned int fcntcr2;
  86. unsigned int reserved2[2];
  87. unsigned int gpll1div;
  88. unsigned int vcompsel;
  89. unsigned int reserved3[62];
  90. unsigned int fdlmon;
  91. unsigned int reserved4[2];
  92. unsigned int flcrmon;
  93. unsigned int reserved5[944];
  94. unsigned int spibootcan;
  95. };
  96. #define GCTRL_BASE ((struct gctrl_regs *)0xffc10000)
  97. /* PCIe setup */
  98. struct pcie_setup_regs {
  99. unsigned int pbictl0;
  100. unsigned int gradevctl;
  101. unsigned int reserved[2];
  102. unsigned int bmcinf[6];
  103. unsigned int reserved2[118];
  104. unsigned int idset[2];
  105. unsigned int subidset;
  106. unsigned int reserved3[2];
  107. unsigned int linkconfset[4];
  108. unsigned int trsid;
  109. unsigned int reserved4[6];
  110. unsigned int toutset;
  111. unsigned int reserved5[7];
  112. unsigned int lad0;
  113. unsigned int ladmsk0;
  114. unsigned int lad1;
  115. unsigned int ladmsk1;
  116. unsigned int lad2;
  117. unsigned int ladmsk2;
  118. unsigned int lad3;
  119. unsigned int ladmsk3;
  120. unsigned int lad4;
  121. unsigned int ladmsk4;
  122. unsigned int lad5;
  123. unsigned int ladmsk5;
  124. unsigned int reserved6[94];
  125. unsigned int vdmrxvid[2];
  126. unsigned int reserved7;
  127. unsigned int pbiintfr;
  128. unsigned int pbiinten;
  129. unsigned int msimap;
  130. unsigned int barmap;
  131. unsigned int baracsize;
  132. unsigned int advserest;
  133. unsigned int pbictl3;
  134. unsigned int reserved8[8];
  135. unsigned int pbictl1;
  136. unsigned int scratch0;
  137. unsigned int reserved9[6];
  138. unsigned int pbictl2;
  139. unsigned int reserved10;
  140. unsigned int pbirev;
  141. };
  142. #define PCIE_SETUP_BASE ((struct pcie_setup_regs *)0xffca1000)
  143. struct pcie_system_bus_regs {
  144. unsigned int reserved[3];
  145. unsigned int endictl0;
  146. unsigned int endictl1;
  147. };
  148. #define PCIE_SYSTEM_BUS_BASE ((struct pcie_system_bus_regs *)0xffca1600)
  149. /* PCIe-Bridge */
  150. struct pciebrg_regs {
  151. unsigned short ctrl_h8s;
  152. unsigned short reserved[7];
  153. unsigned short cp_addr;
  154. unsigned short reserved2;
  155. unsigned short cp_data;
  156. unsigned short reserved3;
  157. unsigned short cp_ctrl;
  158. };
  159. #define PCIEBRG_BASE ((struct pciebrg_regs *)0xffd60000)
  160. /* CPU version */
  161. #define CCN_PRR 0xff000044
  162. #define prr_mask(_val) ((_val >> 4) & 0xff)
  163. #define PRR_SH7757_B0 0x10
  164. #define PRR_SH7757_C0 0x11
  165. #define is_sh7757_b0(_val) \
  166. ({ \
  167. int __ret = prr_mask(__raw_readl(CCN_PRR)) == PRR_SH7757_B0; \
  168. __ret; \
  169. })
  170. #endif /* ifndef __ASSEMBLY__ */
  171. #endif /* _ASM_CPU_SH7757_H_ */