0024-mb-dell-Add-Latitude-E6320-Sandy-Bridge.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. From 5ebb21be501cf43d41d1690c29d047bd98fbc942 Mon Sep 17 00:00:00 2001
  2. From: Nicholas Chin <nic.c3.14@gmail.com>
  3. Date: Wed, 7 Feb 2024 15:23:46 -0700
  4. Subject: [PATCH 24/39] mb/dell: Add Latitude E6320 (Sandy Bridge)
  5. Mainboard is PAL70/LA-6611P. 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 A22 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: I5905f8c6a8dbad56e03bdeedc2179600d0c4ba46
  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/e6320/data.vbt | Bin 0 -> 6144 bytes
  22. .../variants/e6320/early_init.c | 17 ++
  23. .../snb_ivb_latitude/variants/e6320/gpio.c | 190 ++++++++++++++++++
  24. .../variants/e6320/hda_verb.c | 32 +++
  25. .../variants/e6320/overridetree.cb | 35 ++++
  26. 7 files changed, 287 insertions(+), 1 deletion(-)
  27. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6320/data.vbt
  28. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6320/early_init.c
  29. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6320/gpio.c
  30. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6320/hda_verb.c
  31. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6320/overridetree.cb
  32. diff --git a/src/mainboard/dell/snb_ivb_latitude/Kconfig b/src/mainboard/dell/snb_ivb_latitude/Kconfig
  33. index e6a21ffb99..84ffe1d33a 100644
  34. --- a/src/mainboard/dell/snb_ivb_latitude/Kconfig
  35. +++ b/src/mainboard/dell/snb_ivb_latitude/Kconfig
  36. @@ -27,6 +27,12 @@ config BOARD_DELL_LATITUDE_E5520
  37. select BOARD_ROMSIZE_KB_6144
  38. select SOUTHBRIDGE_INTEL_BD82X6X
  39. +config BOARD_DELL_LATITUDE_E6320
  40. + select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
  41. + select BOARD_ROMSIZE_KB_10240
  42. + select MAINBOARD_USES_IFD_GBE_REGION
  43. + select SOUTHBRIDGE_INTEL_BD82X6X
  44. +
  45. config BOARD_DELL_LATITUDE_E6420
  46. select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
  47. select BOARD_ROMSIZE_KB_10240
  48. @@ -67,6 +73,7 @@ config MAINBOARD_DIR
  49. config MAINBOARD_PART_NUMBER
  50. default "Latitude E5420" if BOARD_DELL_LATITUDE_E5420
  51. default "Latitude E5520" if BOARD_DELL_LATITUDE_E5520
  52. + default "Latitude E6320" if BOARD_DELL_LATITUDE_E6320
  53. default "Latitude E6420" if BOARD_DELL_LATITUDE_E6420
  54. default "Latitude E6520" if BOARD_DELL_LATITUDE_E6520
  55. default "Latitude E5530" if BOARD_DELL_LATITUDE_E5530
  56. @@ -82,6 +89,7 @@ config USBDEBUG_HCD_INDEX
  57. config VARIANT_DIR
  58. default "e5420" if BOARD_DELL_LATITUDE_E5420
  59. default "e5520" if BOARD_DELL_LATITUDE_E5520
  60. + default "e6320" if BOARD_DELL_LATITUDE_E6320
  61. default "e6420" if BOARD_DELL_LATITUDE_E6420
  62. default "e6520" if BOARD_DELL_LATITUDE_E6520
  63. default "e5530" if BOARD_DELL_LATITUDE_E5530
  64. @@ -93,7 +101,8 @@ config VGA_BIOS_ID
  65. || BOARD_DELL_LATITUDE_E5420
  66. default "8086,0166" if BOARD_DELL_LATITUDE_E5530
  67. default "8086,0126" if BOARD_DELL_LATITUDE_E6420 \
  68. - || BOARD_DELL_LATITUDE_E5520
  69. + || BOARD_DELL_LATITUDE_E5520 \
  70. + || BOARD_DELL_LATITUDE_E6320
  71. default "8086,0166" if BOARD_DELL_LATITUDE_E6430 \
  72. || BOARD_DELL_LATITUDE_E6530
  73. diff --git a/src/mainboard/dell/snb_ivb_latitude/Kconfig.name b/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  74. index a3fa2b1837..ef6a1329a9 100644
  75. --- a/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  76. +++ b/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  77. @@ -6,6 +6,9 @@ config BOARD_DELL_LATITUDE_E5420
  78. config BOARD_DELL_LATITUDE_E5520
  79. bool "Latitude E5520"
  80. +config BOARD_DELL_LATITUDE_E6320
  81. + bool "Latitude E6320"
  82. +
  83. config BOARD_DELL_LATITUDE_E6420
  84. bool "Latitude E6420"
  85. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6320/data.vbt b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/data.vbt
  86. new file mode 100644
  87. index 0000000000000000000000000000000000000000..471a9e29da639dd496f3ecebd5d0754a9045c00b
  88. GIT binary patch
  89. literal 6144
  90. zcmeHKeP|p-6#wn*-rZ(yH@R-odPzTgZEU>S#_pv}j2iKhT+^%8_DtJw21|4GP8*0x
  91. zyw;EYW49Xozz<Rt@ek1mic(N32r8oZ0U9lcR8a)~s33wLV8yCftLK~DJJWb)8w-j;
  92. z=J?H<nfK<+n>TOX?48xuwV5_`Zb)3w)w?dSc1`nTL|NF_SMw&<<)v%g#!cH2otrzi
  93. zb*<mneJMSLdC1iK_7#v-6w7R}+t1&W8P4wBo*&F!lcNn?)F-EqWZV#oQEb%`x-4^5
  94. zW@sogOik1`n9Wc#r82|0A!=-0LD!FFGrMwG+CDg($q(js(#Y`8?s79ubEJD@ba#I6
  95. znjO0++P#czvh8NBR?)iQUA%txNPhHO>Kq!PUMaJadUHE-`5SWCb4_6i;5Aj(6hQGK
  96. zcq^2uUt5sS5YSMiL+CJcs0#cVOdTN|K@D>?tkF=dqenwjM^Z-^K2z~&z+xRs!o^Jx
  97. zkUGd?>QtXw8V(I09OiMb0DZy>`=tO^#BCssw{}bkOnj=#Ic!~!6!J*{`jbEv5O4)-
  98. zg-UBlIa$c9Pg4C;0_-wq3t+dbZfn1wBi@zhNnWx()w{Vb-G8OC_m*478gTrX3U*a1
  99. zHr@y<Lcbct?Wzy^)OH+FC$S`8V@n`{QN~@2dxJU-1ucBe_>rOO78dFPXES1q3mHj9
  100. zFXKwa)r^}Mw=nKzJjj?}>}NdBc$G29IK=pr@de`u;}}D$5~yYbw&Hlf=OF0X?I=Y$
  101. z$D`mgy>}U$hl}G6m&PmXveHnY5DenC!g~=E3i?HIrEpyk>_(-IsVtEqUEoqxrDFdq
  102. zrYwhOv0o^NgW$OKN}=$7Z-w5*Vuv?T3~uuFGwP92?Qr8n0iQp=u*7rep9Q8dW#?ZI
  103. zFly1ww^^l*+YC6t16l_{g}tVVpVZ0fDk%5+`|+*688vr-<Lw_SRc^+avHI{BCpdYb
  104. z70yLEI0-45%t;z||GKzov+|VFW6hab&NAG9FD+h6sBu$cX`r0eJ%T`kvK4+(wT`0=
  105. z$fxKG+om?Ge1-EhbNc*Xjy1opKZSaiv-EL~GvOa&&bx~z##3W;F2{b=<HQ4!<1CFk
  106. z17i)$X+`=C=0udOPOx3$IjzopqwQzLr*jT4C)(jmj2>uYP8$M=#caX6OWA1Ez395U
  107. z%x<yAs)6-Ascr5<x*>CIZibyRlE~I0-ianVaz~q|EMlL7hc1U5w?}Kekws6fyy@`e
  108. z4NdX%L#2`A#c_N4ftGmuwbDo=incwf=WnBJk6)fYz%6Cmy>HwK$Y|iP`Y7sgjDPhQ
  109. zR|wv367k}1g)-G@kXq(X;{Bjt998b9{cpD9zGhOQ5%$4OSMtc2(<dx@0O}7_G+$WF
  110. zLYyaPtFT6d*e&Q$VLd0r%Yr@=*7rjEDyT7JwT8sSA<BiU8$)7mh@K2tFNMULA^I|8
  111. z{Sp#>gO(fCMTS^w(6xrO#}IcK^sHgMZis^heP>uIf6|z=%Cy#)Vxvjdo7U~7*k{rU
  112. zruB{~J}~KL(+X9Kxz*-5M>NNGSaIfXi19({d4mrk?K50@R0%Wn*PP9d(MMIzI2~RX
  113. z)(4h&8(YL@UyKJ*)4o${n5ZGd(hDf+)cv8sSBxWen|f*u<-sgt(u+U-bkd}Tj+5@9
  114. zJosfSdvPo8zGnluemJg=E7A{=N<Rc#KYYEg?^p`+_?~aU(kEmFus{DshA~iA(onLY
  115. zvIfpBJt;KWP4n8&`n1##c($WnDo|=?rlHBz&}36&HPWwp8op_i8c-**(TSd{Y{SZ?
  116. z_=^K$27e+q;^vRNU3~a=cd;V{%O=iuo*&xwXyg19${Ap0yO@a|N-<e^7iIClF{vUn
  117. z&4$y_V7MA)=E=%7n63u!J9FY$RK8hXHDE%%Lx$ZgX902-<9r|4lkx>QwFch>PUO1w
  118. z=6JffnB-kQ)VLb>sSZdDrI@U2!?HLA9Mlek!*k>;&jx<)xfnBiY^I6DRt*l*`n8ly
  119. zu!h)b?sRV1==Nf*Cw9&&i7n^9Nts>wk>adaY&E5OdW*A?iI}v+E6GGlsR<+#%jpl^
  120. zGz<Q^vpj>qhDjj3zr60Bgh=l{NzJp$x#fCR%*8!ZR?fC&JuvHmSr5#5VAcb(9+>sO
  121. IzvhA80TAzedH?_b
  122. literal 0
  123. HcmV?d00001
  124. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6320/early_init.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/early_init.c
  125. new file mode 100644
  126. index 0000000000..b0c4638858
  127. --- /dev/null
  128. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/early_init.c
  129. @@ -0,0 +1,17 @@
  130. +/* SPDX-License-Identifier: GPL-2.0-only */
  131. +
  132. +#include <bootblock_common.h>
  133. +#include <device/pci_ops.h>
  134. +#include <ec/dell/mec5035/mec5035.h>
  135. +#include <southbridge/intel/bd82x6x/pch.h>
  136. +
  137. +const struct southbridge_usb_port mainboard_usb_ports[] = {
  138. +};
  139. +
  140. +void bootblock_mainboard_early_init(void)
  141. +{
  142. + pci_write_config16(PCH_LPC_DEV, LPC_EN, CNF1_LPC_EN | MC_LPC_EN
  143. + | KBC_LPC_EN | FDD_LPC_EN | LPT_LPC_EN
  144. + | COMB_LPC_EN | COMA_LPC_EN);
  145. + mec5035_early_init();
  146. +}
  147. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6320/gpio.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/gpio.c
  148. new file mode 100644
  149. index 0000000000..61f01816c4
  150. --- /dev/null
  151. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/gpio.c
  152. @@ -0,0 +1,190 @@
  153. +/* SPDX-License-Identifier: GPL-2.0-only */
  154. +
  155. +#include <southbridge/intel/common/gpio.h>
  156. +
  157. +static const struct pch_gpio_set1 pch_gpio_set1_mode = {
  158. + .gpio0 = GPIO_MODE_GPIO,
  159. + .gpio1 = GPIO_MODE_NATIVE,
  160. + .gpio2 = GPIO_MODE_GPIO,
  161. + .gpio3 = GPIO_MODE_NATIVE,
  162. + .gpio4 = GPIO_MODE_GPIO,
  163. + .gpio5 = GPIO_MODE_NATIVE,
  164. + .gpio6 = GPIO_MODE_GPIO,
  165. + .gpio7 = GPIO_MODE_GPIO,
  166. + .gpio8 = GPIO_MODE_GPIO,
  167. + .gpio9 = GPIO_MODE_NATIVE,
  168. + .gpio10 = GPIO_MODE_NATIVE,
  169. + .gpio11 = GPIO_MODE_NATIVE,
  170. + .gpio12 = GPIO_MODE_NATIVE,
  171. + .gpio13 = GPIO_MODE_GPIO,
  172. + .gpio14 = GPIO_MODE_GPIO,
  173. + .gpio15 = GPIO_MODE_GPIO,
  174. + .gpio16 = GPIO_MODE_GPIO,
  175. + .gpio17 = GPIO_MODE_GPIO,
  176. + .gpio18 = GPIO_MODE_NATIVE,
  177. + .gpio19 = GPIO_MODE_GPIO,
  178. + .gpio20 = GPIO_MODE_NATIVE,
  179. + .gpio21 = GPIO_MODE_GPIO,
  180. + .gpio22 = GPIO_MODE_GPIO,
  181. + .gpio23 = GPIO_MODE_NATIVE,
  182. + .gpio24 = GPIO_MODE_GPIO,
  183. + .gpio25 = GPIO_MODE_NATIVE,
  184. + .gpio26 = GPIO_MODE_NATIVE,
  185. + .gpio27 = GPIO_MODE_GPIO,
  186. + .gpio28 = GPIO_MODE_GPIO,
  187. + .gpio29 = GPIO_MODE_GPIO,
  188. + .gpio30 = GPIO_MODE_GPIO,
  189. + .gpio31 = GPIO_MODE_NATIVE,
  190. +};
  191. +
  192. +static const struct pch_gpio_set1 pch_gpio_set1_direction = {
  193. + .gpio0 = GPIO_DIR_INPUT,
  194. + .gpio2 = GPIO_DIR_INPUT,
  195. + .gpio4 = GPIO_DIR_INPUT,
  196. + .gpio6 = GPIO_DIR_INPUT,
  197. + .gpio7 = GPIO_DIR_INPUT,
  198. + .gpio8 = GPIO_DIR_INPUT,
  199. + .gpio13 = GPIO_DIR_INPUT,
  200. + .gpio14 = GPIO_DIR_INPUT,
  201. + .gpio15 = GPIO_DIR_INPUT,
  202. + .gpio16 = GPIO_DIR_INPUT,
  203. + .gpio17 = GPIO_DIR_INPUT,
  204. + .gpio19 = GPIO_DIR_INPUT,
  205. + .gpio21 = GPIO_DIR_INPUT,
  206. + .gpio22 = GPIO_DIR_INPUT,
  207. + .gpio24 = GPIO_DIR_INPUT,
  208. + .gpio27 = GPIO_DIR_INPUT,
  209. + .gpio28 = GPIO_DIR_INPUT,
  210. + .gpio29 = GPIO_DIR_INPUT,
  211. + .gpio30 = GPIO_DIR_OUTPUT,
  212. +};
  213. +
  214. +static const struct pch_gpio_set1 pch_gpio_set1_level = {
  215. + .gpio30 = GPIO_LEVEL_HIGH,
  216. +};
  217. +
  218. +static const struct pch_gpio_set1 pch_gpio_set1_reset = {
  219. +};
  220. +
  221. +static const struct pch_gpio_set1 pch_gpio_set1_invert = {
  222. + .gpio0 = GPIO_INVERT,
  223. + .gpio8 = GPIO_INVERT,
  224. + .gpio14 = GPIO_INVERT,
  225. +};
  226. +
  227. +static const struct pch_gpio_set1 pch_gpio_set1_blink = {
  228. +};
  229. +
  230. +static const struct pch_gpio_set2 pch_gpio_set2_mode = {
  231. + .gpio32 = GPIO_MODE_NATIVE,
  232. + .gpio33 = GPIO_MODE_GPIO,
  233. + .gpio34 = GPIO_MODE_GPIO,
  234. + .gpio35 = GPIO_MODE_GPIO,
  235. + .gpio36 = GPIO_MODE_GPIO,
  236. + .gpio37 = GPIO_MODE_GPIO,
  237. + .gpio38 = GPIO_MODE_GPIO,
  238. + .gpio39 = GPIO_MODE_GPIO,
  239. + .gpio40 = GPIO_MODE_NATIVE,
  240. + .gpio41 = GPIO_MODE_NATIVE,
  241. + .gpio42 = GPIO_MODE_NATIVE,
  242. + .gpio43 = GPIO_MODE_NATIVE,
  243. + .gpio44 = GPIO_MODE_NATIVE,
  244. + .gpio45 = GPIO_MODE_GPIO,
  245. + .gpio46 = GPIO_MODE_NATIVE,
  246. + .gpio47 = GPIO_MODE_NATIVE,
  247. + .gpio48 = GPIO_MODE_GPIO,
  248. + .gpio49 = GPIO_MODE_GPIO,
  249. + .gpio50 = GPIO_MODE_NATIVE,
  250. + .gpio51 = GPIO_MODE_GPIO,
  251. + .gpio52 = GPIO_MODE_GPIO,
  252. + .gpio53 = GPIO_MODE_NATIVE,
  253. + .gpio54 = GPIO_MODE_GPIO,
  254. + .gpio55 = GPIO_MODE_NATIVE,
  255. + .gpio56 = GPIO_MODE_NATIVE,
  256. + .gpio57 = GPIO_MODE_GPIO,
  257. + .gpio58 = GPIO_MODE_NATIVE,
  258. + .gpio59 = GPIO_MODE_NATIVE,
  259. + .gpio60 = GPIO_MODE_GPIO,
  260. + .gpio61 = GPIO_MODE_NATIVE,
  261. + .gpio62 = GPIO_MODE_NATIVE,
  262. + .gpio63 = GPIO_MODE_NATIVE,
  263. +};
  264. +
  265. +static const struct pch_gpio_set2 pch_gpio_set2_direction = {
  266. + .gpio33 = GPIO_DIR_INPUT,
  267. + .gpio34 = GPIO_DIR_OUTPUT,
  268. + .gpio35 = GPIO_DIR_INPUT,
  269. + .gpio36 = GPIO_DIR_INPUT,
  270. + .gpio37 = GPIO_DIR_INPUT,
  271. + .gpio38 = GPIO_DIR_INPUT,
  272. + .gpio39 = GPIO_DIR_INPUT,
  273. + .gpio45 = GPIO_DIR_OUTPUT,
  274. + .gpio48 = GPIO_DIR_INPUT,
  275. + .gpio49 = GPIO_DIR_OUTPUT,
  276. + .gpio51 = GPIO_DIR_INPUT,
  277. + .gpio52 = GPIO_DIR_INPUT,
  278. + .gpio54 = GPIO_DIR_INPUT,
  279. + .gpio57 = GPIO_DIR_INPUT,
  280. + .gpio60 = GPIO_DIR_OUTPUT,
  281. +};
  282. +
  283. +static const struct pch_gpio_set2 pch_gpio_set2_level = {
  284. + .gpio34 = GPIO_LEVEL_HIGH,
  285. + .gpio45 = GPIO_LEVEL_LOW,
  286. + .gpio49 = GPIO_LEVEL_LOW,
  287. + .gpio60 = GPIO_LEVEL_HIGH,
  288. +};
  289. +
  290. +static const struct pch_gpio_set2 pch_gpio_set2_reset = {
  291. +};
  292. +
  293. +static const struct pch_gpio_set3 pch_gpio_set3_mode = {
  294. + .gpio64 = GPIO_MODE_NATIVE,
  295. + .gpio65 = GPIO_MODE_NATIVE,
  296. + .gpio66 = GPIO_MODE_NATIVE,
  297. + .gpio67 = GPIO_MODE_NATIVE,
  298. + .gpio68 = GPIO_MODE_GPIO,
  299. + .gpio69 = GPIO_MODE_GPIO,
  300. + .gpio70 = GPIO_MODE_GPIO,
  301. + .gpio71 = GPIO_MODE_GPIO,
  302. + .gpio72 = GPIO_MODE_NATIVE,
  303. + .gpio73 = GPIO_MODE_NATIVE,
  304. + .gpio74 = GPIO_MODE_NATIVE,
  305. + .gpio75 = GPIO_MODE_NATIVE,
  306. +};
  307. +
  308. +static const struct pch_gpio_set3 pch_gpio_set3_direction = {
  309. + .gpio68 = GPIO_DIR_INPUT,
  310. + .gpio69 = GPIO_DIR_INPUT,
  311. + .gpio70 = GPIO_DIR_INPUT,
  312. + .gpio71 = GPIO_DIR_INPUT,
  313. +};
  314. +
  315. +static const struct pch_gpio_set3 pch_gpio_set3_level = {
  316. +};
  317. +
  318. +static const struct pch_gpio_set3 pch_gpio_set3_reset = {
  319. +};
  320. +
  321. +const struct pch_gpio_map mainboard_gpio_map = {
  322. + .set1 = {
  323. + .mode = &pch_gpio_set1_mode,
  324. + .direction = &pch_gpio_set1_direction,
  325. + .level = &pch_gpio_set1_level,
  326. + .blink = &pch_gpio_set1_blink,
  327. + .invert = &pch_gpio_set1_invert,
  328. + .reset = &pch_gpio_set1_reset,
  329. + },
  330. + .set2 = {
  331. + .mode = &pch_gpio_set2_mode,
  332. + .direction = &pch_gpio_set2_direction,
  333. + .level = &pch_gpio_set2_level,
  334. + .reset = &pch_gpio_set2_reset,
  335. + },
  336. + .set3 = {
  337. + .mode = &pch_gpio_set3_mode,
  338. + .direction = &pch_gpio_set3_direction,
  339. + .level = &pch_gpio_set3_level,
  340. + .reset = &pch_gpio_set3_reset,
  341. + },
  342. +};
  343. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6320/hda_verb.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/hda_verb.c
  344. new file mode 100644
  345. index 0000000000..2e3f7fa697
  346. --- /dev/null
  347. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/hda_verb.c
  348. @@ -0,0 +1,32 @@
  349. +/* SPDX-License-Identifier: GPL-2.0-only */
  350. +
  351. +#include <device/azalia_device.h>
  352. +
  353. +const u32 cim_verb_data[] = {
  354. + 0x111d76e7, /* Codec Vendor / Device ID: IDT */
  355. + 0x10280492, /* Subsystem ID */
  356. + 11, /* Number of 4 dword sets */
  357. + AZALIA_SUBVENDOR(0, 0x10280492),
  358. + AZALIA_PIN_CFG(0, 0x0a, 0x03a11020),
  359. + AZALIA_PIN_CFG(0, 0x0b, 0x0321101f),
  360. + AZALIA_PIN_CFG(0, 0x0c, 0x400000f0),
  361. + AZALIA_PIN_CFG(0, 0x0d, 0x90170110),
  362. + AZALIA_PIN_CFG(0, 0x0e, 0x23011050),
  363. + AZALIA_PIN_CFG(0, 0x0f, 0x23a1102e),
  364. + AZALIA_PIN_CFG(0, 0x10, 0x400000f3),
  365. + AZALIA_PIN_CFG(0, 0x11, 0xd5a30130),
  366. + AZALIA_PIN_CFG(0, 0x1f, 0x400000f0),
  367. + AZALIA_PIN_CFG(0, 0x20, 0x400000f0),
  368. +
  369. + 0x80862805, /* Codec Vendor / Device ID: Intel */
  370. + 0x80860101, /* Subsystem ID */
  371. + 4, /* Number of 4 dword sets */
  372. + AZALIA_SUBVENDOR(3, 0x80860101),
  373. + AZALIA_PIN_CFG(3, 0x05, 0x18560010),
  374. + AZALIA_PIN_CFG(3, 0x06, 0x18560020),
  375. + AZALIA_PIN_CFG(3, 0x07, 0x18560030),
  376. +};
  377. +
  378. +const u32 pc_beep_verbs[0] = {};
  379. +
  380. +AZALIA_ARRAY_SIZES;
  381. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6320/overridetree.cb b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/overridetree.cb
  382. new file mode 100644
  383. index 0000000000..3bfe6b57ed
  384. --- /dev/null
  385. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6320/overridetree.cb
  386. @@ -0,0 +1,35 @@
  387. +## SPDX-License-Identifier: GPL-2.0-or-later
  388. +
  389. +chip northbridge/intel/sandybridge
  390. + device domain 0 on
  391. + subsystemid 0x1028 0x0492 inherit
  392. +
  393. + device ref igd on
  394. + register "gpu_cpu_backlight" = "0x00000622"
  395. + register "gpu_pch_backlight" = "0x13121312"
  396. + end
  397. +
  398. + chip southbridge/intel/bd82x6x
  399. + register "usb_port_config" = "{
  400. + { 1, 1, 0 },
  401. + { 1, 0, 0 },
  402. + { 1, 1, 1 },
  403. + { 1, 0, 1 },
  404. + { 1, 1, 2 },
  405. + { 1, 1, 2 },
  406. + { 1, 1, 3 },
  407. + { 1, 1, 3 },
  408. + { 1, 0, 5 },
  409. + { 1, 0, 5 },
  410. + { 1, 1, 7 },
  411. + { 1, 1, 6 },
  412. + { 1, 0, 6 },
  413. + { 1, 0, 7 },
  414. + }"
  415. +
  416. + device ref sata1 on
  417. + register "sata_port_map" = "0x3b"
  418. + end
  419. + end
  420. + end
  421. +end
  422. --
  423. 2.39.2