/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright (c) 2023 YuLong Yao <feilongphone@gmail.com>
 */

#include <zephyr/dt-bindings/pwm/pwm.h>
#include <dt-bindings/pinctrl/esp32s3-pinctrl.h>

/ {
	aliases {
		pwm-0 = &ledc0;
		pwm-led0 = &pwm_led_blue;
	};

	pwmleds {
		compatible = "pwm-leds";
		pwm_led_blue: pwm_led_gpio0_10 {
			label = "PWM LED0";
			pwms = <&ledc0 0 1000 PWM_POLARITY_NORMAL>;
		};
	};
};

&pinctrl {
	ledc0_default: ledc0_default {
		group1 {
			pinmux = <LEDC_CH0_GPIO10>;
			output-enable;
		};
	};
};

&ledc0 {
	pinctrl-0 = <&ledc0_default>;
	pinctrl-names = "default";
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	channel0@0 {
		reg = <0x0>;
		timer = <0>;
	};
};
