| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
 | /* | 
 |  * Copyright (c) 2021 Vyacheslav Bocharov <adeep@lexina.in> | 
 |  * Copyright (c) 2020 JetHome | 
 |  * Author: Aleksandr Kazantsev <ak@tvip.ru> | 
 |  * Author: Alexey Shevelkin <ash@tvip.ru> | 
 |  * Author: Vyacheslav Bocharov <adeep@lexina.in> | 
 |  */ | 
 |  | 
 | /dts-v1/; | 
 |  | 
 | #include "meson-gxl.dtsi" | 
 |  | 
 | / { | 
 | 	compatible = "jethome,jethub-j80", "amlogic,s905w", "amlogic,meson-gxl"; | 
 | 	model = "JetHome JetHub J80"; | 
 | 	memory@0 { | 
 | 		device_type = "memory"; | 
 | 		reg = <0x0 0x0 0x0 0x40000000>; | 
 | 	}; | 
 |  | 
 | 	reserved-memory { | 
 | 		linux,cma { | 
 | 			size = <0x0 0x1000000>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	aliases { | 
 | 		serial0 = &uart_AO;   /* Console */ | 
 | 		serial1 = &uart_A;    /* Bluetooth */ | 
 | 		serial2 = &uart_AO_B; /* Wireless module 1 */ | 
 | 		serial3 = &uart_C;    /* Wireless module 2 */ | 
 | 		ethernet0 = ðmac; | 
 | 	}; | 
 |  | 
 | 	chosen { | 
 | 		stdout-path = "serial0:115200n8"; | 
 | 	}; | 
 |  | 
 | 	vddio_ao18: regulator-vddio-ao18 { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-name = "VDDIO_AO18"; | 
 | 		regulator-min-microvolt = <1800000>; | 
 | 		regulator-max-microvolt = <1800000>; | 
 | 	}; | 
 |  | 
 | 	vddio_boot: regulator-vddio-boot { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-name = "VDDIO_BOOT"; | 
 | 		regulator-min-microvolt = <1800000>; | 
 | 		regulator-max-microvolt = <1800000>; | 
 | 	}; | 
 |  | 
 | 	vddao_3v3: regulator-vddao-3v3 { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-name = "VDDAO_3V3"; | 
 | 		regulator-min-microvolt = <3300000>; | 
 | 		regulator-max-microvolt = <3300000>; | 
 | 	}; | 
 |  | 
 | 	vcc_3v3: regulator-vcc-3v3 { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-name = "VCC_3V3"; | 
 | 		regulator-min-microvolt = <3300000>; | 
 | 		regulator-max-microvolt = <3300000>; | 
 | 	}; | 
 |  | 
 | 	emmc_pwrseq: emmc-pwrseq { | 
 | 		compatible = "mmc-pwrseq-emmc"; | 
 | 		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | 
 | 	}; | 
 |  | 
 | 	wifi32k: wifi32k { | 
 | 		compatible = "pwm-clock"; | 
 | 		#clock-cells = <0>; | 
 | 		clock-frequency = <32768>; | 
 | 		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | 
 | 	}; | 
 |  | 
 | 	sdio_pwrseq: sdio-pwrseq { | 
 | 		compatible = "mmc-pwrseq-simple"; | 
 | 		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | 
 | 		clocks = <&wifi32k>; | 
 | 		clock-names = "ext_clock"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &efuse { | 
 | 	bt_mac: bt-mac@6 { | 
 | 		reg = <0x6 0x6>; | 
 | 	}; | 
 |  | 
 | 	wifi_mac: wifi-mac@c { | 
 | 		reg = <0xc 0x6>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &sn { | 
 | 	reg = <0x32 0x20>; | 
 | }; | 
 |  | 
 | ð_mac { | 
 | 	reg = <0x0 0x6>; | 
 | }; | 
 |  | 
 | &bid { | 
 | 	reg = <0x12 0x20>; | 
 | }; | 
 |  | 
 | &usb { | 
 | 	status = "okay"; | 
 | 	dr_mode = "host"; | 
 | }; | 
 |  | 
 | &pwm_ef { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&pwm_e_pins>; | 
 | 	pinctrl-names = "default"; | 
 | 	clocks = <&clkc CLKID_FCLK_DIV4>; | 
 | 	clock-names = "clkin0"; | 
 | }; | 
 |  | 
 | &saradc { | 
 | 	status = "okay"; | 
 | 	vref-supply = <&vddio_ao18>; | 
 | }; | 
 |  | 
 | /* Wireless SDIO Module */ | 
 | &sd_emmc_a { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&sdio_pins>; | 
 | 	pinctrl-1 = <&sdio_clk_gate_pins>; | 
 | 	pinctrl-names = "default", "clk-gate"; | 
 | 	#address-cells = <1>; | 
 | 	#size-cells = <0>; | 
 |  | 
 | 	bus-width = <4>; | 
 | 	cap-sd-highspeed; | 
 | 	max-frequency = <50000000>; | 
 |  | 
 | 	non-removable; | 
 | 	disable-wp; | 
 |  | 
 | 	/* WiFi firmware requires power to be kept while in suspend */ | 
 | 	keep-power-in-suspend; | 
 |  | 
 | 	mmc-pwrseq = <&sdio_pwrseq>; | 
 |  | 
 | 	vmmc-supply = <&vddao_3v3>; | 
 | 	vqmmc-supply = <&vddio_boot>; | 
 | }; | 
 |  | 
 | /* SD card */ | 
 | &sd_emmc_b { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&sdcard_pins>; | 
 | 	pinctrl-1 = <&sdcard_clk_gate_pins>; | 
 | 	pinctrl-names = "default", "clk-gate"; | 
 |  | 
 | 	bus-width = <4>; | 
 | 	cap-sd-highspeed; | 
 | 	max-frequency = <50000000>; | 
 | 	disable-wp; | 
 |  | 
 | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 
 |  | 
 | 	vmmc-supply = <&vddao_3v3>; | 
 | 	vqmmc-supply = <&vddio_boot>; | 
 | }; | 
 |  | 
 | /* eMMC */ | 
 | &sd_emmc_c { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | 
 | 	pinctrl-1 = <&emmc_clk_gate_pins>; | 
 | 	pinctrl-names = "default", "clk-gate"; | 
 |  | 
 | 	bus-width = <8>; | 
 | 	cap-mmc-highspeed; | 
 | 	max-frequency = <200000000>; | 
 | 	non-removable; | 
 | 	disable-wp; | 
 | 	mmc-ddr-1_8v; | 
 | 	mmc-hs200-1_8v; | 
 |  | 
 | 	mmc-pwrseq = <&emmc_pwrseq>; | 
 | 	vmmc-supply = <&vcc_3v3>; | 
 | 	vqmmc-supply = <&vddio_boot>; | 
 | }; | 
 |  | 
 | /* Console UART */ | 
 | &uart_AO { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&uart_ao_a_pins>; | 
 | 	pinctrl-names = "default"; | 
 | }; | 
 |  | 
 | /* S905W only has access to its internal PHY */ | 
 | ðmac { | 
 | 	status = "okay"; | 
 | 	phy-mode = "rmii"; | 
 | 	phy-handle = <&internal_phy>; | 
 | }; | 
 |  | 
 | &internal_phy { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; | 
 | 	pinctrl-names = "default"; | 
 | }; | 
 |  | 
 | &uart_A { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | 
 | 	pinctrl-names = "default"; | 
 | 	uart-has-rtscts; | 
 |  | 
 | 	bluetooth { | 
 | 		compatible = "realtek,rtl8822cs-bt"; | 
 | 		enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | 
 | 		host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; | 
 |        }; | 
 | }; | 
 |  | 
 | &uart_C { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&uart_c_pins>; | 
 | 	pinctrl-names = "default"; | 
 | }; | 
 |  | 
 | &uart_AO_B { | 
 | 	status = "okay"; | 
 | 	pinctrl-0 = <&uart_ao_b_pins>, <&uart_ao_b_cts_rts_pins>; | 
 | 	pinctrl-names = "default"; | 
 | 	uart-has-rtscts; | 
 | }; | 
 |  | 
 | &i2c_B { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&i2c_b_pins>; | 
 |  | 
 | 	pcf8563: rtc@51 { | 
 | 		compatible = "nxp,pcf8563"; | 
 | 		reg = <0x51>; | 
 | 		status = "okay"; | 
 | 	}; | 
 | }; |