Skip to content

Commit 37295ad

Browse files
Chr1sNoCalcProgrammer1
authored andcommitted
Updated Gigabyte SuperIO metadata
* Includes changes from https://gitlab.com/OpenRGBDevelopers/OpenRGB- Wiki/-/merge_requests/14/diffs
1 parent 0c16108 commit 37295ad

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

Controllers/GigabyteSuperIORGBController/RGBController_GigabyteSuperIORGB.cpp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,69 @@
1717
@effects :white_check_mark:
1818
@detectors DetectGigabyteSuperIORGBControllers
1919
@comment
20+
Testing was done on an ITE8688 Chipset, and adds the support for motherboards that can only be controlled with Gigabyte’s “Ambient Led” NOT EITHER RGB Fusion 1.0/2.0.
21+
22+
You should first check to confirm that you DO NOT HAVE EITHER A USB OR SMBUS controllable chipset, use the following powershell command to confirm if you have a USB device:
23+
```powershell
24+
gwmi Win32_USBControllerDevice |%{[wmi]($_.Dependent)} | Sort Manufacturer,Description,DeviceID | Ft -GroupBy Manufacturer Description,Service,DeviceID
25+
```
26+
27+
If you see anything with a VID of 048D or 8297, DO NOT PROCEED, the software is likely supportable by OpenRGB's Fusion2 USB controller.
28+
29+
After that check output on the SMBus: Using the OpenRGB I2C Sniffer to confirm that no data is output on either bus while changing colors in “Ambient LED”, if either bus outputs data, DO NOT PROCEED, the software is likely supportable in Gigabyte RGB Fusion.
30+
31+
The following chipsets are likely supported:
32+
| Chipset ID |
33+
| :---: |
34+
| ITE8620E |
35+
| ITE8626 |
36+
| ITE8686E |
37+
| ITE8688 |
38+
| ITE8689 |
39+
| ITE8728F |
40+
| ITE8790F |
41+
| ITE8791E |
42+
43+
To confirm your chipset, you can open CPU-Z, the MCU chipset model is found under Mainboard like below:
44+
45+
To confirm that your RGB is compatible with this Controller in OpenRGB, you will need to add the motherboard DMI Model name, which is the output of the following powershell command:
46+
47+
```powershell
48+
wmic baseboard get product
49+
```
50+
51+
To the struct array that is found in GigabyteSuperIORGBControllerDetect.cpp, like below
52+
53+
```c++
54+
gig_device compatible_devices[] =
55+
{
56+
{"X570 UD"},
57+
{"EXAMPLEBASEBOARDPRODUCTNAME"}
58+
};
59+
```
60+
61+
If your chipset is also NOT an ITE8688, you will also need to add the chipset, to get this is a bit harder, for myself I added a breakpoint, on this line, in GigabyteSuperIORGBControllerDetect.cpp:
62+
```c++
63+
switch (val & SIO_ID_MASK)
64+
```
65+
66+
For an ITE8688, the value was 0x8688 in Hexidecimal, it is likely the case with other models as well that the code matches the MCU model.
67+
68+
To add this chipset you will need to first add it to the SuperIO definitions file, which is named super_io.h like below
69+
```c++
70+
#define SIO_ITE688_ID 0x8688 // Device ID for ITE8688 (8688)
71+
#define SIO_NEWCHIPSETMODEL_ID 0xFOUNDHEXIDECIMALVALUE // Device ID for NEWCHIPSETMODEL (FOUNDHEXIDECIMALVALUE)
72+
```
73+
74+
And lastly you will need to add the chip to the
75+
76+
GigabyteSuperIORGBControllerDetect.cpp like below:
77+
```c++
78+
switch (val & SIO_ID_MASK)
79+
{
80+
case SIO_ITE688_ID:
81+
case SIO_NEWCHIPSETMODEL_ID:
82+
```
2083
\*-------------------------------------------------------------------*/
2184

2285
RGBController_GigabyteSuperIORGB::RGBController_GigabyteSuperIORGB(GigabyteSuperIORGBController* controller_ptr)

0 commit comments

Comments
 (0)