mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-27 18:25:05 +00:00
This enables the AP to limit charging current via ACPI.
BUG=chrome-os-partner:23971
BRANCH=rambi
TEST=manual
drain battery down to <90%, then plug into AC
(charger commands at EC console, iotools at root shell)
iotools io_write8 0x66 0x81
iotools io_write8 0x62 0x08
iotools io_write8 0x62 3
charger -> dptf limit 192, I_batt=192
charger dptf 320
charger -> dptf limit 320, I_batt=320
iotools io_write8 0x66 0x80
iotools io_write8 0x62 0x08
iotools io_read8 0x62 -> 0x05
iotools io_write8 0x66 0x81
iotools io_write8 0x62 0x08
iotools io_write8 0x62 0xff
charger -> dptf disabled, I_batt=(something > 192)
iotools io_write8 0x66 0x80
iotools io_write8 0x62 0x08
iotools io_read8 0x62 -> 0xff
Change-Id: Iace2ebbbc018143c0154310d7acd02d16a6b7339
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/185411
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
/* Copyright (c) 2013 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.
|
|
*/
|
|
|
|
/* Functions used to provide the Intel DPTF interface over ACPI */
|
|
|
|
#ifndef __CROS_EC_DPTF_H
|
|
#define __CROS_EC_DPTF_H
|
|
|
|
/**
|
|
* Set fan duty target.
|
|
*
|
|
* 0-100% sets fixed duty cycle, out of range means let the EC drive.
|
|
*/
|
|
void dptf_set_fan_duty_target(int pct);
|
|
|
|
/**
|
|
* Return 0-100% if in duty mode. -1 if not.
|
|
*/
|
|
int dptf_get_fan_duty_target(void);
|
|
|
|
/* Thermal thresholds may be set for each temp sensor. */
|
|
#define DPTF_THRESHOLDS_PER_SENSOR 2
|
|
#define DPTF_THRESHOLD_HYSTERESIS 2
|
|
|
|
/**
|
|
* Set/enable the thresholds.
|
|
*/
|
|
void dptf_set_temp_threshold(int sensor_id, /* zero-based sensor index */
|
|
int temp, /* in degrees K */
|
|
int idx, /* which threshold (0 or 1) */
|
|
int enable); /* true = on, false = off */
|
|
|
|
/**
|
|
* Return the ID of a temp sensor that has crossed its threshold since the last
|
|
* time we asked. -1 means none.
|
|
*/
|
|
int dptf_query_next_sensor_event(void);
|
|
|
|
/**
|
|
* Set charging current limit, in mA. -1 means no limit.
|
|
*/
|
|
void dptf_set_charging_current_limit(int ma);
|
|
|
|
/**
|
|
* Get charging current limit, in mA, or -1 if not DPTF-limiting.
|
|
*/
|
|
int dptf_get_charging_current_limit(void);
|
|
|
|
#endif /* __CROS_EC_DPTF_H */
|