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-gxm.dtsi"
49#include "meson-gx-p23x-q20x.dtsi"
50
51/ {
52	compatible = "amlogic,q200", "amlogic,s912", "amlogic,meson-gxm";
53	model = "Amlogic Meson GXM (S912) Q200 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
89/* Q200 has exclusive choice between internal or external PHY */
90&ethmac {
91	pinctrl-0 = <&eth_pins>;
92	pinctrl-names = "default";
93
94	/* Select external PHY by default */
95	phy-handle = <&external_phy>;
96
97	amlogic,tx-delay-ns = <2>;
98
99	/* External PHY reset is shared with internal PHY Led signals */
100	snps,reset-gpio = <&gpio GPIOZ_14 0>;
101	snps,reset-delays-us = <0 10000 1000000>;
102	snps,reset-active-low;
103
104	/* External PHY is in RGMII */
105	phy-mode = "rgmii";
106};
107
108&external_mdio {
109	external_phy: ethernet-phy@0 {
110		compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
111		reg = <0>;
112		max-speed = <1000>;
113		interrupt-parent = <&gpio_intc>;
114		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
115	};
116};
117
118&saradc {
119	status = "okay";
120	vref-supply = <&vddio_ao18>;
121};
122