Add Gigabyte Z390 DESIGNARE-CF Ambient LED support
This commit is contained in:
@@ -12,6 +12,18 @@
|
||||
#include "GigabyteSuperIORGBController.h"
|
||||
#include "super_io.h"
|
||||
|
||||
void GigabyteSuperIOEnter(int sioaddr)
|
||||
{
|
||||
/*-----------------------------------------------------*\
|
||||
| ITE8620 Ambient LED Extended Function Mode sequence |
|
||||
\*-----------------------------------------------------*/
|
||||
superio_enter(sioaddr);
|
||||
superio_inb(sioaddr, GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_1);
|
||||
superio_inb(sioaddr, GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_2);
|
||||
superio_inb(sioaddr, GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_3);
|
||||
superio_inb(sioaddr, GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_4);
|
||||
}
|
||||
|
||||
GigabyteSuperIORGBController::GigabyteSuperIORGBController(int sioaddr, std::string dev_name)
|
||||
{
|
||||
gig_sioaddr = sioaddr;
|
||||
@@ -40,10 +52,7 @@ void GigabyteSuperIORGBController::ChipEntry()
|
||||
/*--------------------------------*\
|
||||
| Chip Entry Command |
|
||||
\*_-------------------------------*/
|
||||
superio_enter(gig_sioaddr);
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPENTRY_REGISTER_1, GIGABYTE_SUPERIO_CHIPENTRY_VALUE_1);
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPENTRY_REGISTER_2, GIGABYTE_SUPERIO_CHIPENTRY_VALUE_2);
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPENTRY_REGISTER_2, GIGABYTE_SUPERIO_CHIPENTRY_VALUE_2);
|
||||
GigabyteSuperIOEnter(gig_sioaddr);
|
||||
|
||||
/*--------------------------------*\
|
||||
| Chip Select Command |
|
||||
|
||||
@@ -15,6 +15,14 @@
|
||||
|
||||
enum
|
||||
{
|
||||
/*-----------------------------------*\
|
||||
| Extended Function Mode Entry Values |
|
||||
\*_----------------------------------*/
|
||||
GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_1 = 0x87,
|
||||
GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_2 = 0x01,
|
||||
GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_3 = 0x55,
|
||||
GIGABYTE_SUPERIO_EXTENDED_FUNCTION_ENTRY_4 = 0x55,
|
||||
|
||||
/*--------------------------------*\
|
||||
| Chip Entry Registers and Values |
|
||||
\*_-------------------------------*/
|
||||
@@ -129,6 +137,8 @@ enum
|
||||
|
||||
};
|
||||
|
||||
void GigabyteSuperIOEnter(int sioaddr);
|
||||
|
||||
class GigabyteSuperIORGBController
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -24,7 +24,8 @@ typedef struct
|
||||
|
||||
static gig_device compatible_devices[] =
|
||||
{
|
||||
{"X570 UD"}
|
||||
{"X570 UD"},
|
||||
{"Z390 DESIGNARE-CF"}
|
||||
};
|
||||
|
||||
DetectedControllers DetectGigabyteSuperIORGBControllers()
|
||||
@@ -41,12 +42,13 @@ DetectedControllers DetectGigabyteSuperIORGBControllers()
|
||||
{
|
||||
int sioaddr = sio_addrs[sioaddr_idx];
|
||||
|
||||
superio_enter(sioaddr);
|
||||
GigabyteSuperIOEnter(sioaddr);
|
||||
|
||||
int val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVID + 1);
|
||||
|
||||
switch(val & SIO_ID_MASK)
|
||||
{
|
||||
case SIO_ITE8620_ID:
|
||||
case SIO_ITE8688_ID:
|
||||
for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++)
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#define SIO_NCT6796_ID 0xd420 /* Device ID for NCT6796D (D421) */
|
||||
#define SIO_NCT6797_ID 0xd450 /* Device ID for NCT6797D (D450) */
|
||||
#define SIO_NCT6798_ID 0xd428 /* Device ID for NCT6798D (D428) */
|
||||
#define SIO_ITE8620_ID 0x8620 /* Device ID for ITE8620 (8620) */
|
||||
#define SIO_ITE8688_ID 0x8688 /* Device ID for ITE8688 (8688) */
|
||||
#define SIO_REG_LOGDEV 0x07 /* Logical Device Register */
|
||||
#define SIO_REG_DEVID 0x20 /* Device ID Register */
|
||||
|
||||
Reference in New Issue
Block a user