0017-mb-dell-Add-Latitude-E6230-Ivy-Bridge.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. From 84d7f3201eb4492acd7d290a02d19c4850c85791 Mon Sep 17 00:00:00 2001
  2. From: Nicholas Chin <nic.c3.14@gmail.com>
  3. Date: Thu, 26 Oct 2017 21:26:43 +0800
  4. Subject: [PATCH 17/51] mb/dell: Add Latitude E6230 (Ivy Bridge)
  5. This was adapted from CB:22693 from Iru Cai, which was based on
  6. autoport. I do not physically have this system. Someone with physical
  7. access to an E6230 running version A11 of the vendor firmware sent me
  8. the VBT after running the command `intelvbttool --inlegacy --outvbt
  9. data.vbt`. This new version of the port has not yet 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. Original-Change-Id: I8cdc01e902e670310628809416290045c2102340
  17. Change-Id: I32927beea7c29b96a851ab77ed15b0160f16d369
  18. Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
  19. ---
  20. src/mainboard/dell/snb_ivb_latitude/Kconfig | 11 +-
  21. .../dell/snb_ivb_latitude/Kconfig.name | 3 +
  22. .../snb_ivb_latitude/variants/e6230/data.vbt | Bin 0 -> 4280 bytes
  23. .../variants/e6230/early_init.c | 12 ++
  24. .../snb_ivb_latitude/variants/e6230/gpio.c | 193 ++++++++++++++++++
  25. .../variants/e6230/hda_verb.c | 32 +++
  26. .../variants/e6230/overridetree.cb | 40 ++++
  27. 7 files changed, 290 insertions(+), 1 deletion(-)
  28. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6230/data.vbt
  29. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6230/early_init.c
  30. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6230/gpio.c
  31. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6230/hda_verb.c
  32. create mode 100644 src/mainboard/dell/snb_ivb_latitude/variants/e6230/overridetree.cb
  33. diff --git a/src/mainboard/dell/snb_ivb_latitude/Kconfig b/src/mainboard/dell/snb_ivb_latitude/Kconfig
  34. index 49bf225fe2..f6e097930b 100644
  35. --- a/src/mainboard/dell/snb_ivb_latitude/Kconfig
  36. +++ b/src/mainboard/dell/snb_ivb_latitude/Kconfig
  37. @@ -56,6 +56,12 @@ config BOARD_DELL_LATITUDE_E5530
  38. select BOARD_ROMSIZE_KB_12288
  39. select SOUTHBRIDGE_INTEL_C216
  40. +config BOARD_DELL_LATITUDE_E6230
  41. + select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
  42. + select BOARD_ROMSIZE_KB_12288
  43. + select MAINBOARD_USES_IFD_GBE_REGION
  44. + select SOUTHBRIDGE_INTEL_C216
  45. +
  46. config BOARD_DELL_LATITUDE_E6330
  47. select BOARD_DELL_SNB_IVB_LATITUDE_COMMON
  48. select BOARD_ROMSIZE_KB_12288
  49. @@ -90,6 +96,7 @@ config MAINBOARD_PART_NUMBER
  50. default "Latitude E6420" if BOARD_DELL_LATITUDE_E6420
  51. default "Latitude E6520" if BOARD_DELL_LATITUDE_E6520
  52. default "Latitude E5530" if BOARD_DELL_LATITUDE_E5530
  53. + default "Latitude E6230" if BOARD_DELL_LATITUDE_E6230
  54. default "Latitude E6330" if BOARD_DELL_LATITUDE_E6330
  55. default "Latitude E6430" if BOARD_DELL_LATITUDE_E6430
  56. default "Latitude E6530" if BOARD_DELL_LATITUDE_E6530
  57. @@ -108,6 +115,7 @@ config VARIANT_DIR
  58. default "e6420" if BOARD_DELL_LATITUDE_E6420
  59. default "e6520" if BOARD_DELL_LATITUDE_E6520
  60. default "e5530" if BOARD_DELL_LATITUDE_E5530
  61. + default "e6230" if BOARD_DELL_LATITUDE_E6230
  62. default "e6330" if BOARD_DELL_LATITUDE_E6330
  63. default "e6430" if BOARD_DELL_LATITUDE_E6430
  64. default "e6530" if BOARD_DELL_LATITUDE_E6530
  65. @@ -121,7 +129,8 @@ config VGA_BIOS_ID
  66. || BOARD_DELL_LATITUDE_E5520 \
  67. || BOARD_DELL_LATITUDE_E6220 \
  68. || BOARD_DELL_LATITUDE_E6320
  69. - default "8086,0166" if BOARD_DELL_LATITUDE_E6430 \
  70. + default "8086,0166" if BOARD_DELL_LATITUDE_E6230 \
  71. + || BOARD_DELL_LATITUDE_E6430 \
  72. || BOARD_DELL_LATITUDE_E6530
  73. endif
  74. diff --git a/src/mainboard/dell/snb_ivb_latitude/Kconfig.name b/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  75. index d6fc8eb224..cb7bbd5cdb 100644
  76. --- a/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  77. +++ b/src/mainboard/dell/snb_ivb_latitude/Kconfig.name
  78. @@ -21,6 +21,9 @@ config BOARD_DELL_LATITUDE_E6520
  79. config BOARD_DELL_LATITUDE_E5530
  80. bool "Latitude E5530"
  81. +config BOARD_DELL_LATITUDE_E6230
  82. + bool "Latitude E6230"
  83. +
  84. config BOARD_DELL_LATITUDE_E6330
  85. bool "Latitude E6330"
  86. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6230/data.vbt b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/data.vbt
  87. new file mode 100644
  88. index 0000000000000000000000000000000000000000..45ce8f435eea647a0bddaab3fd1e9282c87afc66
  89. GIT binary patch
  90. literal 4280
  91. zcmdT{Yiu0V75-*tAG5PFyX&zDekA7P<*tbx&o1`j23L%CmvkLWvN7(mLa6alZ?J`9
  92. zo3#m4YVlG`2;w12Ajppt<qra(R;8*G@uw*8gIcsg2vxi!q_pBkmGUD$s9IGi+jD1T
  93. zO`Kg43n@JA>~|mMp8L%`XU@4ZyCa_(r`z|Z`bP4p-rEkOMn-R;Ntk#o`b)0sOKRl6
  94. z?T0eM<HLtiqX*Kr(o5Kc<Iyk90h5ws=!y8i;K=M^X(l$-Eoeyyj>ZS*@LZWP#hD{>
  95. z<r2jcJ;b8e!oAb;^QB2D#7*krI^IpA=?ra8?xvqj6=&}$QL2a1J(QuD($UfkElf=x
  96. zUM!UtXmO4PP4h^;&)jWJvd(Pj0lIs7wpgAnE!1!MB1w8~{^#ZCd!`mCmhPs6X_~zW
  97. zGae^<%aoog&+n$;nHd@rItw&bS}2u|mL_-Ws;&ZOWW_51k`IALAW8pAz~@C!!B)bs
  98. z1x-OrK~}*8L07Po(5+xZL6I<}phTEf5QRsVJYHa{f^AWEV+2@lvrPVS%snsOn?N)w
  99. zpKbvwOnk&Q_6Y?aB;r1=!TYwts;yA@BnbFfECo!7JVJq7g^yhYMUV;wlBjksp(hI2
  100. z^<}E7r698{-pw!*{mH>SLslxYH@j~%H#VLx+<8~!;a@$n+>Q%xHrQ8KGI21_iL4sI
  101. zF*$}m$R7Mr9z@Z*ir@Q9eClsSmC+t(g`q~VQ&nIxZenav_^Buc78s8*o@e|<QE{4a
  102. zhVeGz1IFJN|784&5eTYiVstQeGWr-lWTY9lG45a#8TT^oXDl%uXFS9BHN$^DE>t}g
  103. z1Z-O>lG`>pEuvmL-HpmgSANo!2hWQq2B>Zua$8%tfvQ>!1n@=m9ri_4`H|Rx#SH9n
  104. zDdRF_-FDP&WjW`L$GK%a6x?yO8l2!^g0HJrtA7TknNzCO?|U!wCv2^-5pJ%LW6!+P
  105. z)anX%E>`gP%3Er4c6+J9x=Atk1{Abrr1|WSY3P`SO5j!R5F*vbbQ%AaSHnR_+x&Op
  106. zA%8C-Pk=-Hs+FL90B)E*y3FUTIA1J)&pxRF$tzAkNr7a6_-8v$@j~G~3keqYd5I<T
  107. z`Kb3Q@LKkANhE_aMG_R&<ewt+nVbp5l*3G7mYJEKr<kXS;TA&^G;5`q5b>;y8g^P<
  108. zfWO_D2@EyVVBxnpv*}hgTeeRzWz9BoISh>M%^k`WXG=5ti$_Wu99)~lWE-qubeXNk
  109. zla9Tu=Jhyn5T<3$H#?Hfm-`+(d$7IBDx9cEvNv1i-LEDr>r7438bfkPcKod+mwd22
  110. z%{^(w&NuG)MKl0fTMTXZFJEm~k;KCj*D60g=j!2jsP)<fOUGaEZa`&xE*)?FZuW#-
  111. z8!Of7<|N(^R#xcjmZ&nZ%~{pC5y_T*PB2LdDjuI#Te}-4Qccvj+u4N3TBx|oVy*mP
  112. z<9xfFziy4n?sPv3Sqo7jWMo3>{tzvOjAJ2nB}At~#%f4?FGT+d8LFnXXtYN&Mm06B
  113. z(JwUPX-z$$(d(M=uBLvh@h6#K=;~&jQo1p&t3TCgSvQ{3)l)jXr5hjW>fd!z!bW>o
  114. z-4UjJVdJi_dN@o^hK(1(>dRqzCv2PztLMTLjTqY^YEMMJ{=B#1IV)9~IMg|yl(NPF
  115. zQSfMX`?(b5)))B!zjy0B$ua20CCLTPl^IS&2=T&Zid9-1*K{VAJP?rxjYC+zGDCe*
  116. ziQI7VfF17@3`3W-qCN>lPC5CL_c?p0F<ekqB;g0q3P1R5KNubPsT>TGXaGB3i~{ZE
  117. zr=QtIprytDnU7C*Wj%x0k)O{Y%nUnl%}K%F|J_iVaD&ubW4Qbtx;pZEb9}f^Yd;Ea
  118. zI1Ha{7Yt~z{LAY++1QG{F6*_4WsUziY{x?%I9B}i5-Tphhk8FGm%J<d_0CUoV^%N&
  119. zTe02j+LXk=ZyWoe7L$#wsEY@VC>f!3d-ysG_9>uk%#)4xpxb+ZkJdel#+h}l9j9`1
  120. zt*M!5u?i4YtZ+WECo6$LJF06|G-mMZskGiV*lQJf-ItB+hltI<?{5E<^P=0rL<P+g
  121. z(P)!c<?MlvMK0O~UwZ4*;x|ms(&&#Vn_-4{KM#g~a=;$N2QD7mSX0{t<cf>sId@e&
  122. z-cN<SWA3VKCN6g3lx#+PySpWu*+pw}>vr(fgI)K*zkikg6TDJi?^}ghc*U*%A%EGg
  123. Y$$8Z}9a~<{Q@y10T!W`-d%n2+Kj)*Kg#Z8m
  124. literal 0
  125. HcmV?d00001
  126. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6230/early_init.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/early_init.c
  127. new file mode 100644
  128. index 0000000000..24c1b32467
  129. --- /dev/null
  130. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/early_init.c
  131. @@ -0,0 +1,12 @@
  132. +/* SPDX-License-Identifier: GPL-2.0-only */
  133. +
  134. +#include <bootblock_common.h>
  135. +#include <device/pci_ops.h>
  136. +#include <ec/dell/mec5035/mec5035.h>
  137. +#include <southbridge/intel/bd82x6x/pch.h>
  138. +
  139. +void bootblock_mainboard_early_init(void)
  140. +{
  141. + pci_write_config16(PCH_LPC_DEV, LPC_EN, CNF1_LPC_EN | MC_LPC_EN | KBC_LPC_EN);
  142. + mec5035_early_init();
  143. +}
  144. diff --git a/src/mainboard/dell/snb_ivb_latitude/variants/e6230/gpio.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/gpio.c
  145. new file mode 100644
  146. index 0000000000..c07e4b1c56
  147. --- /dev/null
  148. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/gpio.c
  149. @@ -0,0 +1,193 @@
  150. +/* SPDX-License-Identifier: GPL-2.0-only */
  151. +
  152. +#include <southbridge/intel/common/gpio.h>
  153. +
  154. +static const struct pch_gpio_set1 pch_gpio_set1_mode = {
  155. + .gpio0 = GPIO_MODE_GPIO,
  156. + .gpio1 = GPIO_MODE_GPIO,
  157. + .gpio2 = GPIO_MODE_GPIO,
  158. + .gpio3 = GPIO_MODE_GPIO,
  159. + .gpio4 = GPIO_MODE_GPIO,
  160. + .gpio5 = GPIO_MODE_NATIVE,
  161. + .gpio6 = GPIO_MODE_GPIO,
  162. + .gpio7 = GPIO_MODE_GPIO,
  163. + .gpio8 = GPIO_MODE_GPIO,
  164. + .gpio9 = GPIO_MODE_NATIVE,
  165. + .gpio10 = GPIO_MODE_NATIVE,
  166. + .gpio11 = GPIO_MODE_NATIVE,
  167. + .gpio12 = GPIO_MODE_NATIVE,
  168. + .gpio13 = GPIO_MODE_GPIO,
  169. + .gpio14 = GPIO_MODE_GPIO,
  170. + .gpio15 = GPIO_MODE_GPIO,
  171. + .gpio16 = GPIO_MODE_GPIO,
  172. + .gpio17 = GPIO_MODE_GPIO,
  173. + .gpio18 = GPIO_MODE_NATIVE,
  174. + .gpio19 = GPIO_MODE_GPIO,
  175. + .gpio20 = GPIO_MODE_NATIVE,
  176. + .gpio21 = GPIO_MODE_GPIO,
  177. + .gpio22 = GPIO_MODE_GPIO,
  178. + .gpio23 = GPIO_MODE_NATIVE,
  179. + .gpio24 = GPIO_MODE_GPIO,
  180. + .gpio25 = GPIO_MODE_NATIVE,
  181. + .gpio26 = GPIO_MODE_NATIVE,
  182. + .gpio27 = GPIO_MODE_GPIO,
  183. + .gpio28 = GPIO_MODE_GPIO,
  184. + .gpio29 = GPIO_MODE_GPIO,
  185. + .gpio30 = GPIO_MODE_NATIVE,
  186. + .gpio31 = GPIO_MODE_NATIVE,
  187. +};
  188. +
  189. +static const struct pch_gpio_set1 pch_gpio_set1_direction = {
  190. + .gpio0 = GPIO_DIR_INPUT,
  191. + .gpio1 = GPIO_DIR_INPUT,
  192. + .gpio2 = GPIO_DIR_INPUT,
  193. + .gpio3 = GPIO_DIR_INPUT,
  194. + .gpio4 = GPIO_DIR_INPUT,
  195. + .gpio6 = GPIO_DIR_INPUT,
  196. + .gpio7 = GPIO_DIR_INPUT,
  197. + .gpio8 = GPIO_DIR_INPUT,
  198. + .gpio13 = GPIO_DIR_INPUT,
  199. + .gpio14 = GPIO_DIR_INPUT,
  200. + .gpio15 = GPIO_DIR_INPUT,
  201. + .gpio16 = GPIO_DIR_INPUT,
  202. + .gpio17 = GPIO_DIR_OUTPUT,
  203. + .gpio19 = GPIO_DIR_INPUT,
  204. + .gpio21 = GPIO_DIR_INPUT,
  205. + .gpio22 = GPIO_DIR_INPUT,
  206. + .gpio24 = GPIO_DIR_INPUT,
  207. + .gpio27 = GPIO_DIR_INPUT,
  208. + .gpio28 = GPIO_DIR_OUTPUT,
  209. + .gpio29 = GPIO_DIR_INPUT,
  210. +};
  211. +
  212. +static const struct pch_gpio_set1 pch_gpio_set1_level = {
  213. + .gpio17 = GPIO_LEVEL_HIGH,
  214. + .gpio28 = GPIO_LEVEL_LOW,
  215. +};
  216. +
  217. +static const struct pch_gpio_set1 pch_gpio_set1_reset = {
  218. + .gpio30 = GPIO_RESET_RSMRST,
  219. +};
  220. +
  221. +static const struct pch_gpio_set1 pch_gpio_set1_invert = {
  222. + .gpio0 = GPIO_INVERT,
  223. + .gpio8 = GPIO_INVERT,
  224. + .gpio13 = GPIO_INVERT,
  225. + .gpio14 = GPIO_INVERT,
  226. +};
  227. +
  228. +static const struct pch_gpio_set1 pch_gpio_set1_blink = {
  229. +};
  230. +
  231. +static const struct pch_gpio_set2 pch_gpio_set2_mode = {
  232. + .gpio32 = GPIO_MODE_NATIVE,
  233. + .gpio33 = GPIO_MODE_GPIO,
  234. + .gpio34 = GPIO_MODE_GPIO,
  235. + .gpio35 = GPIO_MODE_GPIO,
  236. + .gpio36 = GPIO_MODE_GPIO,
  237. + .gpio37 = GPIO_MODE_GPIO,
  238. + .gpio38 = GPIO_MODE_GPIO,
  239. + .gpio39 = GPIO_MODE_GPIO,
  240. + .gpio40 = GPIO_MODE_NATIVE,
  241. + .gpio41 = GPIO_MODE_NATIVE,
  242. + .gpio42 = GPIO_MODE_NATIVE,
  243. + .gpio43 = GPIO_MODE_NATIVE,
  244. + .gpio44 = GPIO_MODE_NATIVE,
  245. + .gpio45 = GPIO_MODE_GPIO,
  246. + .gpio46 = GPIO_MODE_NATIVE,
  247. + .gpio47 = GPIO_MODE_NATIVE,
  248. + .gpio48 = GPIO_MODE_GPIO,
  249. + .gpio49 = GPIO_MODE_GPIO,
  250. + .gpio50 = GPIO_MODE_NATIVE,
  251. + .gpio51 = GPIO_MODE_GPIO,
  252. + .gpio52 = GPIO_MODE_GPIO,
  253. + .gpio53 = GPIO_MODE_NATIVE,
  254. + .gpio54 = GPIO_MODE_GPIO,
  255. + .gpio55 = GPIO_MODE_NATIVE,
  256. + .gpio56 = GPIO_MODE_NATIVE,
  257. + .gpio57 = GPIO_MODE_GPIO,
  258. + .gpio58 = GPIO_MODE_NATIVE,
  259. + .gpio59 = GPIO_MODE_NATIVE,
  260. + .gpio60 = GPIO_MODE_GPIO,
  261. + .gpio61 = GPIO_MODE_NATIVE,
  262. + .gpio62 = GPIO_MODE_NATIVE,
  263. + .gpio63 = GPIO_MODE_NATIVE,
  264. +};
  265. +
  266. +static const struct pch_gpio_set2 pch_gpio_set2_direction = {
  267. + .gpio33 = GPIO_DIR_INPUT,
  268. + .gpio34 = GPIO_DIR_OUTPUT,
  269. + .gpio35 = GPIO_DIR_INPUT,
  270. + .gpio36 = GPIO_DIR_INPUT,
  271. + .gpio37 = GPIO_DIR_INPUT,
  272. + .gpio38 = GPIO_DIR_INPUT,
  273. + .gpio39 = GPIO_DIR_INPUT,
  274. + .gpio45 = GPIO_DIR_OUTPUT,
  275. + .gpio48 = GPIO_DIR_INPUT,
  276. + .gpio49 = GPIO_DIR_INPUT,
  277. + .gpio51 = GPIO_DIR_INPUT,
  278. + .gpio52 = GPIO_DIR_INPUT,
  279. + .gpio54 = GPIO_DIR_INPUT,
  280. + .gpio57 = GPIO_DIR_INPUT,
  281. + .gpio60 = GPIO_DIR_OUTPUT,
  282. +};
  283. +
  284. +static const struct pch_gpio_set2 pch_gpio_set2_level = {
  285. + .gpio34 = GPIO_LEVEL_HIGH,
  286. + .gpio45 = 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/e6230/hda_verb.c b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/hda_verb.c
  344. new file mode 100644
  345. index 0000000000..f6876f9e09
  346. --- /dev/null
  347. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/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. + 0x111d76df, /* Codec Vendor / Device ID: IDT */
  355. + 0x10280532, /* Subsystem ID */
  356. + 11, /* Number of 4 dword sets */
  357. + AZALIA_SUBVENDOR(0, 0x10280532),
  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. + 0x80862806, /* 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/e6230/overridetree.cb b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/overridetree.cb
  382. new file mode 100644
  383. index 0000000000..3a0fa720da
  384. --- /dev/null
  385. +++ b/src/mainboard/dell/snb_ivb_latitude/variants/e6230/overridetree.cb
  386. @@ -0,0 +1,40 @@
  387. +## SPDX-License-Identifier: GPL-2.0-or-later
  388. +
  389. +chip northbridge/intel/sandybridge
  390. + device domain 0 on
  391. + subsystemid 0x1028 0x0532 inherit
  392. +
  393. + device ref igd on
  394. + register "gpu_cpu_backlight" = "0x000009e9"
  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, 1, 0 },
  402. + { 1, 0, 1 },
  403. + { 1, 2, 1 },
  404. + { 1, 0, 2 },
  405. + { 1, 0, 2 },
  406. + { 1, 0, 3 },
  407. + { 1, 1, 3 },
  408. + { 1, 2, 4 },
  409. + { 1, 1, 4 },
  410. + { 1, 1, 5 },
  411. + { 1, 1, 5 },
  412. + { 1, 2, 6 },
  413. + { 1, 0, 6 },
  414. + }"
  415. +
  416. + device ref xhci on
  417. + register "superspeed_capable_ports" = "0x0000000f"
  418. + register "xhci_overcurrent_mapping" = "0x00000c03"
  419. + register "xhci_switchable_ports" = "0x0000000f"
  420. + end
  421. + device ref sata1 on
  422. + register "sata_port_map" = "0x31"
  423. + end
  424. + end
  425. + end
  426. +end
  427. --
  428. 2.39.5