1c6d29c66SChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c6d29c66SChristian Hewitt/* 3c6d29c66SChristian Hewitt * Copyright (c) 2019 BayLibre, SAS 4c6d29c66SChristian Hewitt * Author: Neil Armstrong <narmstrong@baylibre.com> 5c6d29c66SChristian Hewitt * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 6c6d29c66SChristian Hewitt */ 7c6d29c66SChristian Hewitt 8c6d29c66SChristian Hewitt#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 9c6d29c66SChristian Hewitt 10c6d29c66SChristian Hewitt/ { 111f685750SChristian Hewitt model = "Khadas VIM3"; 121f685750SChristian Hewitt 13c6d29c66SChristian Hewitt vddcpu_a: regulator-vddcpu-a { 14c6d29c66SChristian Hewitt /* 15c6d29c66SChristian Hewitt * MP8756GD Regulator. 16c6d29c66SChristian Hewitt */ 17c6d29c66SChristian Hewitt compatible = "pwm-regulator"; 18c6d29c66SChristian Hewitt 19c6d29c66SChristian Hewitt regulator-name = "VDDCPU_A"; 20c6d29c66SChristian Hewitt regulator-min-microvolt = <690000>; 21c6d29c66SChristian Hewitt regulator-max-microvolt = <1050000>; 22c6d29c66SChristian Hewitt 23c6d29c66SChristian Hewitt vin-supply = <&dc_in>; 24c6d29c66SChristian Hewitt 25c6d29c66SChristian Hewitt pwms = <&pwm_ab 0 1250 0>; 26c6d29c66SChristian Hewitt pwm-dutycycle-range = <100 0>; 27c6d29c66SChristian Hewitt 28c6d29c66SChristian Hewitt regulator-boot-on; 29c6d29c66SChristian Hewitt regulator-always-on; 30c6d29c66SChristian Hewitt }; 31c6d29c66SChristian Hewitt 32c6d29c66SChristian Hewitt vddcpu_b: regulator-vddcpu-b { 33c6d29c66SChristian Hewitt /* 34c6d29c66SChristian Hewitt * Silergy SY8030DEC Regulator. 35c6d29c66SChristian Hewitt */ 36c6d29c66SChristian Hewitt compatible = "pwm-regulator"; 37c6d29c66SChristian Hewitt 38c6d29c66SChristian Hewitt regulator-name = "VDDCPU_B"; 39c6d29c66SChristian Hewitt regulator-min-microvolt = <690000>; 40c6d29c66SChristian Hewitt regulator-max-microvolt = <1050000>; 41c6d29c66SChristian Hewitt 42c6d29c66SChristian Hewitt vin-supply = <&vsys_3v3>; 43c6d29c66SChristian Hewitt 44c6d29c66SChristian Hewitt pwms = <&pwm_AO_cd 1 1250 0>; 45c6d29c66SChristian Hewitt pwm-dutycycle-range = <100 0>; 46c6d29c66SChristian Hewitt 47c6d29c66SChristian Hewitt regulator-boot-on; 48c6d29c66SChristian Hewitt regulator-always-on; 49c6d29c66SChristian Hewitt }; 50c6d29c66SChristian Hewitt 51c6d29c66SChristian Hewitt sound { 52c6d29c66SChristian Hewitt compatible = "amlogic,axg-sound-card"; 5357b57ebcSChristian Hewitt model = "G12B-KHADAS-VIM3"; 54c6d29c66SChristian Hewitt audio-aux-devs = <&tdmout_b>; 55c6d29c66SChristian Hewitt audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 56c6d29c66SChristian Hewitt "TDMOUT_B IN 1", "FRDDR_B OUT 1", 57c6d29c66SChristian Hewitt "TDMOUT_B IN 2", "FRDDR_C OUT 1", 58c6d29c66SChristian Hewitt "TDM_B Playback", "TDMOUT_B OUT"; 59c6d29c66SChristian Hewitt 60c6d29c66SChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL2>, 61c6d29c66SChristian Hewitt <&clkc CLKID_MPLL0>, 62c6d29c66SChristian Hewitt <&clkc CLKID_MPLL1>; 63c6d29c66SChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 64c6d29c66SChristian Hewitt assigned-clock-rates = <294912000>, 65c6d29c66SChristian Hewitt <270950400>, 66c6d29c66SChristian Hewitt <393216000>; 67c6d29c66SChristian Hewitt status = "okay"; 68c6d29c66SChristian Hewitt 69c6d29c66SChristian Hewitt dai-link-0 { 70c6d29c66SChristian Hewitt sound-dai = <&frddr_a>; 71c6d29c66SChristian Hewitt }; 72c6d29c66SChristian Hewitt 73c6d29c66SChristian Hewitt dai-link-1 { 74c6d29c66SChristian Hewitt sound-dai = <&frddr_b>; 75c6d29c66SChristian Hewitt }; 76c6d29c66SChristian Hewitt 77c6d29c66SChristian Hewitt dai-link-2 { 78c6d29c66SChristian Hewitt sound-dai = <&frddr_c>; 79c6d29c66SChristian Hewitt }; 80c6d29c66SChristian Hewitt 81c6d29c66SChristian Hewitt /* 8ch hdmi interface */ 82c6d29c66SChristian Hewitt dai-link-3 { 83c6d29c66SChristian Hewitt sound-dai = <&tdmif_b>; 84c6d29c66SChristian Hewitt dai-format = "i2s"; 85c6d29c66SChristian Hewitt dai-tdm-slot-tx-mask-0 = <1 1>; 86c6d29c66SChristian Hewitt dai-tdm-slot-tx-mask-1 = <1 1>; 87c6d29c66SChristian Hewitt dai-tdm-slot-tx-mask-2 = <1 1>; 88c6d29c66SChristian Hewitt dai-tdm-slot-tx-mask-3 = <1 1>; 89c6d29c66SChristian Hewitt mclk-fs = <256>; 90c6d29c66SChristian Hewitt 91c6d29c66SChristian Hewitt codec { 92c6d29c66SChristian Hewitt sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 93c6d29c66SChristian Hewitt }; 94c6d29c66SChristian Hewitt }; 95c6d29c66SChristian Hewitt 96c6d29c66SChristian Hewitt /* hdmi glue */ 97c6d29c66SChristian Hewitt dai-link-4 { 98c6d29c66SChristian Hewitt sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 99c6d29c66SChristian Hewitt 100c6d29c66SChristian Hewitt codec { 101c6d29c66SChristian Hewitt sound-dai = <&hdmi_tx>; 102c6d29c66SChristian Hewitt }; 103c6d29c66SChristian Hewitt }; 104c6d29c66SChristian Hewitt }; 105c6d29c66SChristian Hewitt}; 106c6d29c66SChristian Hewitt 107c6d29c66SChristian Hewitt&arb { 108c6d29c66SChristian Hewitt status = "okay"; 109c6d29c66SChristian Hewitt}; 110c6d29c66SChristian Hewitt 111c6d29c66SChristian Hewitt&clkc_audio { 112c6d29c66SChristian Hewitt status = "okay"; 113c6d29c66SChristian Hewitt}; 114c6d29c66SChristian Hewitt 115c6d29c66SChristian Hewitt&cpu0 { 116c6d29c66SChristian Hewitt cpu-supply = <&vddcpu_b>; 117c6d29c66SChristian Hewitt operating-points-v2 = <&cpu_opp_table_0>; 118c6d29c66SChristian Hewitt clocks = <&clkc CLKID_CPU_CLK>; 119c6d29c66SChristian Hewitt clock-latency = <50000>; 120c6d29c66SChristian Hewitt}; 121c6d29c66SChristian Hewitt 122c6d29c66SChristian Hewitt&cpu1 { 123c6d29c66SChristian Hewitt cpu-supply = <&vddcpu_b>; 124c6d29c66SChristian Hewitt operating-points-v2 = <&cpu_opp_table_0>; 125c6d29c66SChristian Hewitt clocks = <&clkc CLKID_CPU_CLK>; 126c6d29c66SChristian Hewitt clock-latency = <50000>; 127c6d29c66SChristian Hewitt}; 128c6d29c66SChristian Hewitt 129c6d29c66SChristian Hewitt&cpu100 { 130c6d29c66SChristian Hewitt cpu-supply = <&vddcpu_a>; 131c6d29c66SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 132c6d29c66SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 133c6d29c66SChristian Hewitt clock-latency = <50000>; 134c6d29c66SChristian Hewitt}; 135c6d29c66SChristian Hewitt 136c6d29c66SChristian Hewitt&cpu101 { 137c6d29c66SChristian Hewitt cpu-supply = <&vddcpu_a>; 138c6d29c66SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 139c6d29c66SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 140c6d29c66SChristian Hewitt clock-latency = <50000>; 141c6d29c66SChristian Hewitt}; 142c6d29c66SChristian Hewitt 143c6d29c66SChristian Hewitt&cpu102 { 144c6d29c66SChristian Hewitt cpu-supply = <&vddcpu_a>; 145c6d29c66SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 146c6d29c66SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 147c6d29c66SChristian Hewitt clock-latency = <50000>; 148c6d29c66SChristian Hewitt}; 149c6d29c66SChristian Hewitt 150c6d29c66SChristian Hewitt&cpu103 { 151c6d29c66SChristian Hewitt cpu-supply = <&vddcpu_a>; 152c6d29c66SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 153c6d29c66SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 154c6d29c66SChristian Hewitt clock-latency = <50000>; 155c6d29c66SChristian Hewitt}; 156c6d29c66SChristian Hewitt 157c6d29c66SChristian Hewitt&frddr_b { 158c6d29c66SChristian Hewitt status = "okay"; 159c6d29c66SChristian Hewitt}; 160c6d29c66SChristian Hewitt 161c6d29c66SChristian Hewitt&frddr_c { 162c6d29c66SChristian Hewitt status = "okay"; 163c6d29c66SChristian Hewitt}; 164c6d29c66SChristian Hewitt 165c6d29c66SChristian Hewitt&pwm_ab { 166c6d29c66SChristian Hewitt pinctrl-0 = <&pwm_a_e_pins>; 167c6d29c66SChristian Hewitt pinctrl-names = "default"; 168c6d29c66SChristian Hewitt clocks = <&xtal>; 169c6d29c66SChristian Hewitt clock-names = "clkin0"; 170c6d29c66SChristian Hewitt status = "okay"; 171c6d29c66SChristian Hewitt}; 172c6d29c66SChristian Hewitt 173c6d29c66SChristian Hewitt&pwm_AO_cd { 174c6d29c66SChristian Hewitt pinctrl-0 = <&pwm_ao_d_e_pins>; 175c6d29c66SChristian Hewitt pinctrl-names = "default"; 176c6d29c66SChristian Hewitt clocks = <&xtal>; 177c6d29c66SChristian Hewitt clock-names = "clkin1"; 178c6d29c66SChristian Hewitt status = "okay"; 179c6d29c66SChristian Hewitt}; 180c6d29c66SChristian Hewitt 181c6d29c66SChristian Hewitt&tdmif_b { 182c6d29c66SChristian Hewitt status = "okay"; 183c6d29c66SChristian Hewitt}; 184c6d29c66SChristian Hewitt 185c6d29c66SChristian Hewitt&tdmout_b { 186c6d29c66SChristian Hewitt status = "okay"; 187c6d29c66SChristian Hewitt}; 188c6d29c66SChristian Hewitt 189c6d29c66SChristian Hewitt&tohdmitx { 190c6d29c66SChristian Hewitt status = "okay"; 191c6d29c66SChristian Hewitt}; 192