1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Mohammad Rasim <mohammad.rasim96@gmail.com>
4 */
5
6/dts-v1/;
7
8#include "meson-gxbb-p20x.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/leds/common.h>
12#include <dt-bindings/sound/meson-aiu.h>
13
14/ {
15	compatible = "videostrong,kii-pro", "amlogic,meson-gxbb";
16	model = "Videostrong KII Pro";
17
18	spdif_dit: audio-codec-0 {
19		#sound-dai-cells = <0>;
20		compatible = "linux,spdif-dit";
21		status = "okay";
22		sound-name-prefix = "DIT";
23	};
24
25	leds {
26		compatible = "gpio-leds";
27		led {
28			gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
29			color = <LED_COLOR_ID_RED>;
30			function = LED_FUNCTION_STATUS;
31			default-state = "off";
32		};
33	};
34
35	gpio-keys-polled {
36		compatible = "gpio-keys-polled";
37		poll-interval = <20>;
38
39		button-reset {
40			label = "reset";
41			linux,code = <KEY_POWER>;
42			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
43		};
44	};
45
46	sound {
47		compatible = "amlogic,gx-sound-card";
48		model = "KII-PRO";
49		assigned-clocks = <&clkc CLKID_MPLL0>,
50				  <&clkc CLKID_MPLL1>,
51				  <&clkc CLKID_MPLL2>;
52		assigned-clock-parents = <0>, <0>, <0>;
53		assigned-clock-rates = <294912000>,
54				       <270950400>,
55				       <393216000>;
56
57		dai-link-0 {
58			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
59		};
60
61		dai-link-1 {
62			sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
63		};
64
65		dai-link-2 {
66			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
67			dai-format = "i2s";
68			mclk-fs = <256>;
69
70			codec-0 {
71				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
72			};
73		};
74
75		dai-link-3 {
76			sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
77
78			codec-0 {
79				sound-dai = <&spdif_dit>;
80			};
81		};
82
83		dai-link-4 {
84			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
85
86			codec-0 {
87				sound-dai = <&hdmi_tx>;
88			};
89		};
90	};
91};
92
93&aiu {
94	status = "okay";
95	pinctrl-0 = <&spdif_out_y_pins>;
96	pinctrl-names = "default";
97};
98
99&ethmac {
100	status = "okay";
101	pinctrl-0 = <&eth_rmii_pins>;
102	pinctrl-names = "default";
103
104	phy-handle = <&eth_phy0>;
105	phy-mode = "rmii";
106
107	mdio {
108		compatible = "snps,dwmac-mdio";
109		#address-cells = <1>;
110		#size-cells = <0>;
111
112		eth_phy0: ethernet-phy@0 {
113			/* IC Plus IP101GR (0x02430c54) */
114			reg = <0>;
115			reset-assert-us = <10000>;
116			reset-deassert-us = <10000>;
117			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
118		};
119	};
120};
121
122&ir {
123	linux,rc-map-name = "rc-videostrong-kii-pro";
124};
125
126&uart_A {
127	status = "okay";
128	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
129	pinctrl-names = "default";
130	uart-has-rtscts;
131
132	bluetooth {
133		compatible = "brcm,bcm4335a0";
134		shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
135		host-wakeup-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>;
136		max-speed = <2000000>;
137		clocks = <&wifi32k>;
138		clock-names = "lpo";
139	};
140};
141