Documentation for RGB strip on RX 7900 XTX (Reference)

Deucher, Alexander Alexander.Deucher at amd.com
Tue Jan 9 21:53:15 UTC 2024


[AMD Official Use Only - General]

> -----Original Message-----
> From: Alexander Koskovich <AKoskovich at protonmail.com>
> Sent: Tuesday, January 9, 2024 3:27 PM
> To: Deucher, Alexander <Alexander.Deucher at amd.com>
> Cc: amd-gfx at lists.freedesktop.org
> Subject: RE: Documentation for RGB strip on RX 7900 XTX (Reference)
>
> Doe AMD have documentation on the i2c data that gets sent currently
> though? I was hoping to figure out what you need to change in the command
> that gets sent to change stuff like brightness, color (red, green, blue), rainbow,
> morse code, etc.
>

It depends on the LED controller used by the AIB/OEM.  The programming sequence is dependent on the LED controller.

Alex


> On Tuesday, January 9th, 2024 at 10:10 AM, Deucher, Alexander
> <Alexander.Deucher at amd.com> wrote:
>
>
> >
> >
> > [Public]
> >
> > > -----Original Message-----
> > > From: Alexander Koskovich AKoskovich at protonmail.com
> > > Sent: Monday, January 8, 2024 7:22 PM
> > > To: Deucher, Alexander Alexander.Deucher at amd.com
> > > Cc: amd-gfx at lists.freedesktop.org
> > > Subject: RE: Documentation for RGB strip on RX 7900 XTX (Reference)
> > >
> > > Currently the reference cooler from AMD does not have an existing
> > > RGB controller for OpenRGB, that's why I was looking for
> > > documentation on the I2C commands to send to the second SMU, so I
> > > don't risk bricking my card by sending wrong commands during
> development somehow.
> > >
> > > writeSetCMDWithData:
> > > **************************************************************
> > > adli2c.iSize = sizeof(ADLI2C)
> > > adli2c.iAction = ADL_DL_I2C_ACTIONWRITE adli2c.iAddress = 0xb4
> > > adli2c.iSpeed = 100
> > > 0 --------------------------------------------------
> > > Dev 0: ADL_Display_WriteAndReadSMUI2C(0, &adli2c) = 0
> > > adli2c.iDataSize =
> > > 24 i2cData[0]~[24]
> > > 40 51 2c 01 00 00 ff 00 ff ff ff cc 00 cc 00 00 00 ff ff ff ff ff ff
> > > ff
> > >
> > > From the RGB app's logs this is an example of what the official AMD
> > > application on Windows is sending when it changes colors on the RGB strip.
> > >
> > > From this can it be assumed the AMD card is using the latter method
> > > you mentioned with the second SMU I2C bus, in which case no driver
> > > changes would be needed?
> >
> >
> >
> > IIRC, each AIB/OEM uses its own preferred RGB controller. The reference
> board just defines which i2c buses can be used. The RGB control application is
> just a userspace app provided by the AIB/OEM that calls ADL to talk to
> whichever i2c bus the vendor put their RGB controller on. On Linux you can do
> something similar using the i2c_dev module to open a connection to the i2c
> bus driver provided by the kernel. I believe that is what openRGB does today.
> It looks like you already have the programming sequence above.
> >
> > Alex
> >
> > > On Monday, January 8th, 2024 at 5:32 PM, Deucher, Alexander
> > > Alexander.Deucher at amd.com wrote:
> > >
> > > > [Public]
> > > >
> > > > > -----Original Message-----
> > > > > From: amd-gfx amd-gfx-bounces at lists.freedesktop.org On Behalf Of
> > > > > Alexander Koskovich
> > > > > Sent: Sunday, January 7, 2024 11:19 PM
> > > > > To: amd-gfx at lists.freedesktop.org
> > > > > Subject: Documentation for RGB strip on RX 7900 XTX (Reference)
> > > > >
> > > > > Hello,
> > > > >
> > > > > I was wondering if AMD would be able provide any documentation
> > > > > for the RGB strip on the reference cooler
> > > > > (https://www.amd.com/en/products/graphics/amd-radeon-rx-
> 7900xtx)?
> > > > > It
> > > > > looks to be handled via I2C commands to the SMU, but having
> > > > > proper documentation would be extremely helpful.
> > > >
> > > > It depends on the AIB/OEM and how they designed the specific
> > > > board. The RGB controller will either be attached to the DDCVGA
> > > > i2c bus on the display hardware or the second SMU i2c bus. The
> > > > former will require changes to the amdgpu display code to register
> > > > display i2c buses that are not used by the display connectors on the
> board so they can be used by 3rd party applications.
> > > > Currently we only register i2c buses used for display connectors.
> > > > The latter buses are already registered with the i2c subsystem
> > > > since they are used for other things like EEPROMs on server and
> > > > workstation cards and should be available via standard Linux i2c
> > > > APIs. I'm not sure what i2c LED controllers each AIB vendor uses
> > > > off hand. https://openrgb.org/index.html would probably be a good
> resource for that information.
> > > >
> > > > Alex


More information about the amd-gfx mailing list