1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree file for Google Chromecast
4*724ba675SRob Herring *
5*724ba675SRob Herring * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring/dts-v1/;
9*724ba675SRob Herring
10*724ba675SRob Herring#include "berlin2cd.dtsi"
11*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
12*724ba675SRob Herring
13*724ba675SRob Herring/ {
14*724ba675SRob Herring	model = "Google Chromecast";
15*724ba675SRob Herring	compatible = "google,chromecast", "marvell,berlin2cd", "marvell,berlin";
16*724ba675SRob Herring
17*724ba675SRob Herring	chosen {
18*724ba675SRob Herring		bootargs = "earlyprintk";
19*724ba675SRob Herring		stdout-path = "serial0:115200n8";
20*724ba675SRob Herring	};
21*724ba675SRob Herring
22*724ba675SRob Herring	memory@0 {
23*724ba675SRob Herring		device_type = "memory";
24*724ba675SRob Herring
25*724ba675SRob Herring		/*
26*724ba675SRob Herring		 * We're using "linux,usable-memory" instead of "reg" here
27*724ba675SRob Herring		 * because the (signed and encrypted) bootloader that shipped
28*724ba675SRob Herring		 * with this device provides an incorrect memory range in
29*724ba675SRob Herring		 * ATAG_MEM. Linux helpfully overrides the "reg" property with
30*724ba675SRob Herring		 * data from the ATAG, so we can't specify the proper range
31*724ba675SRob Herring		 * normally. Fortunately, this alternate property is checked
32*724ba675SRob Herring		 * first by the OF driver, so we can (ab)use it instead.
33*724ba675SRob Herring		 */
34*724ba675SRob Herring		linux,usable-memory = <0x00000000 0x20000000>; /* 512 MB */
35*724ba675SRob Herring	};
36*724ba675SRob Herring
37*724ba675SRob Herring	led-controller {
38*724ba675SRob Herring		compatible = "pwm-leds";
39*724ba675SRob Herring		pinctrl-0 = <&ledpwm_pmux>;
40*724ba675SRob Herring		pinctrl-names = "default";
41*724ba675SRob Herring
42*724ba675SRob Herring		led-1 {
43*724ba675SRob Herring			label = "white";
44*724ba675SRob Herring			pwms = <&pwm 0 600000 0>;
45*724ba675SRob Herring			max-brightness = <255>;
46*724ba675SRob Herring			linux,default-trigger = "default-on";
47*724ba675SRob Herring		};
48*724ba675SRob Herring
49*724ba675SRob Herring		led-2 {
50*724ba675SRob Herring			label = "red";
51*724ba675SRob Herring			pwms = <&pwm 1 600000 0>;
52*724ba675SRob Herring			max-brightness = <255>;
53*724ba675SRob Herring		};
54*724ba675SRob Herring	};
55*724ba675SRob Herring};
56*724ba675SRob Herring
57*724ba675SRob Herring/*
58*724ba675SRob Herring * AzureWave AW-NH387 (Marvell 88W8787)
59*724ba675SRob Herring * 802.11b/g/n + Bluetooth 2.1
60*724ba675SRob Herring */
61*724ba675SRob Herring&sdhci0 {
62*724ba675SRob Herring	non-removable;
63*724ba675SRob Herring	status = "okay";
64*724ba675SRob Herring};
65*724ba675SRob Herring
66*724ba675SRob Herring&uart0 { status = "okay"; };
67*724ba675SRob Herring
68*724ba675SRob Herring&usb_phy1 { status = "okay"; };
69*724ba675SRob Herring
70*724ba675SRob Herring&usb1 { status = "okay"; };
71*724ba675SRob Herring
72*724ba675SRob Herring&soc_pinctrl {
73*724ba675SRob Herring	ledpwm_pmux: ledpwm-pmux {
74*724ba675SRob Herring		groups = "G0";
75*724ba675SRob Herring		function = "pwm";
76*724ba675SRob Herring	};
77*724ba675SRob Herring};
78