82 lines
2.1 KiB
Plaintext
82 lines
2.1 KiB
Plaintext
/*
|
|
* Copyright (c) 2023 Microchip Technology Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr/dt-bindings/pwm/pwm.h>
|
|
|
|
/* MEC152x EVB
|
|
* BBLED controller 0 uses GPIO156/LED0 connected to JP31-13
|
|
* BBLED controller 1 uses GPIO157/LED1 connected to JP31-15
|
|
* BBLED controller 2 uses GPIO153/LED2 connected to JP31-17
|
|
*
|
|
* BBLED hardware divides input clock (32KHz or 48MHz) by (256 * (prescalar+1)
|
|
* and implements duty cycle for blink mode as an 8-bit value where 0 is off and
|
|
* 255 full on. BBLED PWM is 8-bit.
|
|
* BBLED-PWM driver get cycles API reports 32KHz/256 or 48M/256.
|
|
* Due to all the above we use 50 ms for DT PWM period.
|
|
*/
|
|
|
|
/* PWM_SEC(1) PWM_USEC(7812) */
|
|
/ {
|
|
pwmleds {
|
|
compatible = "pwm-leds";
|
|
/* struct pwm_dt_spec: phandle channel period(ns) flags */
|
|
bbled_pwm0: bbled_pwm0 {
|
|
pwms = <&bbled0 0 PWM_MSEC(50) PWM_POLARITY_NORMAL>;
|
|
};
|
|
bbled_pwm1: bbled_pwm1 {
|
|
pwms = <&bbled1 0 PWM_MSEC(50) PWM_POLARITY_NORMAL>;
|
|
};
|
|
bbled_pwm2: bbled_pwm2 {
|
|
pwms = <&bbled2 0 PWM_MSEC(50) PWM_POLARITY_NORMAL>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
led0_gpio156_invert: led0_gpio156_invert {
|
|
pinmux = <MCHP_XEC_PINMUX(0156, MCHP_AF1)>;
|
|
microchip,output-func-invert;
|
|
};
|
|
led1_gpio157_invert: led1_gpio157_invert {
|
|
pinmux = <MCHP_XEC_PINMUX(0157, MCHP_AF1)>;
|
|
microchip,output-func-invert;
|
|
};
|
|
led2_gpio153_invert: led2_gpio153_invert {
|
|
pinmux = <MCHP_XEC_PINMUX(0153, MCHP_AF1)>;
|
|
microchip,output-func-invert;
|
|
};
|
|
};
|
|
|
|
&bbled0 {
|
|
compatible = "microchip,xec-pwmbbled";
|
|
clock-select = "PWM_BBLED_CLK_32K";
|
|
pinctrl-0 = <&led0_gpio156>;
|
|
pinctrl-1 = <&led0_gpio156_sleep>;
|
|
pinctrl-names = "default", "sleep";
|
|
status = "okay";
|
|
#pwm-cells = <3>;
|
|
};
|
|
|
|
&bbled1 {
|
|
compatible = "microchip,xec-pwmbbled";
|
|
clock-select = "PWM_BBLED_CLK_32K";
|
|
pinctrl-0 = <&led1_gpio157>;
|
|
pinctrl-1 = <&led1_gpio157_sleep>;
|
|
pinctrl-names = "default", "sleep";
|
|
status = "okay";
|
|
#pwm-cells = <3>;
|
|
};
|
|
|
|
&bbled2 {
|
|
compatible = "microchip,xec-pwmbbled";
|
|
clock-select = "PWM_BBLED_CLK_32K";
|
|
pinctrl-0 = <&led2_gpio153>;
|
|
pinctrl-1 = <&led2_gpio153_sleep>;
|
|
pinctrl-names = "default", "sleep";
|
|
status = "okay";
|
|
#pwm-cells = <3>;
|
|
};
|