1*a702d4f0SJerome Brunet// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*a702d4f0SJerome Brunet/* 3*a702d4f0SJerome Brunet * Copyright (c) 2023 BayLibre, SAS. 4*a702d4f0SJerome Brunet * Author: Jerome Brunet <jbrunet@baylibre.com> 5*a702d4f0SJerome Brunet */ 6*a702d4f0SJerome Brunet 7*a702d4f0SJerome Brunet/dts-v1/; 8*a702d4f0SJerome Brunet 9*a702d4f0SJerome Brunet#include <dt-bindings/clock/g12a-clkc.h> 10*a702d4f0SJerome Brunet#include "meson-g12b-a311d.dtsi" 11*a702d4f0SJerome Brunet#include "meson-libretech-cottonwood.dtsi" 12*a702d4f0SJerome Brunet 13*a702d4f0SJerome Brunet/ { 14*a702d4f0SJerome Brunet compatible = "libretech,aml-a311d-cc", "amlogic,a311d", "amlogic,g12b"; 15*a702d4f0SJerome Brunet model = "Libre Computer AML-A311D-CC Alta"; 16*a702d4f0SJerome Brunet 17*a702d4f0SJerome Brunet vddcpu_a: regulator-vddcpu-a { 18*a702d4f0SJerome Brunet compatible = "pwm-regulator"; 19*a702d4f0SJerome Brunet regulator-name = "VDDCPU_A"; 20*a702d4f0SJerome Brunet regulator-min-microvolt = <730000>; 21*a702d4f0SJerome Brunet regulator-max-microvolt = <1011000>; 22*a702d4f0SJerome Brunet regulator-boot-on; 23*a702d4f0SJerome Brunet regulator-always-on; 24*a702d4f0SJerome Brunet pwm-supply = <&dc_in>; 25*a702d4f0SJerome Brunet pwms = <&pwm_ab 0 1250 0>; 26*a702d4f0SJerome Brunet pwm-dutycycle-range = <100 0>; 27*a702d4f0SJerome Brunet }; 28*a702d4f0SJerome Brunet 29*a702d4f0SJerome Brunet sound { 30*a702d4f0SJerome Brunet model = "LC-ALTA"; 31*a702d4f0SJerome Brunet audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 32*a702d4f0SJerome Brunet "TDMOUT_A IN 1", "FRDDR_B OUT 0", 33*a702d4f0SJerome Brunet "TDMOUT_A IN 2", "FRDDR_C OUT 0", 34*a702d4f0SJerome Brunet "TDM_A Playback", "TDMOUT_A OUT", 35*a702d4f0SJerome Brunet "TDMOUT_B IN 0", "FRDDR_A OUT 1", 36*a702d4f0SJerome Brunet "TDMOUT_B IN 1", "FRDDR_B OUT 1", 37*a702d4f0SJerome Brunet "TDMOUT_B IN 2", "FRDDR_C OUT 1", 38*a702d4f0SJerome Brunet "TDM_B Playback", "TDMOUT_B OUT", 39*a702d4f0SJerome Brunet "TDMOUT_C IN 0", "FRDDR_A OUT 2", 40*a702d4f0SJerome Brunet "TDMOUT_C IN 1", "FRDDR_B OUT 2", 41*a702d4f0SJerome Brunet "TDMOUT_C IN 2", "FRDDR_C OUT 2", 42*a702d4f0SJerome Brunet "TDM_C Playback", "TDMOUT_C OUT", 43*a702d4f0SJerome Brunet "TDMIN_A IN 0", "TDM_A Capture", 44*a702d4f0SJerome Brunet "TDMIN_B IN 0", "TDM_A Capture", 45*a702d4f0SJerome Brunet "TDMIN_C IN 0", "TDM_A Capture", 46*a702d4f0SJerome Brunet "TDMIN_A IN 3", "TDM_A Loopback", 47*a702d4f0SJerome Brunet "TDMIN_B IN 3", "TDM_A Loopback", 48*a702d4f0SJerome Brunet "TDMIN_C IN 3", "TDM_A Loopback", 49*a702d4f0SJerome Brunet "TDMIN_A IN 1", "TDM_B Capture", 50*a702d4f0SJerome Brunet "TDMIN_B IN 1", "TDM_B Capture", 51*a702d4f0SJerome Brunet "TDMIN_C IN 1", "TDM_B Capture", 52*a702d4f0SJerome Brunet "TDMIN_A IN 4", "TDM_B Loopback", 53*a702d4f0SJerome Brunet "TDMIN_B IN 4", "TDM_B Loopback", 54*a702d4f0SJerome Brunet "TDMIN_C IN 4", "TDM_B Loopback", 55*a702d4f0SJerome Brunet "TDMIN_A IN 2", "TDM_C Capture", 56*a702d4f0SJerome Brunet "TDMIN_B IN 2", "TDM_C Capture", 57*a702d4f0SJerome Brunet "TDMIN_C IN 2", "TDM_C Capture", 58*a702d4f0SJerome Brunet "TDMIN_A IN 5", "TDM_C Loopback", 59*a702d4f0SJerome Brunet "TDMIN_B IN 5", "TDM_C Loopback", 60*a702d4f0SJerome Brunet "TDMIN_C IN 5", "TDM_C Loopback", 61*a702d4f0SJerome Brunet "TODDR_A IN 0", "TDMIN_A OUT", 62*a702d4f0SJerome Brunet "TODDR_B IN 0", "TDMIN_A OUT", 63*a702d4f0SJerome Brunet "TODDR_C IN 0", "TDMIN_A OUT", 64*a702d4f0SJerome Brunet "TODDR_A IN 1", "TDMIN_B OUT", 65*a702d4f0SJerome Brunet "TODDR_B IN 1", "TDMIN_B OUT", 66*a702d4f0SJerome Brunet "TODDR_C IN 1", "TDMIN_B OUT", 67*a702d4f0SJerome Brunet "TODDR_A IN 2", "TDMIN_C OUT", 68*a702d4f0SJerome Brunet "TODDR_B IN 2", "TDMIN_C OUT", 69*a702d4f0SJerome Brunet "TODDR_C IN 2", "TDMIN_C OUT", 70*a702d4f0SJerome Brunet "Lineout", "ACODEC LOLP", 71*a702d4f0SJerome Brunet "Lineout", "ACODEC LORP"; 72*a702d4f0SJerome Brunet }; 73*a702d4f0SJerome Brunet}; 74*a702d4f0SJerome Brunet 75*a702d4f0SJerome Brunet&cpu0 { 76*a702d4f0SJerome Brunet cpu-supply = <&vddcpu_b>; 77*a702d4f0SJerome Brunet operating-points-v2 = <&cpu_opp_table_0>; 78*a702d4f0SJerome Brunet clocks = <&clkc CLKID_CPU_CLK>; 79*a702d4f0SJerome Brunet}; 80*a702d4f0SJerome Brunet 81*a702d4f0SJerome Brunet&cpu1 { 82*a702d4f0SJerome Brunet cpu-supply = <&vddcpu_b>; 83*a702d4f0SJerome Brunet operating-points-v2 = <&cpu_opp_table_0>; 84*a702d4f0SJerome Brunet clocks = <&clkc CLKID_CPU_CLK>; 85*a702d4f0SJerome Brunet}; 86*a702d4f0SJerome Brunet 87*a702d4f0SJerome Brunet&cpu100 { 88*a702d4f0SJerome Brunet cpu-supply = <&vddcpu_a>; 89*a702d4f0SJerome Brunet operating-points-v2 = <&cpub_opp_table_1>; 90*a702d4f0SJerome Brunet clocks = <&clkc CLKID_CPUB_CLK>; 91*a702d4f0SJerome Brunet}; 92*a702d4f0SJerome Brunet 93*a702d4f0SJerome Brunet&cpu101 { 94*a702d4f0SJerome Brunet cpu-supply = <&vddcpu_a>; 95*a702d4f0SJerome Brunet operating-points-v2 = <&cpub_opp_table_1>; 96*a702d4f0SJerome Brunet clocks = <&clkc CLKID_CPUB_CLK>; 97*a702d4f0SJerome Brunet}; 98*a702d4f0SJerome Brunet 99*a702d4f0SJerome Brunet&cpu102 { 100*a702d4f0SJerome Brunet cpu-supply = <&vddcpu_a>; 101*a702d4f0SJerome Brunet operating-points-v2 = <&cpub_opp_table_1>; 102*a702d4f0SJerome Brunet clocks = <&clkc CLKID_CPUB_CLK>; 103*a702d4f0SJerome Brunet}; 104*a702d4f0SJerome Brunet 105*a702d4f0SJerome Brunet&cpu103 { 106*a702d4f0SJerome Brunet cpu-supply = <&vddcpu_a>; 107*a702d4f0SJerome Brunet operating-points-v2 = <&cpub_opp_table_1>; 108*a702d4f0SJerome Brunet clocks = <&clkc CLKID_CPUB_CLK>; 109*a702d4f0SJerome Brunet}; 110*a702d4f0SJerome Brunet 111*a702d4f0SJerome Brunet&pwm_ab { 112*a702d4f0SJerome Brunet pinctrl-0 = <&pwm_a_e_pins>, <&pwm_b_x7_pins>; 113*a702d4f0SJerome Brunet}; 114