/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright (c) 2021 Andrei-Edward Popa
 * Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd.
 */

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

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

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

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

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