0026-mb-dell-Add-Latitude-E6330-Ivy-Bridge.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. From 87e6f8bf38c5dcb4075d0df32507bf9151338b92 Mon Sep 17 00:00:00 2001
  2. From: Nicholas Chin <nic.c3.14@gmail.com>
  3. Date: Fri, 8 Mar 2024 09:33:03 -0700
  4. Subject: [PATCH 26/39] mb/dell: Add Latitude E6330 (Ivy Bridge)
  5. Mainboard is QAL70/LA-7741P. I do not physically have this system;
  6. someone with physical access to one sent me the output of autoport which
  7. I then modified to produce this port. I was also sent the VBT binary,
  8. which was obtained from `/sys/kernel/debug/dri/0/i915_vbt` while running
  9. version A21 of the vendor firmware. This port has not been tested.
  10. The EC is the SMSC MEC5055, which seems to be compatible with the
  11. existing MEC5035 code. As with the other Dell systems with this EC, this
  12. board is assumed to be internally flashable using an EC command that
  13. tells it to pull the FDO pin low on the next boot, which also tells the
  14. vendor firmware to disable all write protections to the flash [1].
  15. [1] https://gitlab.com/nic3-14159/dell-flash-unlock
  16. Change-Id: I827826e9ff8a9a534c50250458b399104478e06c
  17. Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
  18. ---
  19. src/mainboard/dell/snb_ivb_latitude/Kconfig | 11 +-
  20. .../dell/snb_ivb_latitude/Kconfig.name | 3 +
  21. .../snb_ivb_latitude/variants/e6330/data.vbt | Bin 0 -> 6144 bytes
  22. .../variants/e6330/early_init.c | 14 ++
  23. .../snb_ivb_latitude/variants/e6330/gpio.c | 192 ++++++++++++++++++
  24. .../variants/e6330/hda_verb.c | 32 +++
  25. .../variants/e6330/overridetree.cb | 37 ++++
  26. 7 files changed, 288 insertions(+), 1 deletion(-)
  27. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6330/data.vbt
  28. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6330/early_init.c
  29. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6330/gpio.c
  30. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6330/hda_verb.c
  31. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6330/overridetree.cb
  32. diff --git a/src/mainboard/dell/snb_ivb_latitude/Kconfig b/src/mainboard/dell/snb_ivb_latitude/Kconfig
  33. index baa83baa41..49bf225fe2 100644
  34. --- a/src/mainboard/dell/snb_ivb_latitude/Kconfig
  35. +++ b/src/mainboard/dell/snb_ivb_latitude/Kconfig
  36. @@ -56,6 +56,12 @@ config BOARD_DELL_LATITUDE_E5530
  37. select BOARD_ROMSIZE_KB_12288
  38. select SOUTHBRIDGE_INTEL_C216
  39. +config BOARD_DELL_LATITUDE_E6330
  40. + select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
  41. + select BOARD_ROMSIZE_KB_12288
  42. + select MAINBOARD_USES_IFD_GBE_REGION
  43. + select SOUTHBRIDGE_INTEL_C216
  44. +
  45. config BOARD_DELL_LATITUDE_E6430
  46. select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
  47. select BOARD_ROMSIZE_KB_12288
  48. @@ -84,6 +90,7 @@ config MAINBOARD_PART_NUMBER
  49. default "Latitude E6420" if BOARD_DELL_LATITUDE_E6420
  50. default "Latitude E6520" if BOARD_DELL_LATITUDE_E6520
  51. default "Latitude E5530" if BOARD_DELL_LATITUDE_E5530
  52. + default "Latitude E6330" if BOARD_DELL_LATITUDE_E6330
  53. default "Latitude E6430" if BOARD_DELL_LATITUDE_E6430
  54. default "Latitude E6530" if BOARD_DELL_LATITUDE_E6530
  55. @@ -101,13 +108,15 @@ config VARIANT_DIR
  56. default "e6420" if BOARD_DELL_LATITUDE_E6420
  57. default "e6520" if BOARD_DELL_LATITUDE_E6520
  58. default "e5530" if BOARD_DELL_LATITUDE_E5530
  59. + default "e6330" if BOARD_DELL_LATITUDE_E6330
  60. default "e6430" if BOARD_DELL_LATITUDE_E6430
  61. default "e6530" if BOARD_DELL_LATITUDE_E6530
  62. config VGA_BIOS_ID
  63. default "8086,0116" if BOARD_DELL_LATITUDE_E6520 \
  64. || BOARD_DELL_LATITUDE_E5420
  65. - default "8086,0166" if BOARD_DELL_LATITUDE_E5530
  66. + default "8086,0166" if BOARD_DELL_LATITUDE_E5530 \
  67. + || BOARD_DELL_LATITUDE_E6330
  68. default "8086,0126" if BOARD_DELL_LATITUDE_E6420 \
  69. || BOARD_DELL_LATITUDE_E5520 \
  70. || BOARD_DELL_LATITUDE_E6220 \
  71. diff --git a/src/mainboard/dell/snb_ivb_latitude/Kconfig.name b/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  72. index 349ee7f79e..d6fc8eb224 100644
  73. --- a/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  74. +++ b/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  75. @@ -21,6 +21,9 @@ config BOARD_DELL_LATITUDE_E6520
  76. config BOARD_DELL_LATITUDE_E5530
  77. bool "Latitude E5530"
  78. +config BOARD_DELL_LATITUDE_E6330
  79. + bool "Latitude E6330"
  80. +
  81. config BOARD_DELL_LATITUDE_E6430
  82. bool "Latitude E6430"
  83. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6330/data.vbt b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/data.vbt
  84. new file mode 100644
  85. index 0000000000000000000000000000000000000000..18856746656058651c571ecbb3708e0543b19d62
  86. GIT binary patch
  87. literal 6144
  88. zcmeHKU2GiH75-*tc6WAmW_LYygMSkDB*E^Q*zv5f7dLg)@$NQV2a{}!yImnfyvQ4D
  89. z;n-$v0!RpNi<_o@ktI-@2a590stC0zRi%iRR%stvi&hAs3R<K}X~hFddB_6@s8W`5
  90. zXJ!q~E{TOme<a`8@BW;7?l<?GIp@yo&H2<M-FZ0GKbBAR-Ekx}HvVOrhK1*2?{QsU
  91. zQe#K%JeC=q96gpAKa#$keu^D99ee*0FfB=@F_0J<9-Ch-&BZ5r1T6`{$;1%Fm+qfk
  92. zTr5pfAz@KB*NGlFzEGx2aqh%IxkQOuX*`{wy~+KQo+-}XSE7aaxko77OBtFgoh;4K
  93. z(#-7f<x+WxmKSK)vQFgtt^L+?s+Z<V57E7|^TqOPX{mn0n<VLl#Yf7s_suL*Jl#VB
  94. zmSyz~ScwEVTc-3vd2v6D&dt$;&{?91(o(5>vNXNl&<qW@AghW5NPYw#ha~-b0Dc7_
  95. z6}t(eHgpwn6<HNi1Vcp^p-07-iXve~MTs!0A_ku!`4nKciajxJYXsOYuuT4N%smA!
  96. zPazgl&bNRSrvAz|_6r3+B;r1=!7D;RUUw8Ke+vNt7E3`(BA-woPvJFBK^3Gzfh4Nk
  97. zOX!J0PJNB)Mk&Z_i?S2ez+iItz=)m79LydX&rM9`3wPaJ`T92=Uv0;g-!<4*M6z%+
  98. z*omwb#VI+CU&%iFS{_DGS;sE}7G4juqRMCww!+k6=+abJj4v>Dsr*z_6HAP5GJeST
  99. znX2JD;{xLa#;c6KGychVn-L6YXkv6Qx)}Y8&ok1DI~ZSM6dCt39%QUAzRh@o@gqjy
  100. zL0qZ&DhN8ZR3xu$a$Cd{oasU3DNp{CCl6f~PYlq!Hte;Ia0^wn8Vut7>Wl1)s`^E-
  101. z1DhGx<x<9D%6jd%)5>zr8&7h}dMJ3~YBe;)!vVf-T&?{PoMvvRR{!67;Xhz^g^loX
  102. zja+*c-KJJoxbsm3pTE4THs`cgD{Pt+ga3en-i$P#9Wsra(oqRMr;H$4{gxr)9eF(x
  103. zg0v@a7aj}rA^Kf#sNb*>at^>P)5li%ycOq*4e;3~RUj$i1e8=rHi&<Y^Hc>Y_gP4=
  104. zxz9^%q0dLXqC&Bq<&sDScZwvatjRxB=rcJJiYb?w#4Iy2KTk1F6T>T}E@(DNGa>5R
  105. z7&Yv)JdHrRI};pfsKLVj=FE=U*=*T4#ncVktknoGelT||SDY`+9WI_IZE<i@7SnC8
  106. zN6~Gyo=&><wpzE~>`_>@wb<-RI-lu(_~Oy_Zo6={Cdq!uw(fmyz_u^cB&~5IS7g`U
  107. zdUC}N$J5-C)|`CfUO+?xptr@*hJW$ZhBZk%JaMh_<8!ZGj)z*WU9fcg2`>dT##_?q
  108. z=Ksx}uxo3jTHTq%E1}97UECE@r}nt3I=3R(HOL7jNg>teSM-g$aU#`3jk}#qh;D?6
  109. zw=CYuA2#mS+vU%0P&u8RCn4)$8VH-2uy#01%VG0WSX&Fz`LMYj)?N<NyJ1t)wHBQY
  110. z=;pYt<#l>gH_zzWS)G2Pn=k3wYdU|DnWmxbG$>`5lZJMWL92%O14BD!(C-cNFNXFH
  111. zgVc!G9?@=&(4mNVcSJiLq3=b^rz6@k5qdFVUW{m$A{2|7d!kxz)VSrcQt@4sDoq^f
  112. z98hXm=YS~qbf<kwigD|YevaR}^`7Jy^x~4_g75ka=c0r}VJF2aEv{=ilPf-mNQBNI
  113. zEMK3YKB+`*xOu>iR|LbzHLa*mLXlH${^b4c9%>9%)HO-?LA1gT0mlz!M}8&;(;^x|
  114. z*H2<VyY>2;juB|7F+k?y(_2~3@STqQ@f^sqD2c8g3x>ciM%siMq~;pKwfE57kw2K@
  115. z!-ZN0QTVOP@aA5@fEGKjy2+D`t?2KzpPyRQ`JcmHJoc(<#h<UT;@W$t_d{|;S>vyF
  116. zewtgef*II~y;k>*B!+(8*blXsY-~kcJa9zG2yfcMCt+|-0ex$pY`h1<*#rEv=~*<+
  117. ztV``Um!q33-Aap9fUshX^N~GS2@X3^U9+MwgYQ74^?~6&yU^#oY#cvC9R_}P2d<wN
  118. zJvOE)Xr7A2n#3x14}2_g(YN^0+oYDbb#|V{ze3pzGb9FiF#6Ra&L}bT(ZOvswS7RY
  119. zxLjWFRwWXHR5&={t;%K+Vkd6NX2iF<SF)LXv@y472OmG!_W%Ni*ZDuev-S0%b!dfW
  120. wz4{IL!+uT9t2XI4@_L@?Ri*bc_<n8A+wHaowmq=zfo%_LdtloGpN<DU00~N<ApigX
  121. literal 0
  122. HcmV?d00001
  123. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6330/early_init.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/early_init.c
  124. new file mode 100644
  125. index 0000000000..ff83db095b
  126. --- /dev/null
  127. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/early_init.c
  128. @@ -0,0 +1,14 @@
  129. +/* SPDX-License-Identifier: GPL-2.0-only */
  130. +
  131. +#include <bootblock_common.h>
  132. +#include <device/pci_ops.h>
  133. +#include <ec/dell/mec5035/mec5035.h>
  134. +#include <southbridge/intel/bd82x6x/pch.h>
  135. +
  136. +void bootblock_mainboard_early_init(void)
  137. +{
  138. + pci_write_config16(PCH_LPC_DEV, LPC_EN, CNF1_LPC_EN | MC_LPC_EN
  139. + | KBC_LPC_EN | FDD_LPC_EN | LPT_LPC_EN
  140. + | COMB_LPC_EN | COMA_LPC_EN);
  141. + mec5035_early_init();
  142. +}
  143. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6330/gpio.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/gpio.c
  144. new file mode 100644
  145. index 0000000000..777570765a
  146. --- /dev/null
  147. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/gpio.c
  148. @@ -0,0 +1,192 @@
  149. +/* SPDX-License-Identifier: GPL-2.0-only */
  150. +
  151. +#include <southbridge/intel/common/gpio.h>
  152. +
  153. +static const struct pch_gpio_set1 pch_gpio_set1_mode = {
  154. + .gpio0 = GPIO_MODE_GPIO,
  155. + .gpio1 = GPIO_MODE_GPIO,
  156. + .gpio2 = GPIO_MODE_GPIO,
  157. + .gpio3 = GPIO_MODE_GPIO,
  158. + .gpio4 = GPIO_MODE_GPIO,
  159. + .gpio5 = GPIO_MODE_NATIVE,
  160. + .gpio6 = GPIO_MODE_GPIO,
  161. + .gpio7 = GPIO_MODE_GPIO,
  162. + .gpio8 = GPIO_MODE_GPIO,
  163. + .gpio9 = GPIO_MODE_NATIVE,
  164. + .gpio10 = GPIO_MODE_NATIVE,
  165. + .gpio11 = GPIO_MODE_NATIVE,
  166. + .gpio12 = GPIO_MODE_NATIVE,
  167. + .gpio13 = GPIO_MODE_GPIO,
  168. + .gpio14 = GPIO_MODE_GPIO,
  169. + .gpio15 = GPIO_MODE_GPIO,
  170. + .gpio16 = GPIO_MODE_GPIO,
  171. + .gpio17 = GPIO_MODE_GPIO,
  172. + .gpio18 = GPIO_MODE_NATIVE,
  173. + .gpio19 = GPIO_MODE_GPIO,
  174. + .gpio20 = GPIO_MODE_NATIVE,
  175. + .gpio21 = GPIO_MODE_GPIO,
  176. + .gpio22 = GPIO_MODE_GPIO,
  177. + .gpio23 = GPIO_MODE_NATIVE,
  178. + .gpio24 = GPIO_MODE_GPIO,
  179. + .gpio25 = GPIO_MODE_NATIVE,
  180. + .gpio26 = GPIO_MODE_NATIVE,
  181. + .gpio27 = GPIO_MODE_GPIO,
  182. + .gpio28 = GPIO_MODE_GPIO,
  183. + .gpio29 = GPIO_MODE_GPIO,
  184. + .gpio30 = GPIO_MODE_NATIVE,
  185. + .gpio31 = GPIO_MODE_NATIVE,
  186. +};
  187. +
  188. +static const struct pch_gpio_set1 pch_gpio_set1_direction = {
  189. + .gpio0 = GPIO_DIR_INPUT,
  190. + .gpio1 = GPIO_DIR_INPUT,
  191. + .gpio2 = GPIO_DIR_INPUT,
  192. + .gpio3 = GPIO_DIR_INPUT,
  193. + .gpio4 = GPIO_DIR_INPUT,
  194. + .gpio6 = GPIO_DIR_INPUT,
  195. + .gpio7 = GPIO_DIR_INPUT,
  196. + .gpio8 = GPIO_DIR_INPUT,
  197. + .gpio13 = GPIO_DIR_INPUT,
  198. + .gpio14 = GPIO_DIR_INPUT,
  199. + .gpio15 = GPIO_DIR_INPUT,
  200. + .gpio16 = GPIO_DIR_INPUT,
  201. + .gpio17 = GPIO_DIR_INPUT,
  202. + .gpio19 = GPIO_DIR_INPUT,
  203. + .gpio21 = GPIO_DIR_INPUT,
  204. + .gpio22 = GPIO_DIR_INPUT,
  205. + .gpio24 = GPIO_DIR_INPUT,
  206. + .gpio27 = GPIO_DIR_INPUT,
  207. + .gpio28 = GPIO_DIR_OUTPUT,
  208. + .gpio29 = GPIO_DIR_INPUT,
  209. +};
  210. +
  211. +static const struct pch_gpio_set1 pch_gpio_set1_level = {
  212. + .gpio28 = GPIO_LEVEL_LOW,
  213. +};
  214. +
  215. +static const struct pch_gpio_set1 pch_gpio_set1_reset = {
  216. + .gpio30 = GPIO_RESET_RSMRST,
  217. +};
  218. +
  219. +static const struct pch_gpio_set1 pch_gpio_set1_invert = {
  220. + .gpio0 = GPIO_INVERT,
  221. + .gpio8 = GPIO_INVERT,
  222. + .gpio13 = GPIO_INVERT,
  223. + .gpio14 = GPIO_INVERT,
  224. +};
  225. +
  226. +static const struct pch_gpio_set1 pch_gpio_set1_blink = {
  227. +};
  228. +
  229. +static const struct pch_gpio_set2 pch_gpio_set2_mode = {
  230. + .gpio32 = GPIO_MODE_NATIVE,
  231. + .gpio33 = GPIO_MODE_GPIO,
  232. + .gpio34 = GPIO_MODE_GPIO,
  233. + .gpio35 = GPIO_MODE_GPIO,
  234. + .gpio36 = GPIO_MODE_GPIO,
  235. + .gpio37 = GPIO_MODE_GPIO,
  236. + .gpio38 = GPIO_MODE_GPIO,
  237. + .gpio39 = GPIO_MODE_GPIO,
  238. + .gpio40 = GPIO_MODE_NATIVE,
  239. + .gpio41 = GPIO_MODE_NATIVE,
  240. + .gpio42 = GPIO_MODE_NATIVE,
  241. + .gpio43 = GPIO_MODE_NATIVE,
  242. + .gpio44 = GPIO_MODE_NATIVE,
  243. + .gpio45 = GPIO_MODE_GPIO,
  244. + .gpio46 = GPIO_MODE_NATIVE,
  245. + .gpio47 = GPIO_MODE_NATIVE,
  246. + .gpio48 = GPIO_MODE_GPIO,
  247. + .gpio49 = GPIO_MODE_GPIO,
  248. + .gpio50 = GPIO_MODE_NATIVE,
  249. + .gpio51 = GPIO_MODE_GPIO,
  250. + .gpio52 = GPIO_MODE_GPIO,
  251. + .gpio53 = GPIO_MODE_NATIVE,
  252. + .gpio54 = GPIO_MODE_GPIO,
  253. + .gpio55 = GPIO_MODE_NATIVE,
  254. + .gpio56 = GPIO_MODE_NATIVE,
  255. + .gpio57 = GPIO_MODE_GPIO,
  256. + .gpio58 = GPIO_MODE_NATIVE,
  257. + .gpio59 = GPIO_MODE_NATIVE,
  258. + .gpio60 = GPIO_MODE_GPIO,
  259. + .gpio61 = GPIO_MODE_NATIVE,
  260. + .gpio62 = GPIO_MODE_NATIVE,
  261. + .gpio63 = GPIO_MODE_NATIVE,
  262. +};
  263. +
  264. +static const struct pch_gpio_set2 pch_gpio_set2_direction = {
  265. + .gpio33 = GPIO_DIR_INPUT,
  266. + .gpio34 = GPIO_DIR_OUTPUT,
  267. + .gpio35 = GPIO_DIR_INPUT,
  268. + .gpio36 = GPIO_DIR_INPUT,
  269. + .gpio37 = GPIO_DIR_INPUT,
  270. + .gpio38 = GPIO_DIR_INPUT,
  271. + .gpio39 = GPIO_DIR_INPUT,
  272. + .gpio45 = GPIO_DIR_OUTPUT,
  273. + .gpio48 = GPIO_DIR_INPUT,
  274. + .gpio49 = GPIO_DIR_INPUT,
  275. + .gpio51 = GPIO_DIR_INPUT,
  276. + .gpio52 = GPIO_DIR_INPUT,
  277. + .gpio54 = GPIO_DIR_INPUT,
  278. + .gpio57 = GPIO_DIR_INPUT,
  279. + .gpio60 = GPIO_DIR_OUTPUT,
  280. +};
  281. +
  282. +static const struct pch_gpio_set2 pch_gpio_set2_level = {
  283. + .gpio34 = GPIO_LEVEL_HIGH,
  284. + .gpio45 = GPIO_LEVEL_LOW,
  285. + .gpio60 = GPIO_LEVEL_HIGH,
  286. +};
  287. +
  288. +static const struct pch_gpio_set2 pch_gpio_set2_reset = {
  289. +};
  290. +
  291. +static const struct pch_gpio_set3 pch_gpio_set3_mode = {
  292. + .gpio64 = GPIO_MODE_NATIVE,
  293. + .gpio65 = GPIO_MODE_NATIVE,
  294. + .gpio66 = GPIO_MODE_NATIVE,
  295. + .gpio67 = GPIO_MODE_NATIVE,
  296. + .gpio68 = GPIO_MODE_GPIO,
  297. + .gpio69 = GPIO_MODE_GPIO,
  298. + .gpio70 = GPIO_MODE_GPIO,
  299. + .gpio71 = GPIO_MODE_GPIO,
  300. + .gpio72 = GPIO_MODE_NATIVE,
  301. + .gpio73 = GPIO_MODE_NATIVE,
  302. + .gpio74 = GPIO_MODE_NATIVE,
  303. + .gpio75 = GPIO_MODE_NATIVE,
  304. +};
  305. +
  306. +static const struct pch_gpio_set3 pch_gpio_set3_direction = {
  307. + .gpio68 = GPIO_DIR_INPUT,
  308. + .gpio69 = GPIO_DIR_INPUT,
  309. + .gpio70 = GPIO_DIR_INPUT,
  310. + .gpio71 = GPIO_DIR_INPUT,
  311. +};
  312. +
  313. +static const struct pch_gpio_set3 pch_gpio_set3_level = {
  314. +};
  315. +
  316. +static const struct pch_gpio_set3 pch_gpio_set3_reset = {
  317. +};
  318. +
  319. +const struct pch_gpio_map mainboard_gpio_map = {
  320. + .set1 = {
  321. + .mode = &pch_gpio_set1_mode,
  322. + .direction = &pch_gpio_set1_direction,
  323. + .level = &pch_gpio_set1_level,
  324. + .blink = &pch_gpio_set1_blink,
  325. + .invert = &pch_gpio_set1_invert,
  326. + .reset = &pch_gpio_set1_reset,
  327. + },
  328. + .set2 = {
  329. + .mode = &pch_gpio_set2_mode,
  330. + .direction = &pch_gpio_set2_direction,
  331. + .level = &pch_gpio_set2_level,
  332. + .reset = &pch_gpio_set2_reset,
  333. + },
  334. + .set3 = {
  335. + .mode = &pch_gpio_set3_mode,
  336. + .direction = &pch_gpio_set3_direction,
  337. + .level = &pch_gpio_set3_level,
  338. + .reset = &pch_gpio_set3_reset,
  339. + },
  340. +};
  341. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6330/hda_verb.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/hda_verb.c
  342. new file mode 100644
  343. index 0000000000..804733b172
  344. --- /dev/null
  345. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/hda_verb.c
  346. @@ -0,0 +1,32 @@
  347. +/* SPDX-License-Identifier: GPL-2.0-only */
  348. +
  349. +#include <device/azalia_device.h>
  350. +
  351. +const u32 cim_verb_data[] = {
  352. + 0x111d76df, /* Codec Vendor / Device ID: IDT */
  353. + 0x10280533, /* Subsystem ID */
  354. + 11, /* Number of 4 dword sets */
  355. + AZALIA_SUBVENDOR(0, 0x10280533),
  356. + AZALIA_PIN_CFG(0, 0x0a, 0x03a11020),
  357. + AZALIA_PIN_CFG(0, 0x0b, 0x0321101f),
  358. + AZALIA_PIN_CFG(0, 0x0c, 0x400000f0),
  359. + AZALIA_PIN_CFG(0, 0x0d, 0x90170110),
  360. + AZALIA_PIN_CFG(0, 0x0e, 0x23011050),
  361. + AZALIA_PIN_CFG(0, 0x0f, 0x23a1102e),
  362. + AZALIA_PIN_CFG(0, 0x10, 0x400000f3),
  363. + AZALIA_PIN_CFG(0, 0x11, 0xd5a30130),
  364. + AZALIA_PIN_CFG(0, 0x1f, 0x400000f0),
  365. + AZALIA_PIN_CFG(0, 0x20, 0x400000f0),
  366. +
  367. + 0x80862806, /* Codec Vendor / Device ID: Intel */
  368. + 0x80860101, /* Subsystem ID */
  369. + 4, /* Number of 4 dword sets */
  370. + AZALIA_SUBVENDOR(3, 0x80860101),
  371. + AZALIA_PIN_CFG(3, 0x05, 0x18560010),
  372. + AZALIA_PIN_CFG(3, 0x06, 0x18560020),
  373. + AZALIA_PIN_CFG(3, 0x07, 0x18560030),
  374. +};
  375. +
  376. +const u32 pc_beep_verbs[0] = {};
  377. +
  378. +AZALIA_ARRAY_SIZES;
  379. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6330/overridetree.cb b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/overridetree.cb
  380. new file mode 100644
  381. index 0000000000..4125159367
  382. --- /dev/null
  383. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6330/overridetree.cb
  384. @@ -0,0 +1,37 @@
  385. +## SPDX-License-Identifier: GPL-2.0-or-later
  386. +
  387. +chip northbridge/intel/sandybridge
  388. + device domain 0 on
  389. + subsystemid 0x1028 0x0533 inherit
  390. +
  391. + device ref igd on
  392. + register "gpu_cpu_backlight" = "0x00001312"
  393. + register "gpu_pch_backlight" = "0x13121312"
  394. + end
  395. +
  396. + chip southbridge/intel/bd82x6x
  397. + register "usb_port_config" = "{
  398. + { 1, 2, 0 },
  399. + { 1, 0, 0 },
  400. + { 1, 0, 1 },
  401. + { 1, 1, 1 },
  402. + { 1, 1, 2 },
  403. + { 1, 1, 2 },
  404. + { 1, 2, 3 },
  405. + { 1, 2, 3 },
  406. + { 1, 2, 4 },
  407. + { 1, 1, 4 },
  408. + { 1, 1, 5 },
  409. + { 1, 1, 5 },
  410. + { 1, 2, 6 },
  411. + { 1, 0, 6 },
  412. + }"
  413. +
  414. + device ref xhci on
  415. + register "superspeed_capable_ports" = "0x0000000f"
  416. + register "xhci_overcurrent_mapping" = "0x00000c03"
  417. + register "xhci_switchable_ports" = "0x0000000f"
  418. + end
  419. + end
  420. + end
  421. +end
  422. --
  423. 2.39.2