summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyoung Kim <kyoung.il.kim@intel.com>2015-09-03 14:50:56 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-10-07 17:51:39 -0700
commit8ad4d6a68865f9db8bfeb25f7a9a52a8e722fa53 (patch)
tree7242d90389cb4e3085c26a7329803a3677b8d3c1
parent4bb7c3e2f1c6dc5fcd529c5ca62804c6e271d3ff (diff)
downloadchrome-ec-8ad4d6a68865f9db8bfeb25f7a9a52a8e722fa53.tar.gz
Kunimitsu: Enable FAN control
Enable FAN control with RPM-PWM ports(TACH2PWM-In/Out). BUG=none TEST=FAB3 should be modified to use RPM-PWM ports for fan or use FAB4. use EC console commands, fanduty, fanset, fanauto and faninfo BRANCH=master Change-Id: Ib06131d280a1fa029568559e76449168f1796c61 Signed-off-by: Kyoung Kim <kyoung.il.kim@intel.com> Reviewed-on: https://chromium-review.googlesource.com/302687 Commit-Ready: Kyoung Il Kim <kyoung.il.kim@intel.com> Tested-by: Kyoung Il Kim <kyoung.il.kim@intel.com> Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r--board/kunimitsu/board.c16
-rw-r--r--board/kunimitsu/board.h3
-rw-r--r--board/kunimitsu/gpio.inc35
3 files changed, 49 insertions, 5 deletions
diff --git a/board/kunimitsu/board.c b/board/kunimitsu/board.c
index a487b6418c..497da3baeb 100644
--- a/board/kunimitsu/board.c
+++ b/board/kunimitsu/board.c
@@ -17,6 +17,7 @@
#include "driver/pmic_tps650830.h"
#include "driver/temp_sensor/tmp432.h"
#include "extpower.h"
+#include "fan.h"
#include "gpio.h"
#include "hooks.h"
#include "host_command.h"
@@ -120,6 +121,21 @@ const struct i2c_port_t i2c_ports[] = {
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
+#ifndef BOARD_KUNIMITSU_V3
+/* Physical fans. These are logically separate from pwm_channels. */
+const struct fan_t fans[] = {
+ {.flags = FAN_USE_RPM_MODE,
+ .rpm_min = 1000,
+ .rpm_start = 1000,
+ .rpm_max = 5200,
+ .ch = 1,
+ .pgood_gpio = -1,
+ .enable_gpio = GPIO_FAN_PWR_DIS_L,
+ },
+};
+BUILD_ASSERT(ARRAY_SIZE(fans) == CONFIG_FANS);
+#endif
+
/* SPI devices */
const struct spi_device_t spi_devices[] = {
{ CONFIG_SPI_FLASH_PORT, 0, GPIO_PVT_CS0},
diff --git a/board/kunimitsu/board.h b/board/kunimitsu/board.h
index b9e3d1fcf5..422c82a81f 100644
--- a/board/kunimitsu/board.h
+++ b/board/kunimitsu/board.h
@@ -57,6 +57,9 @@
#define CONFIG_CLOCK_CRYSTAL
#undef CONFIG_DEBUG_ASSERT
#define CONFIG_EXTPOWER_GPIO
+#ifndef BOARD_KUNIMITSU_V3
+#define CONFIG_FANS 1
+#endif
#define CONFIG_HOSTCMD_PD
#define CONFIG_I2C
#define CONFIG_KEYBOARD_COL2_INVERTED
diff --git a/board/kunimitsu/gpio.inc b/board/kunimitsu/gpio.inc
index d60b06b6b7..d0feab5c0c 100644
--- a/board/kunimitsu/gpio.inc
+++ b/board/kunimitsu/gpio.inc
@@ -42,9 +42,7 @@ GPIO(I2C3_SCL, PIN(24), GPIO_INPUT)
GPIO(I2C3_SDA, PIN(25), GPIO_INPUT)
GPIO(PCH_SCI_L, PIN(26), GPIO_ODR_HIGH)
-#ifndef BOARD_KUNIMITSU_V3
-GPIO(PMIC_SLP_SUS_L, PIN(34), GPIO_OUT_LOW)
-#else
+#ifdef BOARD_KUNIMITSU_V3
GPIO(NC_034, PIN(34), GPIO_INPUT | GPIO_PULL_UP)
#endif
GPIO(USB1_ENABLE, PIN(36), GPIO_OUT_HIGH)
@@ -61,9 +59,11 @@ GPIO(USB_PD_WAKE, PIN(60), GPIO_OUT_LOW)
/* When asserted, ME does not lock security descriptor */
GPIO(PCH_SEC_DISABLE_L, PIN(65), GPIO_ODR_HIGH)
GPIO(PCH_WAKE_L, PIN(66), GPIO_ODR_HIGH)
+#ifdef BOARD_KUNIMITSU_V3
GPIO(EC_FAN1_TTACH, PIN(105), GPIO_INPUT)
-/* Fan PWM output - NC / testing only */
-GPIO(EC_FAN1_PWM, PIN(136), GPIO_OUT_LOW)
+#else
+GPIO(USB2_OTG_VBUSSENSE, PIN(105), GPIO_ODR_HIGH)
+#endif
GPIO(PCH_ACOK, PIN(110), GPIO_OUT_LOW)
/* Interrupts from accelerometer / gyro -- not yet implemented */
GPIO(LID_ACCEL_INT, PIN(161), GPIO_INPUT | GPIO_PULL_DOWN) /* Lid ACCEL sensor interrupt to EC */
@@ -73,7 +73,16 @@ GPIO(GYRO_DRDY, PIN(133), GPIO_INPUT | GPIO_PULL_DOWN) /* Lid Gyro
GPIO(WLAN_OFF_L, PIN(132), GPIO_OUT_HIGH)
/* RCIN# line to PCH for 8042 emulation */
GPIO(PCH_RCIN_L, PIN(135), GPIO_ODR_HIGH)
+/* Fan PWM output - NC / testing only */
+#ifdef BOARD_KUNIMITSU_V3
+GPIO(EC_FAN1_PWM, PIN(136), GPIO_OUT_LOW)
+#else
+GPIO(NC_136, PIN(136), GPIO_INPUT | GPIO_PULL_UP) /* Reserved for KBD Backlight */
+#endif
+
+#ifdef BOARD_KUNIMITSU_V3
GPIO(USB2_OTG_VBUSSENSE, PIN(140), GPIO_ODR_HIGH)
+#endif
/* Sensor input for KB PROX - UNUSED */
GPIO(KB_PROX_INT_L, PIN(141), GPIO_INPUT)
GPIO(PCH_RSMRST_L, PIN(143), GPIO_OUT_LOW)
@@ -84,10 +93,18 @@ GPIO(USB_C1_5V_EN, PIN(204), GPIO_OUT_LOW)
GPIO(USB_C0_CHARGE_EN_L, PIN(64), GPIO_OUT_LOW)
GPIO(USB_C1_CHARGE_EN_L, PIN(157), GPIO_OUT_LOW)
GPIO(NC_011, PIN(11), GPIO_INPUT | GPIO_PULL_UP)
+#ifdef BOARD_KUNIMITSU_V3
GPIO(LID_OPEN2, PIN(160), GPIO_INPUT | GPIO_PULL_UP)
+#else
+GPIO(FAN_PWR_DIS_L, PIN(160), GPIO_OUT_HIGH)
+#endif
GPIO(PCH_RTCRST_L, PIN(163), GPIO_ODR_HIGH)
+#ifdef BOARD_KUNIMITSU_V3
GPIO(NC_201, PIN(201), GPIO_INPUT | GPIO_PULL_UP)
+#else
+GPIO(PMIC_SLP_SUS_L, PIN(201), GPIO_OUT_LOW)
+#endif
GPIO(ENABLE_BACKLIGHT, PIN(202), GPIO_OUT_HIGH)
GPIO(PP3300_WLAN_EN, PIN(203), GPIO_OUT_HIGH)
GPIO(EC_WAKE_CLK, PIN(210), GPIO_INPUT)
@@ -158,3 +175,11 @@ ALTERNATE(PIN_MASK(6, 0x06), 1, MODULE_ADC, GPIO_ANALOG)
ALTERNATE(PIN_MASK(13, 0x02), 1, MODULE_PMU, 0)
/* nRESET_OUT - GPIO121 */
ALTERNATE(PIN_MASK(12, 0x02), 1, MODULE_PMU, 0)
+
+#ifndef BOARD_KUNIMITSU_V3
+/* RPM-PWM for FAN */
+/* TACH2PWM_OUT - GPIO34 */
+ALTERNATE(PIN_MASK(3, 0x10), 3, MODULE_PWM_FAN, 0)
+/* TACH2PWM_IN - GPIO140 */
+ALTERNATE(PIN_MASK(14, 0x01), 3, MODULE_PWM_FAN, 0)
+#endif