162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Broadcom BCM470X / BCM5301X ARM platform code.
462306a36Sopenharmony_ci * DTS for Buffalo WZR-1166DHP and WZR-1166DHP2
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com>
762306a36Sopenharmony_ci * Copyright (C) 2022 SHIMAMOTO Takayoshi <takayoshi.shimamoto.360@gmail.com>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "bcm4708.dtsi"
1262306a36Sopenharmony_ci#include "bcm5301x-nand-cs0-bch8.dtsi"
1362306a36Sopenharmony_ci#include <dt-bindings/leds/common.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci/ {
1662306a36Sopenharmony_ci	spi {
1762306a36Sopenharmony_ci		compatible = "spi-gpio";
1862306a36Sopenharmony_ci		num-chipselects = <1>;
1962306a36Sopenharmony_ci		sck-gpios = <&chipcommon 7 0>;
2062306a36Sopenharmony_ci		mosi-gpios = <&chipcommon 4 0>;
2162306a36Sopenharmony_ci		cs-gpios = <&chipcommon 6 0>;
2262306a36Sopenharmony_ci		#address-cells = <1>;
2362306a36Sopenharmony_ci		#size-cells = <0>;
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci		hc595: gpio_spi@0 {
2662306a36Sopenharmony_ci			compatible = "fairchild,74hc595";
2762306a36Sopenharmony_ci			reg = <0>;
2862306a36Sopenharmony_ci			registers-number = <1>;
2962306a36Sopenharmony_ci			spi-max-frequency = <100000>;
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci			gpio-controller;
3262306a36Sopenharmony_ci			#gpio-cells = <2>;
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci		};
3562306a36Sopenharmony_ci	};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	leds {
3862306a36Sopenharmony_ci		compatible = "gpio-leds";
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci		led-usb {
4162306a36Sopenharmony_ci			/* label = "bcm53xx:blue:usb"; */
4262306a36Sopenharmony_ci			function = LED_FUNCTION_USB;
4362306a36Sopenharmony_ci			color = <LED_COLOR_ID_BLUE>;
4462306a36Sopenharmony_ci			gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
4562306a36Sopenharmony_ci			trigger-sources = <&ohci_port1>, <&ehci_port1>,
4662306a36Sopenharmony_ci					  <&xhci_port1>, <&ohci_port2>,
4762306a36Sopenharmony_ci					  <&ehci_port2>;
4862306a36Sopenharmony_ci			linux,default-trigger = "usbport";
4962306a36Sopenharmony_ci		};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci		led-power0 {
5262306a36Sopenharmony_ci			/* label = "bcm53xx:red:power"; */
5362306a36Sopenharmony_ci			function = LED_FUNCTION_FAULT;
5462306a36Sopenharmony_ci			color = <LED_COLOR_ID_RED>;
5562306a36Sopenharmony_ci			gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
5662306a36Sopenharmony_ci		};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		led-power1 {
5962306a36Sopenharmony_ci			/* label = "bcm53xx:white:power"; */
6062306a36Sopenharmony_ci			function = LED_FUNCTION_POWER;
6162306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
6262306a36Sopenharmony_ci			gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
6362306a36Sopenharmony_ci			linux,default-trigger = "default-on";
6462306a36Sopenharmony_ci		};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci		led-router0 {
6762306a36Sopenharmony_ci			/*  label = "bcm53xx:blue:router"; */
6862306a36Sopenharmony_ci			function = LED_FUNCTION_STATUS;
6962306a36Sopenharmony_ci			color = <LED_COLOR_ID_BLUE>;
7062306a36Sopenharmony_ci			gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
7162306a36Sopenharmony_ci			linux,default-trigger = "default-on";
7262306a36Sopenharmony_ci		};
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci		led-router1 {
7562306a36Sopenharmony_ci			/* label = "bcm53xx:amber:router"; */
7662306a36Sopenharmony_ci			function = LED_FUNCTION_STATUS;
7762306a36Sopenharmony_ci			color = <LED_COLOR_ID_AMBER>;
7862306a36Sopenharmony_ci			gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
7962306a36Sopenharmony_ci		};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci		led-wan {
8262306a36Sopenharmony_ci			/* label = "bcm53xx:blue:wan"; */
8362306a36Sopenharmony_ci			function = LED_FUNCTION_WAN;
8462306a36Sopenharmony_ci			color = <LED_COLOR_ID_BLUE>;
8562306a36Sopenharmony_ci			gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
8662306a36Sopenharmony_ci			linux,default-trigger = "default-on";
8762306a36Sopenharmony_ci		};
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci		led-wireless0 {
9062306a36Sopenharmony_ci			/* label = "bcm53xx:blue:wireless"; */
9162306a36Sopenharmony_ci			function = LED_FUNCTION_WLAN;
9262306a36Sopenharmony_ci			color = <LED_COLOR_ID_BLUE>;
9362306a36Sopenharmony_ci			gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
9462306a36Sopenharmony_ci		};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci		led-wireless1 {
9762306a36Sopenharmony_ci			/* label = "bcm53xx:amber:wireless"; */
9862306a36Sopenharmony_ci			function = LED_FUNCTION_WLAN;
9962306a36Sopenharmony_ci			color = <LED_COLOR_ID_AMBER>;
10062306a36Sopenharmony_ci			gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
10162306a36Sopenharmony_ci		};
10262306a36Sopenharmony_ci	};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci	gpio-keys {
10562306a36Sopenharmony_ci		compatible = "gpio-keys";
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci		button-restart {
10862306a36Sopenharmony_ci			label = "Reset";
10962306a36Sopenharmony_ci			linux,code = <KEY_RESTART>;
11062306a36Sopenharmony_ci			gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
11162306a36Sopenharmony_ci		};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci		button-aoss {
11462306a36Sopenharmony_ci			label = "AOSS";
11562306a36Sopenharmony_ci			linux,code = <KEY_WPS_BUTTON>;
11662306a36Sopenharmony_ci			gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
11762306a36Sopenharmony_ci		};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		/* Commit mode set by switch? */
12062306a36Sopenharmony_ci		button-mode {
12162306a36Sopenharmony_ci			label = "Mode";
12262306a36Sopenharmony_ci			linux,code = <KEY_SETUP>;
12362306a36Sopenharmony_ci			gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
12462306a36Sopenharmony_ci		};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci		/* Switch: AP mode */
12762306a36Sopenharmony_ci		button-sw-ap {
12862306a36Sopenharmony_ci			label = "AP";
12962306a36Sopenharmony_ci			linux,code = <BTN_0>;
13062306a36Sopenharmony_ci			gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
13162306a36Sopenharmony_ci		};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci		button-eject {
13462306a36Sopenharmony_ci			label = "USB eject";
13562306a36Sopenharmony_ci			linux,code = <KEY_EJECTCD>;
13662306a36Sopenharmony_ci			gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
13762306a36Sopenharmony_ci		};
13862306a36Sopenharmony_ci	};
13962306a36Sopenharmony_ci};
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci&usb2 {
14262306a36Sopenharmony_ci	vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
14362306a36Sopenharmony_ci};
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci&usb3 {
14662306a36Sopenharmony_ci	vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_LOW>;
14762306a36Sopenharmony_ci};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci&spi_nor {
15062306a36Sopenharmony_ci	status = "okay";
15162306a36Sopenharmony_ci};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci&usb3_phy {
15462306a36Sopenharmony_ci	status = "okay";
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci&srab {
15862306a36Sopenharmony_ci	status = "okay";
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci	ports {
16162306a36Sopenharmony_ci		port@0 {
16262306a36Sopenharmony_ci			label = "lan1";
16362306a36Sopenharmony_ci		};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci		port@1 {
16662306a36Sopenharmony_ci			label = "lan2";
16762306a36Sopenharmony_ci		};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci		port@2 {
17062306a36Sopenharmony_ci			label = "lan3";
17162306a36Sopenharmony_ci		};
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci		port@3 {
17462306a36Sopenharmony_ci			label = "lan4";
17562306a36Sopenharmony_ci		};
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci		port@4 {
17862306a36Sopenharmony_ci			label = "wan";
17962306a36Sopenharmony_ci		};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci		port@5 {
18262306a36Sopenharmony_ci			label = "cpu";
18362306a36Sopenharmony_ci		};
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci		port@7 {
18662306a36Sopenharmony_ci			status = "disabled";
18762306a36Sopenharmony_ci		};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci		port@8 {
19062306a36Sopenharmony_ci			status = "disabled";
19162306a36Sopenharmony_ci		};
19262306a36Sopenharmony_ci	};
19362306a36Sopenharmony_ci};
194