Loading...
1/*
2 * Device Tree file for Google Chromecast
3 *
4 * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is licensed under the terms of the GNU General Public
12 * License version 2. This program is licensed "as is" without any
13 * warranty of any kind, whether express or implied.
14 *
15 * Or, alternatively,
16 *
17 * b) Permission is hereby granted, free of charge, to any person
18 * obtaining a copy of this software and associated documentation
19 * files (the "Software"), to deal in the Software without
20 * restriction, including without limitation the rights to use,
21 * copy, modify, merge, publish, distribute, sublicense, and/or
22 * sell copies of the Software, and to permit persons to whom the
23 * Software is furnished to do so, subject to the following
24 * conditions:
25 *
26 * The above copyright notice and this permission notice shall be
27 * included in all copies or substantial portions of the Software.
28 *
29 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
30 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
31 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
32 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
33 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
34 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
35 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
36 * OTHER DEALINGS IN THE SOFTWARE.
37 */
38
39/dts-v1/;
40
41#include "berlin2cd.dtsi"
42#include <dt-bindings/gpio/gpio.h>
43
44/ {
45 model = "Google Chromecast";
46 compatible = "google,chromecast", "marvell,berlin2cd", "marvell,berlin";
47
48 chosen {
49 bootargs = "earlyprintk";
50 stdout-path = "serial0:115200n8";
51 };
52
53 memory@0 {
54 device_type = "memory";
55 reg = <0x00000000 0x20000000>; /* 512 MB */
56 };
57
58 leds {
59 compatible = "gpio-leds";
60
61 white {
62 label = "white";
63 gpios = <&portc 1 GPIO_ACTIVE_HIGH>;
64 default-state = "keep";
65 };
66
67 red {
68 label = "red";
69 gpios = <&portc 2 GPIO_ACTIVE_HIGH>;
70 default-state = "keep";
71 };
72 };
73};
74
75/*
76 * AzureWave AW-NH387 (Marvell 88W8787)
77 * 802.11b/g/n + Bluetooth 2.1
78 */
79&sdhci0 {
80 non-removable;
81 status = "okay";
82};
83
84&uart0 { status = "okay"; };
85
86&usb_phy1 { status = "okay"; };
87
88&usb1 { status = "okay"; };
1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Device Tree file for Google Chromecast
4 *
5 * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
6 */
7
8/dts-v1/;
9
10#include "berlin2cd.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12
13/ {
14 model = "Google Chromecast";
15 compatible = "google,chromecast", "marvell,berlin2cd", "marvell,berlin";
16
17 chosen {
18 bootargs = "earlyprintk";
19 stdout-path = "serial0:115200n8";
20 };
21
22 memory@0 {
23 device_type = "memory";
24
25 /*
26 * We're using "linux,usable-memory" instead of "reg" here
27 * because the (signed and encrypted) bootloader that shipped
28 * with this device provides an incorrect memory range in
29 * ATAG_MEM. Linux helpfully overrides the "reg" property with
30 * data from the ATAG, so we can't specify the proper range
31 * normally. Fortunately, this alternate property is checked
32 * first by the OF driver, so we can (ab)use it instead.
33 */
34 linux,usable-memory = <0x00000000 0x20000000>; /* 512 MB */
35 };
36
37 led-controller {
38 compatible = "pwm-leds";
39 pinctrl-0 = <&ledpwm_pmux>;
40 pinctrl-names = "default";
41
42 led-1 {
43 label = "white";
44 pwms = <&pwm 0 600000 0>;
45 max-brightness = <255>;
46 linux,default-trigger = "default-on";
47 };
48
49 led-2 {
50 label = "red";
51 pwms = <&pwm 1 600000 0>;
52 max-brightness = <255>;
53 };
54 };
55};
56
57/*
58 * AzureWave AW-NH387 (Marvell 88W8787)
59 * 802.11b/g/n + Bluetooth 2.1
60 */
61&sdhci0 {
62 non-removable;
63 status = "okay";
64};
65
66&uart0 { status = "okay"; };
67
68&usb_phy1 { status = "okay"; };
69
70&usb1 { status = "okay"; };
71
72&soc_pinctrl {
73 ledpwm_pmux: ledpwm-pmux {
74 groups = "G0";
75 function = "pwm";
76 };
77};