162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2019 BayLibre, SAS 462306a36Sopenharmony_ci * Author: Neil Armstrong <narmstrong@baylibre.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/dts-v1/; 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include "meson-sm1.dtsi" 1062306a36Sopenharmony_ci#include "meson-khadas-vim3.dtsi" 1162306a36Sopenharmony_ci#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/ { 1462306a36Sopenharmony_ci compatible = "khadas,vim3l", "amlogic,sm1"; 1562306a36Sopenharmony_ci model = "Khadas VIM3L"; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci vddcpu: regulator-vddcpu { 1862306a36Sopenharmony_ci /* 1962306a36Sopenharmony_ci * Silergy SY8030DEC Regulator. 2062306a36Sopenharmony_ci */ 2162306a36Sopenharmony_ci compatible = "pwm-regulator"; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci regulator-name = "VDDCPU"; 2462306a36Sopenharmony_ci regulator-min-microvolt = <690000>; 2562306a36Sopenharmony_ci regulator-max-microvolt = <1050000>; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci pwm-supply = <&vsys_3v3>; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci pwms = <&pwm_AO_cd 1 1250 0>; 3062306a36Sopenharmony_ci pwm-dutycycle-range = <100 0>; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci regulator-boot-on; 3362306a36Sopenharmony_ci regulator-always-on; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci sound { 3762306a36Sopenharmony_ci model = "G12B-KHADAS-VIM3L"; 3862306a36Sopenharmony_ci audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 3962306a36Sopenharmony_ci "TDMOUT_A IN 1", "FRDDR_B OUT 0", 4062306a36Sopenharmony_ci "TDMOUT_A IN 2", "FRDDR_C OUT 0", 4162306a36Sopenharmony_ci "TDM_A Playback", "TDMOUT_A OUT", 4262306a36Sopenharmony_ci "TDMIN_A IN 0", "TDM_A Capture", 4362306a36Sopenharmony_ci "TDMIN_A IN 13", "TDM_A Loopback", 4462306a36Sopenharmony_ci "TODDR_A IN 0", "TDMIN_A OUT", 4562306a36Sopenharmony_ci "TODDR_B IN 0", "TDMIN_A OUT", 4662306a36Sopenharmony_ci "TODDR_C IN 0", "TDMIN_A OUT"; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci}; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci&cpu0 { 5162306a36Sopenharmony_ci cpu-supply = <&vddcpu>; 5262306a36Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 5362306a36Sopenharmony_ci clocks = <&clkc CLKID_CPU_CLK>; 5462306a36Sopenharmony_ci clock-latency = <50000>; 5562306a36Sopenharmony_ci}; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci&cpu1 { 5862306a36Sopenharmony_ci cpu-supply = <&vddcpu>; 5962306a36Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 6062306a36Sopenharmony_ci clocks = <&clkc CLKID_CPU1_CLK>; 6162306a36Sopenharmony_ci clock-latency = <50000>; 6262306a36Sopenharmony_ci}; 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci&cpu2 { 6562306a36Sopenharmony_ci cpu-supply = <&vddcpu>; 6662306a36Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 6762306a36Sopenharmony_ci clocks = <&clkc CLKID_CPU2_CLK>; 6862306a36Sopenharmony_ci clock-latency = <50000>; 6962306a36Sopenharmony_ci}; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci&cpu3 { 7262306a36Sopenharmony_ci cpu-supply = <&vddcpu>; 7362306a36Sopenharmony_ci operating-points-v2 = <&cpu_opp_table>; 7462306a36Sopenharmony_ci clocks = <&clkc CLKID_CPU3_CLK>; 7562306a36Sopenharmony_ci clock-latency = <50000>; 7662306a36Sopenharmony_ci}; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci&pwm_AO_cd { 7962306a36Sopenharmony_ci pinctrl-0 = <&pwm_ao_d_e_pins>; 8062306a36Sopenharmony_ci pinctrl-names = "default"; 8162306a36Sopenharmony_ci clocks = <&xtal>; 8262306a36Sopenharmony_ci clock-names = "clkin1"; 8362306a36Sopenharmony_ci status = "okay"; 8462306a36Sopenharmony_ci}; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci/* 8762306a36Sopenharmony_ci * The VIM3 on-board MCU can mux the PCIe/USB3.0 shared differential 8862306a36Sopenharmony_ci * lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between 8962306a36Sopenharmony_ci * an USB3.0 Type A connector and a M.2 Key M slot. 9062306a36Sopenharmony_ci * The PHY driving these differential lines is shared between 9162306a36Sopenharmony_ci * the USB3.0 controller and the PCIe Controller, thus only 9262306a36Sopenharmony_ci * a single controller can use it. 9362306a36Sopenharmony_ci * If the MCU is configured to mux the PCIe/USB3.0 differential lines 9462306a36Sopenharmony_ci * to the M.2 Key M slot, uncomment the following block to disable 9562306a36Sopenharmony_ci * USB3.0 from the USB Complex and enable the PCIe controller. 9662306a36Sopenharmony_ci * The End User is not expected to uncomment the following except for 9762306a36Sopenharmony_ci * testing purposes, but instead rely on the firmware/bootloader to 9862306a36Sopenharmony_ci * update these nodes accordingly if PCIe mode is selected by the MCU. 9962306a36Sopenharmony_ci */ 10062306a36Sopenharmony_ci/* 10162306a36Sopenharmony_ci&pcie { 10262306a36Sopenharmony_ci status = "okay"; 10362306a36Sopenharmony_ci}; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci&usb { 10662306a36Sopenharmony_ci phys = <&usb2_phy0>, <&usb2_phy1>; 10762306a36Sopenharmony_ci phy-names = "usb2-phy0", "usb2-phy1"; 10862306a36Sopenharmony_ci}; 10962306a36Sopenharmony_ci */ 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci&sd_emmc_a { 11262306a36Sopenharmony_ci sd-uhs-sdr50; 11362306a36Sopenharmony_ci}; 114