|
@@ -26,6 +26,7 @@
|
|
|
#include <subdev/bios.h>
|
|
|
#include <subdev/gpio.h>
|
|
|
#include <subdev/i2c.h>
|
|
|
+#include <subdev/clock.h>
|
|
|
|
|
|
int
|
|
|
nv40_identify(struct nouveau_device *device)
|
|
@@ -35,81 +36,97 @@ nv40_identify(struct nouveau_device *device)
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x41:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x42:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x43:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x45:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x47:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x49:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x4b:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x44:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x46:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x4a:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x4c:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x4e:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x63:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x67:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
case 0x68:
|
|
|
device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass;
|
|
|
device->oclass[NVDEV_SUBDEV_I2C ] = &nouveau_i2c_oclass;
|
|
|
+ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass;
|
|
|
break;
|
|
|
default:
|
|
|
nv_fatal(device, "unknown Curie chipset\n");
|