blob: 1b0c3881c6a1019e888e06d6394c3cd7222e879c [file] [log] [blame]
Neil Armstrong6b80a682023-03-07 09:20:24 +01001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
4 */
5
6/dts-v1/;
7
8#include "meson-g12b-bananapi-cm4.dtsi"
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/leds/common.h>
11#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
12
13/ {
14 compatible = "bananapi,bpi-cm4io", "bananapi,bpi-cm4", "amlogic,a311d", "amlogic,g12b";
15 model = "BananaPi BPI-CM4IO Baseboard with BPI-CM4 Module";
16
17 aliases {
18 ethernet0 = &ethmac;
19 i2c0 = &i2c1;
20 i2c1 = &i2c3;
21 };
22
23 adc-keys {
24 compatible = "adc-keys";
25 io-channels = <&saradc 2>;
26 io-channel-names = "buttons";
27 keyup-threshold-microvolt = <1710000>;
28
29 button-function {
30 label = "Function";
31 linux,code = <KEY_FN>;
32 press-threshold-microvolt = <10000>;
33 };
34 };
35
36 hdmi_connector: hdmi-connector {
37 compatible = "hdmi-connector";
38 type = "a";
39
40 port {
41 hdmi_connector_in: endpoint {
42 remote-endpoint = <&hdmi_tx_tmds_out>;
43 };
44 };
45 };
46
47 leds {
48 compatible = "gpio-leds";
49
50 led-blue {
51 color = <LED_COLOR_ID_BLUE>;
52 function = LED_FUNCTION_STATUS;
53 gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
54 linux,default-trigger = "heartbeat";
55 };
56
57 led-green {
58 color = <LED_COLOR_ID_GREEN>;
59 function = LED_FUNCTION_STATUS;
60 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
61 };
62 };
63
64 sound {
65 compatible = "amlogic,axg-sound-card";
66 model = "BPI-CM4IO";
67 audio-aux-devs = <&tdmout_b>;
68 audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
69 "TDMOUT_B IN 1", "FRDDR_B OUT 1",
70 "TDMOUT_B IN 2", "FRDDR_C OUT 1",
71 "TDM_B Playback", "TDMOUT_B OUT";
72
73 assigned-clocks = <&clkc CLKID_MPLL2>,
74 <&clkc CLKID_MPLL0>,
75 <&clkc CLKID_MPLL1>;
76 assigned-clock-parents = <0>, <0>, <0>;
77 assigned-clock-rates = <294912000>,
78 <270950400>,
79 <393216000>;
80
81 dai-link-0 {
82 sound-dai = <&frddr_a>;
83 };
84
85 dai-link-1 {
86 sound-dai = <&frddr_b>;
87 };
88
89 dai-link-2 {
90 sound-dai = <&frddr_c>;
91 };
92
93 /* 8ch hdmi interface */
94 dai-link-3 {
95 sound-dai = <&tdmif_b>;
96 dai-format = "i2s";
97 dai-tdm-slot-tx-mask-0 = <1 1>;
98 dai-tdm-slot-tx-mask-1 = <1 1>;
99 dai-tdm-slot-tx-mask-2 = <1 1>;
100 dai-tdm-slot-tx-mask-3 = <1 1>;
101 mclk-fs = <256>;
102
103 codec {
104 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
105 };
106 };
107
108 /* hdmi glue */
109 dai-link-4 {
110 sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
111
112 codec {
113 sound-dai = <&hdmi_tx>;
114 };
115 };
116 };
117};
118
119&cecb_AO {
120 status = "okay";
121};
122
123&ethmac {
124 status = "okay";
125};
126
127&hdmi_tx {
128 status = "okay";
129};
130
131&hdmi_tx_tmds_port {
132 hdmi_tx_tmds_out: endpoint {
133 remote-endpoint = <&hdmi_connector_in>;
134 };
135};
136
137/* CSI port */
138&i2c1 {
139 status = "okay";
140};
141
142/* DSI port for touchscreen */
143&i2c3 {
144 status = "okay";
145};
146
147/* miniPCIe port with USB + SIM slot */
148&pcie {
149 status = "okay";
150};
151
152&sd_emmc_b {
153 status = "okay";
154};
155
156&tohdmitx {
157 status = "okay";
158};
159
160/* Peripheral Only USB-C port */
161&usb {
162 dr_mode = "peripheral";
163
164 status = "okay";
165};