xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/meson-gxbb-p200.dts (revision b64c5a0ace59af62eff52bfe110a521dc73c937b)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 Andreas Färber
4 * Copyright (c) 2016 BayLibre, Inc.
5 * Author: Kevin Hilman <khilman@kernel.org>
6 */
7
8/dts-v1/;
9
10#include "meson-gxbb-p20x.dtsi"
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/sound/meson-aiu.h>
13
14/ {
15	compatible = "amlogic,p200", "amlogic,meson-gxbb";
16	model = "Amlogic Meson GXBB P200 Development Board";
17
18	spdif_dit: audio-codec-0 {
19		#sound-dai-cells = <0>;
20		compatible = "linux,spdif-dit";
21		sound-name-prefix = "DIT";
22	};
23
24	avdd18_usb_adc: regulator-avdd18_usb_adc {
25		compatible = "regulator-fixed";
26		regulator-name = "AVDD18_USB_ADC";
27		regulator-min-microvolt = <1800000>;
28		regulator-max-microvolt = <1800000>;
29	};
30
31	adc_keys {
32		compatible = "adc-keys";
33		io-channels = <&saradc 0>;
34		io-channel-names = "buttons";
35		keyup-threshold-microvolt = <1800000>;
36
37		button-home {
38			label = "Home";
39			linux,code = <KEY_HOME>;
40			press-threshold-microvolt = <900000>; /* 50% */
41		};
42
43		button-esc {
44			label = "Esc";
45			linux,code = <KEY_ESC>;
46			press-threshold-microvolt = <684000>; /* 38% */
47		};
48
49		button-up {
50			label = "Volume Up";
51			linux,code = <KEY_VOLUMEUP>;
52			press-threshold-microvolt = <468000>; /* 26% */
53		};
54
55		button-down {
56			label = "Volume Down";
57			linux,code = <KEY_VOLUMEDOWN>;
58			press-threshold-microvolt = <252000>; /* 14% */
59		};
60
61		button-menu {
62			label = "Menu";
63			linux,code = <KEY_MENU>;
64			press-threshold-microvolt = <0>; /* 0% */
65		};
66	};
67
68	sound {
69		compatible = "amlogic,gx-sound-card";
70		model = "P200";
71		assigned-clocks = <&clkc CLKID_MPLL0>,
72				  <&clkc CLKID_MPLL1>,
73				  <&clkc CLKID_MPLL2>;
74		assigned-clock-parents = <0>, <0>, <0>;
75		assigned-clock-rates = <294912000>,
76				       <270950400>,
77				       <393216000>;
78
79		dai-link-0 {
80			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
81		};
82
83		dai-link-1 {
84			sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
85		};
86
87		dai-link-2 {
88			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
89			dai-format = "i2s";
90			mclk-fs = <256>;
91
92			codec-0 {
93				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
94			};
95		};
96
97		dai-link-3 {
98			sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
99
100			codec-0 {
101				sound-dai = <&spdif_dit>;
102			};
103		};
104
105		dai-link-4 {
106			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
107
108			codec-0 {
109				sound-dai = <&hdmi_tx>;
110			};
111		};
112	};
113};
114
115&aiu {
116	status = "okay";
117	pinctrl-0 = <&spdif_out_y_pins>;
118	pinctrl-names = "default";
119};
120
121&ethmac {
122	status = "okay";
123	pinctrl-0 = <&eth_rgmii_pins>;
124	pinctrl-names = "default";
125	phy-handle = <&eth_phy0>;
126	phy-mode = "rgmii";
127
128	amlogic,tx-delay-ns = <2>;
129
130	mdio {
131		compatible = "snps,dwmac-mdio";
132		#address-cells = <1>;
133		#size-cells = <0>;
134
135		eth_phy0: ethernet-phy@3 {
136			/* Micrel KSZ9031 (0x00221620) */
137			reg = <3>;
138
139			reset-assert-us = <10000>;
140			reset-deassert-us = <30000>;
141			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
142
143			interrupt-parent = <&gpio_intc>;
144			/* MAC_INTR on GPIOZ_15 */
145			interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
146		};
147	};
148};
149
150&i2c_B {
151	status = "okay";
152	pinctrl-0 = <&i2c_b_pins>;
153	pinctrl-names = "default";
154};
155
156&saradc {
157	status = "okay";
158	vref-supply = <&avdd18_usb_adc>;
159};
160