diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-03-28 13:19:06 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-04-24 04:50:13 -0400 |
commit | 3a2a67aa28725bb500505087067e7830cfa9c137 (patch) | |
tree | 86194e6e69f34092d19aa8970d9c09fba7423ade /drivers/gpu/drm/radeon/rv770d.h | |
parent | eccea7920cfb009c2fa40e9ecdce8c36f61cab66 (diff) |
drm/radeon/kms: add register definitions for audio
This adds register definitions for HDMI/DP audio on
DCE2/3/4/5 hardware.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/rv770d.h')
-rw-r--r-- | drivers/gpu/drm/radeon/rv770d.h | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/rv770d.h b/drivers/gpu/drm/radeon/rv770d.h index 79fa588e9ed5..9c549f702f2f 100644 --- a/drivers/gpu/drm/radeon/rv770d.h +++ b/drivers/gpu/drm/radeon/rv770d.h | |||
@@ -353,6 +353,197 @@ | |||
353 | 353 | ||
354 | #define SRBM_STATUS 0x0E50 | 354 | #define SRBM_STATUS 0x0E50 |
355 | 355 | ||
356 | /* DCE 3.2 HDMI */ | ||
357 | #define HDMI_CONTROL 0x7400 | ||
358 | # define HDMI_KEEPOUT_MODE (1 << 0) | ||
359 | # define HDMI_PACKET_GEN_VERSION (1 << 4) /* 0 = r6xx compat */ | ||
360 | # define HDMI_ERROR_ACK (1 << 8) | ||
361 | # define HDMI_ERROR_MASK (1 << 9) | ||
362 | #define HDMI_STATUS 0x7404 | ||
363 | # define HDMI_ACTIVE_AVMUTE (1 << 0) | ||
364 | # define HDMI_AUDIO_PACKET_ERROR (1 << 16) | ||
365 | # define HDMI_VBI_PACKET_ERROR (1 << 20) | ||
366 | #define HDMI_AUDIO_PACKET_CONTROL 0x7408 | ||
367 | # define HDMI_AUDIO_DELAY_EN(x) (((x) & 3) << 4) | ||
368 | # define HDMI_AUDIO_PACKETS_PER_LINE(x) (((x) & 0x1f) << 16) | ||
369 | #define HDMI_ACR_PACKET_CONTROL 0x740c | ||
370 | # define HDMI_ACR_SEND (1 << 0) | ||
371 | # define HDMI_ACR_CONT (1 << 1) | ||
372 | # define HDMI_ACR_SELECT(x) (((x) & 3) << 4) | ||
373 | # define HDMI_ACR_HW 0 | ||
374 | # define HDMI_ACR_32 1 | ||
375 | # define HDMI_ACR_44 2 | ||
376 | # define HDMI_ACR_48 3 | ||
377 | # define HDMI_ACR_SOURCE (1 << 8) /* 0 - hw; 1 - cts value */ | ||
378 | # define HDMI_ACR_AUTO_SEND (1 << 12) | ||
379 | #define HDMI_VBI_PACKET_CONTROL 0x7410 | ||
380 | # define HDMI_NULL_SEND (1 << 0) | ||
381 | # define HDMI_GC_SEND (1 << 4) | ||
382 | # define HDMI_GC_CONT (1 << 5) /* 0 - once; 1 - every frame */ | ||
383 | #define HDMI_INFOFRAME_CONTROL0 0x7414 | ||
384 | # define HDMI_AVI_INFO_SEND (1 << 0) | ||
385 | # define HDMI_AVI_INFO_CONT (1 << 1) | ||
386 | # define HDMI_AUDIO_INFO_SEND (1 << 4) | ||
387 | # define HDMI_AUDIO_INFO_CONT (1 << 5) | ||
388 | # define HDMI_MPEG_INFO_SEND (1 << 8) | ||
389 | # define HDMI_MPEG_INFO_CONT (1 << 9) | ||
390 | #define HDMI_INFOFRAME_CONTROL1 0x7418 | ||
391 | # define HDMI_AVI_INFO_LINE(x) (((x) & 0x3f) << 0) | ||
392 | # define HDMI_AUDIO_INFO_LINE(x) (((x) & 0x3f) << 8) | ||
393 | # define HDMI_MPEG_INFO_LINE(x) (((x) & 0x3f) << 16) | ||
394 | #define HDMI_GENERIC_PACKET_CONTROL 0x741c | ||
395 | # define HDMI_GENERIC0_SEND (1 << 0) | ||
396 | # define HDMI_GENERIC0_CONT (1 << 1) | ||
397 | # define HDMI_GENERIC1_SEND (1 << 4) | ||
398 | # define HDMI_GENERIC1_CONT (1 << 5) | ||
399 | # define HDMI_GENERIC0_LINE(x) (((x) & 0x3f) << 16) | ||
400 | # define HDMI_GENERIC1_LINE(x) (((x) & 0x3f) << 24) | ||
401 | #define HDMI_GC 0x7428 | ||
402 | # define HDMI_GC_AVMUTE (1 << 0) | ||
403 | #define AFMT_AUDIO_PACKET_CONTROL2 0x742c | ||
404 | # define AFMT_AUDIO_LAYOUT_OVRD (1 << 0) | ||
405 | # define AFMT_AUDIO_LAYOUT_SELECT (1 << 1) | ||
406 | # define AFMT_60958_CS_SOURCE (1 << 4) | ||
407 | # define AFMT_AUDIO_CHANNEL_ENABLE(x) (((x) & 0xff) << 8) | ||
408 | # define AFMT_DP_AUDIO_STREAM_ID(x) (((x) & 0xff) << 16) | ||
409 | #define AFMT_AVI_INFO0 0x7454 | ||
410 | # define AFMT_AVI_INFO_CHECKSUM(x) (((x) & 0xff) << 0) | ||
411 | # define AFMT_AVI_INFO_S(x) (((x) & 3) << 8) | ||
412 | # define AFMT_AVI_INFO_B(x) (((x) & 3) << 10) | ||
413 | # define AFMT_AVI_INFO_A(x) (((x) & 1) << 12) | ||
414 | # define AFMT_AVI_INFO_Y(x) (((x) & 3) << 13) | ||
415 | # define AFMT_AVI_INFO_Y_RGB 0 | ||
416 | # define AFMT_AVI_INFO_Y_YCBCR422 1 | ||
417 | # define AFMT_AVI_INFO_Y_YCBCR444 2 | ||
418 | # define AFMT_AVI_INFO_Y_A_B_S(x) (((x) & 0xff) << 8) | ||
419 | # define AFMT_AVI_INFO_R(x) (((x) & 0xf) << 16) | ||
420 | # define AFMT_AVI_INFO_M(x) (((x) & 0x3) << 20) | ||
421 | # define AFMT_AVI_INFO_C(x) (((x) & 0x3) << 22) | ||
422 | # define AFMT_AVI_INFO_C_M_R(x) (((x) & 0xff) << 16) | ||
423 | # define AFMT_AVI_INFO_SC(x) (((x) & 0x3) << 24) | ||
424 | # define AFMT_AVI_INFO_Q(x) (((x) & 0x3) << 26) | ||
425 | # define AFMT_AVI_INFO_EC(x) (((x) & 0x3) << 28) | ||
426 | # define AFMT_AVI_INFO_ITC(x) (((x) & 0x1) << 31) | ||
427 | # define AFMT_AVI_INFO_ITC_EC_Q_SC(x) (((x) & 0xff) << 24) | ||
428 | #define AFMT_AVI_INFO1 0x7458 | ||
429 | # define AFMT_AVI_INFO_VIC(x) (((x) & 0x7f) << 0) /* don't use avi infoframe v1 */ | ||
430 | # define AFMT_AVI_INFO_PR(x) (((x) & 0xf) << 8) /* don't use avi infoframe v1 */ | ||
431 | # define AFMT_AVI_INFO_TOP(x) (((x) & 0xffff) << 16) | ||
432 | #define AFMT_AVI_INFO2 0x745c | ||
433 | # define AFMT_AVI_INFO_BOTTOM(x) (((x) & 0xffff) << 0) | ||
434 | # define AFMT_AVI_INFO_LEFT(x) (((x) & 0xffff) << 16) | ||
435 | #define AFMT_AVI_INFO3 0x7460 | ||
436 | # define AFMT_AVI_INFO_RIGHT(x) (((x) & 0xffff) << 0) | ||
437 | # define AFMT_AVI_INFO_VERSION(x) (((x) & 3) << 24) | ||
438 | #define AFMT_MPEG_INFO0 0x7464 | ||
439 | # define AFMT_MPEG_INFO_CHECKSUM(x) (((x) & 0xff) << 0) | ||
440 | # define AFMT_MPEG_INFO_MB0(x) (((x) & 0xff) << 8) | ||
441 | # define AFMT_MPEG_INFO_MB1(x) (((x) & 0xff) << 16) | ||
442 | # define AFMT_MPEG_INFO_MB2(x) (((x) & 0xff) << 24) | ||
443 | #define AFMT_MPEG_INFO1 0x7468 | ||
444 | # define AFMT_MPEG_INFO_MB3(x) (((x) & 0xff) << 0) | ||
445 | # define AFMT_MPEG_INFO_MF(x) (((x) & 3) << 8) | ||
446 | # define AFMT_MPEG_INFO_FR(x) (((x) & 1) << 12) | ||
447 | #define AFMT_GENERIC0_HDR 0x746c | ||
448 | #define AFMT_GENERIC0_0 0x7470 | ||
449 | #define AFMT_GENERIC0_1 0x7474 | ||
450 | #define AFMT_GENERIC0_2 0x7478 | ||
451 | #define AFMT_GENERIC0_3 0x747c | ||
452 | #define AFMT_GENERIC0_4 0x7480 | ||
453 | #define AFMT_GENERIC0_5 0x7484 | ||
454 | #define AFMT_GENERIC0_6 0x7488 | ||
455 | #define AFMT_GENERIC1_HDR 0x748c | ||
456 | #define AFMT_GENERIC1_0 0x7490 | ||
457 | #define AFMT_GENERIC1_1 0x7494 | ||
458 | #define AFMT_GENERIC1_2 0x7498 | ||
459 | #define AFMT_GENERIC1_3 0x749c | ||
460 | #define AFMT_GENERIC1_4 0x74a0 | ||
461 | #define AFMT_GENERIC1_5 0x74a4 | ||
462 | #define AFMT_GENERIC1_6 0x74a8 | ||
463 | #define HDMI_ACR_32_0 0x74ac | ||
464 | # define HDMI_ACR_CTS_32(x) (((x) & 0xfffff) << 12) | ||
465 | #define HDMI_ACR_32_1 0x74b0 | ||
466 | # define HDMI_ACR_N_32(x) (((x) & 0xfffff) << 0) | ||
467 | #define HDMI_ACR_44_0 0x74b4 | ||
468 | # define HDMI_ACR_CTS_44(x) (((x) & 0xfffff) << 12) | ||
469 | #define HDMI_ACR_44_1 0x74b8 | ||
470 | # define HDMI_ACR_N_44(x) (((x) & 0xfffff) << 0) | ||
471 | #define HDMI_ACR_48_0 0x74bc | ||
472 | # define HDMI_ACR_CTS_48(x) (((x) & 0xfffff) << 12) | ||
473 | #define HDMI_ACR_48_1 0x74c0 | ||
474 | # define HDMI_ACR_N_48(x) (((x) & 0xfffff) << 0) | ||
475 | #define HDMI_ACR_STATUS_0 0x74c4 | ||
476 | #define HDMI_ACR_STATUS_1 0x74c8 | ||
477 | #define AFMT_AUDIO_INFO0 0x74cc | ||
478 | # define AFMT_AUDIO_INFO_CHECKSUM(x) (((x) & 0xff) << 0) | ||
479 | # define AFMT_AUDIO_INFO_CC(x) (((x) & 7) << 8) | ||
480 | # define AFMT_AUDIO_INFO_CHECKSUM_OFFSET(x) (((x) & 0xff) << 16) | ||
481 | #define AFMT_AUDIO_INFO1 0x74d0 | ||
482 | # define AFMT_AUDIO_INFO_CA(x) (((x) & 0xff) << 0) | ||
483 | # define AFMT_AUDIO_INFO_LSV(x) (((x) & 0xf) << 11) | ||
484 | # define AFMT_AUDIO_INFO_DM_INH(x) (((x) & 1) << 15) | ||
485 | # define AFMT_AUDIO_INFO_DM_INH_LSV(x) (((x) & 0xff) << 8) | ||
486 | #define AFMT_60958_0 0x74d4 | ||
487 | # define AFMT_60958_CS_A(x) (((x) & 1) << 0) | ||
488 | # define AFMT_60958_CS_B(x) (((x) & 1) << 1) | ||
489 | # define AFMT_60958_CS_C(x) (((x) & 1) << 2) | ||
490 | # define AFMT_60958_CS_D(x) (((x) & 3) << 3) | ||
491 | # define AFMT_60958_CS_MODE(x) (((x) & 3) << 6) | ||
492 | # define AFMT_60958_CS_CATEGORY_CODE(x) (((x) & 0xff) << 8) | ||
493 | # define AFMT_60958_CS_SOURCE_NUMBER(x) (((x) & 0xf) << 16) | ||
494 | # define AFMT_60958_CS_CHANNEL_NUMBER_L(x) (((x) & 0xf) << 20) | ||
495 | # define AFMT_60958_CS_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 24) | ||
496 | # define AFMT_60958_CS_CLOCK_ACCURACY(x) (((x) & 3) << 28) | ||
497 | #define AFMT_60958_1 0x74d8 | ||
498 | # define AFMT_60958_CS_WORD_LENGTH(x) (((x) & 0xf) << 0) | ||
499 | # define AFMT_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 4) | ||
500 | # define AFMT_60958_CS_VALID_L(x) (((x) & 1) << 16) | ||
501 | # define AFMT_60958_CS_VALID_R(x) (((x) & 1) << 18) | ||
502 | # define AFMT_60958_CS_CHANNEL_NUMBER_R(x) (((x) & 0xf) << 20) | ||
503 | #define AFMT_AUDIO_CRC_CONTROL 0x74dc | ||
504 | # define AFMT_AUDIO_CRC_EN (1 << 0) | ||
505 | #define AFMT_RAMP_CONTROL0 0x74e0 | ||
506 | # define AFMT_RAMP_MAX_COUNT(x) (((x) & 0xffffff) << 0) | ||
507 | # define AFMT_RAMP_DATA_SIGN (1 << 31) | ||
508 | #define AFMT_RAMP_CONTROL1 0x74e4 | ||
509 | # define AFMT_RAMP_MIN_COUNT(x) (((x) & 0xffffff) << 0) | ||
510 | # define AFMT_AUDIO_TEST_CH_DISABLE(x) (((x) & 0xff) << 24) | ||
511 | #define AFMT_RAMP_CONTROL2 0x74e8 | ||
512 | # define AFMT_RAMP_INC_COUNT(x) (((x) & 0xffffff) << 0) | ||
513 | #define AFMT_RAMP_CONTROL3 0x74ec | ||
514 | # define AFMT_RAMP_DEC_COUNT(x) (((x) & 0xffffff) << 0) | ||
515 | #define AFMT_60958_2 0x74f0 | ||
516 | # define AFMT_60958_CS_CHANNEL_NUMBER_2(x) (((x) & 0xf) << 0) | ||
517 | # define AFMT_60958_CS_CHANNEL_NUMBER_3(x) (((x) & 0xf) << 4) | ||
518 | # define AFMT_60958_CS_CHANNEL_NUMBER_4(x) (((x) & 0xf) << 8) | ||
519 | # define AFMT_60958_CS_CHANNEL_NUMBER_5(x) (((x) & 0xf) << 12) | ||
520 | # define AFMT_60958_CS_CHANNEL_NUMBER_6(x) (((x) & 0xf) << 16) | ||
521 | # define AFMT_60958_CS_CHANNEL_NUMBER_7(x) (((x) & 0xf) << 20) | ||
522 | #define AFMT_STATUS 0x7600 | ||
523 | # define AFMT_AUDIO_ENABLE (1 << 4) | ||
524 | # define AFMT_AZ_FORMAT_WTRIG (1 << 28) | ||
525 | # define AFMT_AZ_FORMAT_WTRIG_INT (1 << 29) | ||
526 | # define AFMT_AZ_AUDIO_ENABLE_CHG (1 << 30) | ||
527 | #define AFMT_AUDIO_PACKET_CONTROL 0x7604 | ||
528 | # define AFMT_AUDIO_SAMPLE_SEND (1 << 0) | ||
529 | # define AFMT_AUDIO_TEST_EN (1 << 12) | ||
530 | # define AFMT_AUDIO_CHANNEL_SWAP (1 << 24) | ||
531 | # define AFMT_60958_CS_UPDATE (1 << 26) | ||
532 | # define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1 << 27) | ||
533 | # define AFMT_AZ_FORMAT_WTRIG_MASK (1 << 28) | ||
534 | # define AFMT_AZ_FORMAT_WTRIG_ACK (1 << 29) | ||
535 | # define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1 << 30) | ||
536 | #define AFMT_VBI_PACKET_CONTROL 0x7608 | ||
537 | # define AFMT_GENERIC0_UPDATE (1 << 2) | ||
538 | #define AFMT_INFOFRAME_CONTROL0 0x760c | ||
539 | # define AFMT_AUDIO_INFO_SOURCE (1 << 6) /* 0 - sound block; 1 - hmdi regs */ | ||
540 | # define AFMT_AUDIO_INFO_UPDATE (1 << 7) | ||
541 | # define AFMT_MPEG_INFO_UPDATE (1 << 10) | ||
542 | #define AFMT_GENERIC0_7 0x7610 | ||
543 | /* second instance starts at 0x7800 */ | ||
544 | #define HDMI_OFFSET0 (0x7400 - 0x7400) | ||
545 | #define HDMI_OFFSET1 (0x7800 - 0x7400) | ||
546 | |||
356 | #define D1GRPH_PRIMARY_SURFACE_ADDRESS 0x6110 | 547 | #define D1GRPH_PRIMARY_SURFACE_ADDRESS 0x6110 |
357 | #define D1GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6914 | 548 | #define D1GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6914 |
358 | #define D2GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6114 | 549 | #define D2GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6114 |