Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: keystone-k2g-evm: add HDMI and analog audio data

The board is using McASP2 for both analog (tlv320aic3106) and
HDMI (SiI9022) audio.
12.288MHz oscillator provides the MCLK for both aic3106 and SiI9022.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>

authored by

Peter Ujfalusi and committed by
Santosh Shilimkar
ea270ef7 3650b228

+112
+112
arch/arm/boot/dts/keystone-k2g-evm.dts
··· 46 46 regulator-always-on; 47 47 }; 48 48 49 + vcc1v8_ldo2_reg: fixedregulator-vcc1v8-ldo2 { 50 + compatible = "regulator-fixed"; 51 + regulator-name = "ldo2"; 52 + regulator-min-microvolt = <1800000>; 53 + regulator-max-microvolt = <1800000>; 54 + regulator-always-on; 55 + }; 56 + 49 57 hdmi: connector { 50 58 compatible = "hdmi-connector"; 51 59 label = "hdmi"; ··· 63 55 port { 64 56 hdmi_connector_in: endpoint { 65 57 remote-endpoint = <&sii9022_out>; 58 + }; 59 + }; 60 + }; 61 + 62 + aud_mclk: aud_mclk { 63 + compatible = "fixed-clock"; 64 + #clock-cells = <0>; 65 + clock-frequency = <12288000>; 66 + }; 67 + 68 + sound0: sound@0 { 69 + compatible = "simple-audio-card"; 70 + simple-audio-card,name = "K2G-EVM"; 71 + simple-audio-card,widgets = 72 + "Headphone", "Headphone Jack", 73 + "Line", "Line In"; 74 + simple-audio-card,routing = 75 + "Headphone Jack", "HPLOUT", 76 + "Headphone Jack", "HPROUT", 77 + "LINE1L", "Line In", 78 + "LINE1R", "Line In"; 79 + 80 + simple-audio-card,dai-link@0 { 81 + format = "i2s"; 82 + bitclock-master = <&sound0_0_master>; 83 + frame-master = <&sound0_0_master>; 84 + sound0_0_master: cpu { 85 + sound-dai = <&mcasp2>; 86 + clocks = <&k2g_clks 0x6 1>; 87 + system-clock-direction-out; 88 + }; 89 + 90 + codec { 91 + sound-dai = <&tlv320aic3106>; 92 + clocks = <&aud_mclk>; 93 + }; 94 + }; 95 + 96 + simple-audio-card,dai-link@1 { 97 + format = "i2s"; 98 + bitclock-master = <&sound0_1_master>; 99 + frame-master = <&sound0_1_master>; 100 + sound0_1_master: cpu { 101 + sound-dai = <&mcasp2>; 102 + clocks = <&k2g_clks 0x6 1>; 103 + system-clock-direction-out; 104 + }; 105 + 106 + codec { 107 + sound-dai = <&sii9022>; 108 + clocks = <&aud_mclk>; 66 109 }; 67 110 }; 68 111 }; ··· 271 212 K2G_CORE_IOPAD(0x10e0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dsspclk.dsspclk */ 272 213 K2G_CORE_IOPAD(0x10e4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssde.dssde */ 273 214 K2G_CORE_IOPAD(0x10e8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssfid.dssfid */ 215 + >; 216 + }; 217 + 218 + mcasp2_pins: pinmux_mcasp2_pins { 219 + pinctrl-single,pins = < 220 + K2G_CORE_IOPAD(0x1234) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo2.mcasp2_axr2 */ 221 + K2G_CORE_IOPAD(0x1238) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo3.mcasp2_axr3 */ 222 + K2G_CORE_IOPAD(0x1254) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo10.mcasp2_afsx */ 223 + K2G_CORE_IOPAD(0x125c) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4) /* pr0_pru_gpo12.mcasp2_aclkx */ 274 224 >; 275 225 }; 276 226 }; ··· 491 423 compatible = "sil,sii9022"; 492 424 reg = <0x3b>; 493 425 426 + sil,i2s-data-lanes = < 0 >; 427 + clocks = <&aud_mclk>; 428 + clock-names = "mclk"; 429 + 494 430 ports { 495 431 #address-cells = <1>; 496 432 #size-cells = <0>; ··· 516 444 }; 517 445 }; 518 446 }; 447 + 448 + tlv320aic3106: tlv320aic3106@1b { 449 + #sound-dai-cells = <0>; 450 + compatible = "ti,tlv320aic3106"; 451 + reg = <0x1b>; 452 + status = "okay"; 453 + 454 + /* Regulators */ 455 + AVDD-supply = <&vcc3v3_dcin_reg>; 456 + IOVDD-supply = <&vcc3v3_dcin_reg>; 457 + DRVDD-supply = <&vcc3v3_dcin_reg>; 458 + DVDD-supply = <&vcc1v8_ldo2_reg>; 459 + }; 519 460 }; 520 461 521 462 &dss { ··· 542 457 data-lines = <24>; 543 458 }; 544 459 }; 460 + }; 461 + 462 + &k2g_clks { 463 + /* on the board 22.5792MHz is connected to AUDOSC_IN */ 464 + assigned-clocks = <&k2g_clks 0x4c 2>; 465 + assigned-clock-rates = <22579200>; 466 + }; 467 + 468 + &mcasp2 { 469 + #sound-dai-cells = <0>; 470 + 471 + pinctrl-names = "default"; 472 + pinctrl-0 = <&mcasp2_pins>; 473 + 474 + assigned-clocks = <&k2g_clks 0x6 1>; 475 + assigned-clock-parents = <&k2g_clks 0x6 2>; 476 + 477 + status = "okay"; 478 + 479 + op-mode = <0>; /* MCASP_IIS_MODE */ 480 + tdm-slots = <2>; 481 + /* 6 serializer */ 482 + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 483 + 0 0 1 2 0 0 // AXR2: TX, AXR3: rx 484 + >; 485 + tx-num-evt = <32>; 486 + rx-num-evt = <32>; 545 487 };