diff --git a/boards/nxp/frdm_ke17z/doc/index.rst b/boards/nxp/frdm_ke17z/doc/index.rst index 28d98255967..73cb76b6428 100644 --- a/boards/nxp/frdm_ke17z/doc/index.rst +++ b/boards/nxp/frdm_ke17z/doc/index.rst @@ -65,6 +65,8 @@ features: +-----------+------------+-------------------------------------+ | DMA | on-chip | dma | +-----------+------------+-------------------------------------+ +| FTM | on-chip | pwm | ++-----------+------------+-------------------------------------+ | I2C | on-chip | i2c | +-----------+------------+-------------------------------------+ | ACMP | on-chip | sensor | diff --git a/boards/nxp/frdm_ke17z/frdm_ke17z-pinctrl.dtsi b/boards/nxp/frdm_ke17z/frdm_ke17z-pinctrl.dtsi index 9587742d39b..23944226186 100644 --- a/boards/nxp/frdm_ke17z/frdm_ke17z-pinctrl.dtsi +++ b/boards/nxp/frdm_ke17z/frdm_ke17z-pinctrl.dtsi @@ -25,6 +25,16 @@ }; }; + ftm2_default: ftm2_default { + group0 { + pinmux = , + , + ; + drive-strength = "low"; + slew-rate = "slow"; + }; + }; + lpi2c0_default: lpi2c0_default { group0 { pinmux = , diff --git a/boards/nxp/frdm_ke17z/frdm_ke17z.dts b/boards/nxp/frdm_ke17z/frdm_ke17z.dts index 3888d80a5d9..87f1798dc09 100644 --- a/boards/nxp/frdm_ke17z/frdm_ke17z.dts +++ b/boards/nxp/frdm_ke17z/frdm_ke17z.dts @@ -9,6 +9,7 @@ #include #include "frdm_ke17z-pinctrl.dtsi" #include +#include / { model = "NXP Freedom KE17Z board"; @@ -20,6 +21,9 @@ led2 = &blue_led; sw0 = &user_button_0; sw1 = &user_button_1; + pwm-led0 = &red_pwm_led; + pwm-led1 = &green_pwm_led; + pwm-led2 = &blue_pwm_led; }; chosen { @@ -45,6 +49,22 @@ }; }; + pwmleds { + compatible = "pwm-leds"; + red_pwm_led: led_pwm_0 { + pwms = <&ftm2 0 PWM_HZ(20) PWM_POLARITY_INVERTED>; + label = "RED RGB PWM LED"; + }; + green_pwm_led: led_pwm_1 { + pwms = <&ftm2 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + label = "GREEN RGB PWM LED"; + }; + blue_pwm_led: led_pwm_2 { + pwms = <&ftm2 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + label = "BLUE RGB PWM LED"; + }; + }; + gpio_keys { compatible = "gpio-keys"; user_button_0: button_0 { @@ -90,6 +110,17 @@ status = "okay"; }; +&ftm2 { + status = "okay"; + compatible = "nxp,kinetis-ftm-pwm"; + #pwm-cells = <3>; + clocks = <&scg KINETIS_SCG_SIRC_CLK>; + prescaler = <128>; + pinctrl-0 = <&ftm2_default>; + pinctrl-names = "default"; + clock-source = "system"; +}; + &flash0 { partitions { compatible = "fixed-partitions"; diff --git a/boards/nxp/frdm_ke17z/frdm_ke17z.yaml b/boards/nxp/frdm_ke17z/frdm_ke17z.yaml index d0c82cb54e0..3ef4c758307 100644 --- a/boards/nxp/frdm_ke17z/frdm_ke17z.yaml +++ b/boards/nxp/frdm_ke17z/frdm_ke17z.yaml @@ -12,6 +12,7 @@ supported: - gpio - adc - uart + - pwm - i2c - spi - dma diff --git a/boards/nxp/frdm_ke17z512/doc/index.rst b/boards/nxp/frdm_ke17z512/doc/index.rst index 647046b506b..b5f10115ed5 100644 --- a/boards/nxp/frdm_ke17z512/doc/index.rst +++ b/boards/nxp/frdm_ke17z512/doc/index.rst @@ -61,6 +61,8 @@ features: | UART | on-chip | uart polling; | | | | uart interrupt | +-----------+------------+-------------------------------------+ +| FTM | on-chip | pwm | ++-----------+------------+-------------------------------------+ | I2C | on-chip | I2C | +-----------+------------+-------------------------------------+ | ACMP | on-chip | sensor | diff --git a/boards/nxp/frdm_ke17z512/frdm_ke17z512-pinctrl.dtsi b/boards/nxp/frdm_ke17z512/frdm_ke17z512-pinctrl.dtsi index 205e763de17..ac8d26790a1 100644 --- a/boards/nxp/frdm_ke17z512/frdm_ke17z512-pinctrl.dtsi +++ b/boards/nxp/frdm_ke17z512/frdm_ke17z512-pinctrl.dtsi @@ -26,6 +26,16 @@ }; }; + ftm2_default: ftm2_default { + group0 { + pinmux = , + , + ; + drive-strength = "low"; + slew-rate = "slow"; + }; + }; + lpi2c0_default: lpi2c0_default { group0 { pinmux = , diff --git a/boards/nxp/frdm_ke17z512/frdm_ke17z512.dts b/boards/nxp/frdm_ke17z512/frdm_ke17z512.dts index 8084889fa0e..1598e6ece2f 100644 --- a/boards/nxp/frdm_ke17z512/frdm_ke17z512.dts +++ b/boards/nxp/frdm_ke17z512/frdm_ke17z512.dts @@ -9,6 +9,7 @@ #include #include "frdm_ke17z512-pinctrl.dtsi" #include +#include / { model = "NXP Freedom KE17Z512 board"; @@ -27,6 +28,9 @@ led2 = &blue_led; sw0 = &user_button_2; sw1 = &user_button_3; + pwm-led0 = &red_pwm_led; + pwm-led1 = &green_pwm_led; + pwm-led2 = &blue_pwm_led; }; leds { @@ -45,6 +49,22 @@ }; }; + pwmleds { + compatible = "pwm-leds"; + red_pwm_led: led_pwm_0 { + pwms = <&ftm2 0 PWM_HZ(20) PWM_POLARITY_INVERTED>; + label = "RED RGB PWM LED"; + }; + green_pwm_led: led_pwm_1 { + pwms = <&ftm2 3 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + label = "GREEN RGB PWM LED"; + }; + blue_pwm_led: led_pwm_2 { + pwms = <&ftm2 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>; + label = "BLUE RGB PWM LED"; + }; + }; + gpio_keys { compatible = "gpio-keys"; user_button_2: button_0 { @@ -96,6 +116,17 @@ pinctrl-names = "default"; }; +&ftm2 { + status = "okay"; + compatible = "nxp,kinetis-ftm-pwm"; + #pwm-cells = <3>; + clocks = <&scg KINETIS_SCG_SIRC_CLK>; + prescaler = <128>; + pinctrl-0 = <&ftm2_default>; + pinctrl-names = "default"; + clock-source = "system"; +}; + &flash0 { partitions { diff --git a/boards/nxp/frdm_ke17z512/frdm_ke17z512.yaml b/boards/nxp/frdm_ke17z512/frdm_ke17z512.yaml index 37fc4c341c1..fd11427e345 100644 --- a/boards/nxp/frdm_ke17z512/frdm_ke17z512.yaml +++ b/boards/nxp/frdm_ke17z512/frdm_ke17z512.yaml @@ -18,6 +18,7 @@ supported: - gpio - adc - uart + - pwm - i2c - spi - dma