1/*
2 * Copyright (c) 2016 Endless Computers, Inc.
3 * Author: Carlo Caione <carlo@endlessm.com>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 *  a) This library is free software; you can redistribute it and/or
11 *     modify it under the terms of the GNU General Public License as
12 *     published by the Free Software Foundation; either version 2 of the
13 *     License, or (at your option) any later version.
14 *
15 *     This library is distributed in the hope that it will be useful,
16 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 *     GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 *  b) Permission is hereby granted, free of charge, to any person
23 *     obtaining a copy of this software and associated documentation
24 *     files (the "Software"), to deal in the Software without
25 *     restriction, including without limitation the rights to use,
26 *     copy, modify, merge, publish, distribute, sublicense, and/or
27 *     sell copies of the Software, and to permit persons to whom the
28 *     Software is furnished to do so, subject to the following
29 *     conditions:
30 *
31 *     The above copyright notice and this permission notice shall be
32 *     included in all copies or substantial portions of the Software.
33 *
34 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 *     OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45
46#include <dt-bindings/input/input.h>
47
48#include "meson-gxl-s905d.dtsi"
49#include "meson-gx-p23x-q20x.dtsi"
50
51/ {
52	compatible = "amlogic,p230", "amlogic,s905d", "amlogic,meson-gxl";
53	model = "Amlogic Meson GXL (S905D) P230 Development Board";
54
55	adc-keys {
56		compatible = "adc-keys";
57		io-channels = <&saradc 0>;
58		io-channel-names = "buttons";
59		keyup-threshold-microvolt = <1710000>;
60
61		button-function {
62			label = "Update";
63			linux,code = <KEY_VENDOR>;
64			press-threshold-microvolt = <10000>;
65		};
66	};
67
68	gpio-keys-polled {
69		compatible = "gpio-keys-polled";
70		#address-cells = <1>;
71		#size-cells = <0>;
72		poll-interval = <100>;
73
74		button@0 {
75			label = "power";
76			linux,code = <KEY_POWER>;
77			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
78		};
79	};
80
81	vddio_ao18: regulator-vddio_ao18 {
82		compatible = "regulator-fixed";
83		regulator-name = "VDDIO_AO18";
84		regulator-min-microvolt = <1800000>;
85		regulator-max-microvolt = <1800000>;
86	};
87
88	hdmi-connector {
89		compatible = "hdmi-connector";
90		type = "a";
91
92		port {
93			hdmi_connector_in: endpoint {
94				remote-endpoint = <&hdmi_tx_tmds_out>;
95			};
96		};
97	};
98};
99
100&cec_AO {
101	status = "okay";
102	pinctrl-0 = <&ao_cec_pins>;
103	pinctrl-names = "default";
104	hdmi-phandle = <&hdmi_tx>;
105};
106
107/* P230 has exclusive choice between internal or external PHY */
108&ethmac {
109	pinctrl-0 = <&eth_pins>;
110	pinctrl-names = "default";
111
112	/* Select external PHY by default */
113	phy-handle = <&external_phy>;
114
115	amlogic,tx-delay-ns = <2>;
116
117	/* External PHY reset is shared with internal PHY Led signals */
118	snps,reset-gpio = <&gpio GPIOZ_14 0>;
119	snps,reset-delays-us = <0 10000 1000000>;
120	snps,reset-active-low;
121
122	/* External PHY is in RGMII */
123	phy-mode = "rgmii";
124};
125
126&external_mdio {
127	external_phy: ethernet-phy@0 {
128		compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
129		reg = <0>;
130		max-speed = <1000>;
131		interrupt-parent = <&gpio_intc>;
132		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
133	};
134};
135
136&hdmi_tx {
137	status = "okay";
138	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
139	pinctrl-names = "default";
140};
141
142&hdmi_tx_tmds_port {
143	hdmi_tx_tmds_out: endpoint {
144		remote-endpoint = <&hdmi_connector_in>;
145	};
146};
147
148&saradc {
149	status = "okay";
150	vref-supply = <&vddio_ao18>;
151};
152