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};
78