// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) Christian Hewitt <christianshewitt@gmail.com>
 */

/dts-v1/;

#include "meson-gxl-s905d.dtsi"
#include "meson-gx-p23x-q20x.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	compatible = "smartlabs,sml5442tw", "amlogic,s905d", "amlogic,meson-gxl";
	model = "SmartLabs SML-5442TW";

	leds {
		compatible = "gpio-leds";

		led-yellow {
			color = <LED_COLOR_ID_YELLOW>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-blue {
			color = <LED_COLOR_ID_BLUE>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-green {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		led-red {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};
};

&ethmac {
	status = "okay";
	phy-mode = "rmii";
	phy-handle = <&internal_phy>;
};

&i2c_A {
	status = "okay";
	pinctrl-0 = <&i2c_a_pins>;
	pinctrl-names = "default";
};

&internal_phy {
	pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
	pinctrl-names = "default";
};

&ir {
        linux,rc-map-name = "rc-khamsin";
};

/* This is connected to the Bluetooth module: */
&uart_A {
	status = "okay";
	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
	pinctrl-names = "default";
	uart-has-rtscts;

	bluetooth {
		compatible = "qcom,qca9377-bt";
		enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
		max-speed = <2000000>;
		clocks = <&wifi32k>;
		clock-names = "lpo";
	};
};
