.num_sdma_queues_per_engine = 2,
 };
 
+static const struct kfd_device_info polaris12_device_info = {
+       .asic_family = CHIP_POLARIS12,
+       .max_pasid_bits = 16,
+       .max_no_of_hqd  = 24,
+       .doorbell_size  = 4,
+       .ih_ring_entry_size = 4 * sizeof(uint32_t),
+       .event_interrupt_class = &event_interrupt_class_cik,
+       .num_of_watch_points = 4,
+       .mqd_size_aligned = MQD_SIZE_ALIGNED,
+       .supports_cwsr = true,
+       .needs_iommu_device = false,
+       .needs_pci_atomics = true,
+       .num_sdma_engines = 2,
+       .num_sdma_queues_per_engine = 2,
+};
+
 static const struct kfd_device_info vega10_device_info = {
        .asic_family = CHIP_VEGA10,
        .max_pasid_bits = 16,
        .num_sdma_queues_per_engine = 2,
 };
 
+static const struct kfd_device_info vega12_device_info = {
+       .asic_family = CHIP_VEGA12,
+       .max_pasid_bits = 16,
+       .max_no_of_hqd  = 24,
+       .doorbell_size  = 8,
+       .ih_ring_entry_size = 8 * sizeof(uint32_t),
+       .event_interrupt_class = &event_interrupt_class_v9,
+       .num_of_watch_points = 4,
+       .mqd_size_aligned = MQD_SIZE_ALIGNED,
+       .supports_cwsr = true,
+       .needs_iommu_device = false,
+       .needs_pci_atomics = false,
+       .num_sdma_engines = 2,
+       .num_sdma_queues_per_engine = 2,
+};
+
 static const struct kfd_device_info vega20_device_info = {
        .asic_family = CHIP_VEGA20,
        .max_pasid_bits = 16,
        { 0x67EB, &polaris11_device_info },     /* Polaris11 */
        { 0x67EF, &polaris11_device_info },     /* Polaris11 */
        { 0x67FF, &polaris11_device_info },     /* Polaris11 */
+       { 0x6980, &polaris12_device_info },     /* Polaris12 */
+       { 0x6981, &polaris12_device_info },     /* Polaris12 */
+       { 0x6985, &polaris12_device_info },     /* Polaris12 */
+       { 0x6986, &polaris12_device_info },     /* Polaris12 */
+       { 0x6987, &polaris12_device_info },     /* Polaris12 */
+       { 0x6995, &polaris12_device_info },     /* Polaris12 */
+       { 0x6997, &polaris12_device_info },     /* Polaris12 */
+       { 0x699F, &polaris12_device_info },     /* Polaris12 */
        { 0x6860, &vega10_device_info },        /* Vega10 */
        { 0x6861, &vega10_device_info },        /* Vega10 */
        { 0x6862, &vega10_device_info },        /* Vega10 */
        { 0x6868, &vega10_device_info },        /* Vega10 */
        { 0x686C, &vega10_vf_device_info },     /* Vega10  vf*/
        { 0x687F, &vega10_device_info },        /* Vega10 */
+       { 0x69A0, &vega12_device_info },        /* Vega12 */
+       { 0x69A1, &vega12_device_info },        /* Vega12 */
+       { 0x69A2, &vega12_device_info },        /* Vega12 */
+       { 0x69A3, &vega12_device_info },        /* Vega12 */
+       { 0x69AF, &vega12_device_info },        /* Vega12 */
        { 0x66a0, &vega20_device_info },        /* Vega20 */
        { 0x66a1, &vega20_device_info },        /* Vega20 */
        { 0x66a2, &vega20_device_info },        /* Vega20 */