summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/boards/arm/npcx_evb/npcx7_evb_defconfig4
-rw-r--r--zephyr/boards/arm/npcx_evb/npcx9_evb_defconfig4
-rw-r--r--zephyr/projects/npcx_evb/npcx7/include/pwm_map.h16
-rw-r--r--zephyr/projects/npcx_evb/npcx7/prj.conf3
-rw-r--r--zephyr/projects/npcx_evb/npcx7/pwm.dts32
-rw-r--r--zephyr/projects/npcx_evb/npcx7/zmake.yaml1
-rw-r--r--zephyr/projects/npcx_evb/npcx9/include/pwm_map.h16
-rw-r--r--zephyr/projects/npcx_evb/npcx9/prj.conf3
-rw-r--r--zephyr/projects/npcx_evb/npcx9/pwm.dts32
-rw-r--r--zephyr/projects/npcx_evb/npcx9/zmake.yaml1
10 files changed, 112 insertions, 0 deletions
diff --git a/zephyr/boards/arm/npcx_evb/npcx7_evb_defconfig b/zephyr/boards/arm/npcx_evb/npcx7_evb_defconfig
index e9d9fc3bac..dcfed07291 100644
--- a/zephyr/boards/arm/npcx_evb/npcx7_evb_defconfig
+++ b/zephyr/boards/arm/npcx_evb/npcx7_evb_defconfig
@@ -39,3 +39,7 @@ CONFIG_I2C=y
# ADC
CONFIG_ADC=y
CONFIG_ADC_SHELL=n
+
+# PWM
+CONFIG_PWM=y
+CONFIG_PWM_SHELL=n
diff --git a/zephyr/boards/arm/npcx_evb/npcx9_evb_defconfig b/zephyr/boards/arm/npcx_evb/npcx9_evb_defconfig
index d812f7d690..955aef4c4a 100644
--- a/zephyr/boards/arm/npcx_evb/npcx9_evb_defconfig
+++ b/zephyr/boards/arm/npcx_evb/npcx9_evb_defconfig
@@ -38,3 +38,7 @@ CONFIG_I2C=y
# ADC
CONFIG_ADC=y
CONFIG_ADC_SHELL=n
+
+# PWM
+CONFIG_PWM=y
+CONFIG_PWM_SHELL=n
diff --git a/zephyr/projects/npcx_evb/npcx7/include/pwm_map.h b/zephyr/projects/npcx_evb/npcx7/include/pwm_map.h
new file mode 100644
index 0000000000..371e95c116
--- /dev/null
+++ b/zephyr/projects/npcx_evb/npcx7/include/pwm_map.h
@@ -0,0 +1,16 @@
+/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef __ZEPHYR_PWM_MAP_H
+#define __ZEPHYR_PWM_MAP_H
+
+#include <devicetree.h>
+
+#include "pwm/pwm.h"
+
+#define PWM_CH_FAN NAMED_PWM(fan)
+#define PWM_CH_KBLIGHT NAMED_PWM(kblight)
+
+#endif /* __ZEPHYR_PWM_MAP_H */
diff --git a/zephyr/projects/npcx_evb/npcx7/prj.conf b/zephyr/projects/npcx_evb/npcx7/prj.conf
index 16a01208e9..4b49332a6d 100644
--- a/zephyr/projects/npcx_evb/npcx7/prj.conf
+++ b/zephyr/projects/npcx_evb/npcx7/prj.conf
@@ -21,6 +21,9 @@ CONFIG_PLATFORM_EC_VSTORE=n
# Board version is selected over GPIO board ID pins.
CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=y
+# PWM
+CONFIG_PLATFORM_EC_PWM=y
+
# Zephyr feature
CONFIG_ASSERT=y
CONFIG_SHELL_MINIMAL=n
diff --git a/zephyr/projects/npcx_evb/npcx7/pwm.dts b/zephyr/projects/npcx_evb/npcx7/pwm.dts
new file mode 100644
index 0000000000..3b7b88c235
--- /dev/null
+++ b/zephyr/projects/npcx_evb/npcx7/pwm.dts
@@ -0,0 +1,32 @@
+/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/ {
+ named-pwms {
+ compatible = "named-pwms";
+
+ fan {
+ pwms = <&pwm0 0 0>;
+ label = "FAN";
+ frequency = <25000>;
+ };
+ kblight {
+ pwms = <&pwm2 0 0>;
+ label = "KBLIGHT";
+ frequency = <10000>;
+ };
+ };
+};
+
+/* fan */
+&pwm0 {
+ status = "okay";
+ drive-open-drain;
+};
+
+/* kblight */
+&pwm2 {
+ status = "okay";
+};
diff --git a/zephyr/projects/npcx_evb/npcx7/zmake.yaml b/zephyr/projects/npcx_evb/npcx7/zmake.yaml
index 10cb8dffb7..710e0a7568 100644
--- a/zephyr/projects/npcx_evb/npcx7/zmake.yaml
+++ b/zephyr/projects/npcx_evb/npcx7/zmake.yaml
@@ -5,6 +5,7 @@
board: npcx7_evb
dts-overlays:
- gpio.dts
+ - pwm.dts
supported-zephyr-versions:
- v2.6
toolchain: coreboot-sdk
diff --git a/zephyr/projects/npcx_evb/npcx9/include/pwm_map.h b/zephyr/projects/npcx_evb/npcx9/include/pwm_map.h
new file mode 100644
index 0000000000..371e95c116
--- /dev/null
+++ b/zephyr/projects/npcx_evb/npcx9/include/pwm_map.h
@@ -0,0 +1,16 @@
+/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef __ZEPHYR_PWM_MAP_H
+#define __ZEPHYR_PWM_MAP_H
+
+#include <devicetree.h>
+
+#include "pwm/pwm.h"
+
+#define PWM_CH_FAN NAMED_PWM(fan)
+#define PWM_CH_KBLIGHT NAMED_PWM(kblight)
+
+#endif /* __ZEPHYR_PWM_MAP_H */
diff --git a/zephyr/projects/npcx_evb/npcx9/prj.conf b/zephyr/projects/npcx_evb/npcx9/prj.conf
index 98474940ba..e124930bfc 100644
--- a/zephyr/projects/npcx_evb/npcx9/prj.conf
+++ b/zephyr/projects/npcx_evb/npcx9/prj.conf
@@ -25,6 +25,9 @@ CONFIG_PLATFORM_EC_WORKAROUND_FLASH_DOWNLOAD_API=y
# Board version is selected over GPIO board ID pins.
CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=y
+# PWM
+CONFIG_PLATFORM_EC_PWM=y
+
# Zephyr feature
CONFIG_ASSERT=y
CONFIG_SHELL_MINIMAL=n
diff --git a/zephyr/projects/npcx_evb/npcx9/pwm.dts b/zephyr/projects/npcx_evb/npcx9/pwm.dts
new file mode 100644
index 0000000000..3b7b88c235
--- /dev/null
+++ b/zephyr/projects/npcx_evb/npcx9/pwm.dts
@@ -0,0 +1,32 @@
+/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/ {
+ named-pwms {
+ compatible = "named-pwms";
+
+ fan {
+ pwms = <&pwm0 0 0>;
+ label = "FAN";
+ frequency = <25000>;
+ };
+ kblight {
+ pwms = <&pwm2 0 0>;
+ label = "KBLIGHT";
+ frequency = <10000>;
+ };
+ };
+};
+
+/* fan */
+&pwm0 {
+ status = "okay";
+ drive-open-drain;
+};
+
+/* kblight */
+&pwm2 {
+ status = "okay";
+};
diff --git a/zephyr/projects/npcx_evb/npcx9/zmake.yaml b/zephyr/projects/npcx_evb/npcx9/zmake.yaml
index 5aaa630542..29443aba14 100644
--- a/zephyr/projects/npcx_evb/npcx9/zmake.yaml
+++ b/zephyr/projects/npcx_evb/npcx9/zmake.yaml
@@ -5,6 +5,7 @@
board: npcx9_evb
dts-overlays:
- gpio.dts
+ - pwm.dts
supported-zephyr-versions:
- v2.6
toolchain: coreboot-sdk