Commit Graph

880 Commits

Author SHA1 Message Date
f8d1123934 pwm: Reload counters when they reach 0
Add IT5570E register that controls when the down counters are updated.
Set them to update when they reach 0, instead of immediately when DCRi
is written.

Fixes keyboard color changing when changing brightness levels if not
using 0xFF for an RGB value.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-10-14 08:38:34 -06:00
76019bdb61 Fix charger values, again (#303)
* common: Add macros for min, max, clamp

Simple macros, with no type checking.

Signed-off-by: Tim Crawford <tcrawford@system76.com>

* charger: Limit charger values to max valid value

Use the maximum valid value instead of discarding bits.

Fixes: 6295f60172 ("Fix smart charger values")

Signed-off-by: Tim Crawford <tcrawford@system76.com>

* charger/bq24780s: Fix charge current mask

bq24780s uses bit 12 for 4096 a current weight.

Fixes: 6295f60172 ("Fix smart charger values")

Signed-off-by: Tim Crawford <tcrawford@system76.com>

* oryp: Reduce charge current to 2A

Signed-off-by: Tim Crawford <tcrawford@system76.com>

* charger/bq24780s: Set RSENSE ratio option

Signed-off-by: Tim Crawford <tcrawford@system76.com>

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-10-06 13:02:15 -06:00
a32a3e3e95 Docs: update models that use 0.5mm pitch FPC cable (#302) 2022-09-15 11:42:12 -06:00
7f28764436 battery: Fix condition to start/stop charging
Change the condition, which is currently a level *at* which charging
will start/stop.

Per sysfs [1], these values are a level:

- *below* which charging will begin
- *above* which charging will stop

[1]: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-power

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-09-02 11:22:56 -06:00
5cf57d69b9 gaze17: Define SLP_S0# to CPU_C10_GATE#
gaze17 does not connect SLP_S0# to the EC, so continue using
CPU_C10_GATE# for S0ix detection.

Fixes: 4b888ae9a501 ("board/system76/common: use SLP_S0# pin for modern standby detection")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-30 08:47:30 -06:00
cc3effb6a4 board/system76/common: use SLP_S0# pin for modern standby detection
Previously, CPU_C10_GATE# was used for detecting entry into s0ix /
Modern Standby.

Intel documentation says that SLP_S0# should be used for s0ix detection
instead, and CPU_C10_GATE# is intended for VCCSTG power gating, so
switch the pin to improve s0ix detection reliability.

Fixes https://github.com/system76/firmware-open/issues/199

References:

- Intel docs #575570 rev 0.5, #607872 rev 2.2
- Chromium EC: https://chromium.googlesource.com/chromiumos/platform/ec/+/master/power/intel_x86.c#41

Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
2022-08-30 08:47:30 -06:00
49abf83c08 Add config for using S0ix
S0ix does not require eSPI, and eSPI does not mandate S0ix.

Enable S0ix for:

- darp7 (TGL-U)
- darp8 (ADL-P)
- galp5 (TGL-U)
- galp6 (ADL-P)
- lemp10 (TGL-U)
- lemp11 (ADL-U)

It is also currently enabled on ADL-H due to a bug with S3:

- gaze17-3050
- gaze17-3060-b
- oryp9

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-30 08:47:30 -06:00
b78631e316 oryp10: Symlink to oryp9
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-26 11:38:49 -06:00
a8213311b1 galp6: Do not provide power while off
The previous commit incorrectly enabled power while off. Model PD_EN
after VA_EC_EN, which it replaced on galp6 for TCP0.

Fixes: a6a6c5fba4 ("galp6: Fix TCP0 power")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-03 11:11:28 -06:00
a6a6c5fba4 galp6: Fix TCP0 power
galp6 uses `PD_EN` instead of `VA_EC_EN` for enabling power to TCP0.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-02 16:02:06 -06:00
cd86c1e7d7 galp6: Fix USB power
The schematics incorrectly show the pin as `USB_PWR_EN#`. There is a
comment on the port side clarifying that it is actually active high.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-02 16:02:06 -06:00
371f6d3047 galp6: Add Galago Pro 6
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-01 19:26:36 -06:00
6295f60172 Fix smart charger values
Fix all smart charger values by having boards provide the RSENSE values
and perform the register calculations in the code.

The galp3-c, galp5, gaze16, and gaze17 do not seem to have the same
behavior as the rest of the boards, and further investigation is needed.
In the mean time, reduce their charge current values to preserve current
behavior.

Ref: OZ26786-DS v1.0
Ref: bq24780S Rev. C datasheet
Signed-off-by: Tim Crawford <tcrawford@system76.com
2022-08-01 19:26:36 -06:00
20d40f3477 gaze17-3050: Adjust fan points
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-07-26 09:27:44 -06:00
22fa2769ad gaze17-3050: Update configs
- Add to CI
- Correct smart charger values
- Enable WLAN power
- Enable USB power
- Disable mute

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-07-26 09:27:44 -06:00
7ab91e9f1d oryp9: Sync fans
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-07-20 14:20:31 -06:00
5ef477ab5b ci: Add darp8 and lemp11
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-07-12 15:31:35 -06:00
e8d91e5c2d oryp9: Add Oryx Pro 9
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-07-12 15:31:35 -06:00
60dfb62f90 lemp11: Add Lemur Pro 11
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-06-28 13:22:30 -06:00
7b9b91187a darp8: Add Darter Pro 8
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-06-22 09:17:21 -06:00
158ec124fe Add Pause key
In proprietary firmware and QMK, the Break key by itself is always just
Pause. They produce the same scan code, but Ctrl must be held for the OS
to recognize it as Break.

Behavior tested with xev.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-05-23 13:08:31 -06:00
375d11f4ed Add gaze17 2022-05-16 11:16:33 -07:00
a70ea4558c Fix battery TRACE macro 2022-04-27 07:13:48 -06:00
5780bb5e83 Update Rust toolchain to 2022-03-18
Match the toolchain used by Redox.

Update dependencies and submodules to fix building.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-04-04 18:59:20 -06:00
700f9e3756 ci: Add clang-format check
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-03-22 12:52:47 -06:00
b70a09e205 Disable clang-format for sensitive blocks
Things like macro blocks should not be auto-formatted.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-03-22 12:52:47 -06:00
04df6ae311 Add .clang-format
Most options are configured to keep most of the current style.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-03-22 12:52:47 -06:00
f21cc6d602 battery: Group battery info in a struct
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-03-18 12:47:59 -06:00
ee8ba5b72e fan: Replace 'static const' with defines
SDCC is not able to optimize statics [1]. Replace their use with defines
so significantly better code is generated.

[1]: https://sourceforge.net/p/sdcc/feature-requests/414/

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-03-18 12:47:20 -06:00
84f9aad7d8 Add force console mode to arduino firmware 2022-02-14 18:55:14 -07:00
cb341cfb2b Add power_init function 2022-02-14 18:55:14 -07:00
474b1c2191 Remove unused power states, rename power on/off functions 2022-02-14 18:55:14 -07:00
2262097c2b Add missing newline 2022-02-14 18:55:14 -07:00
4bab1cc00d Ensure that system powers off S5 plane if it fails to power on S5 plane 2022-02-14 18:55:14 -07:00
c31ef33101 Remove DEEP_SX, no boards use it 2022-02-14 18:55:14 -07:00
1cb61e6918 deps.sh: Update rustup or inform user of env vars
Ensure rustup is up-to-date to avoid users having a version that is too
old to support the TOML format.

If rustup was just installed, tell the user to source the new env vars
to use the correct version of the toolchain.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-01-18 08:09:56 -07:00
ca58502137 readme: Add datasheet info
The IT81202E, despite using a different core, contains sufficiently
equivalent documentation to IT8587E and IT5570E for most tasks except
interrupt management. Provide it as a reference since we cannot share
the datasheets for the models we use.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-01-07 18:36:10 -07:00
7d75235081 Fix ectool path in power.sh 2021-12-02 10:35:56 -07:00
ab0c55fae2 ectool 0.3.8 2021-11-19 13:32:00 -08:00
85595a8d4c tool: Add a system76_ec command to disable input events
For testing Launch keyboards.

Could easily support in EC firmware as well if we had a use for that,
but not adding that for now.
2021-11-18 13:08:05 -08:00
d9ce247a15 ectool: update lock file 2021-11-17 18:27:11 -07:00
e8ce6d9096 Add libhidapi-dev to deps 2021-11-17 18:26:26 -07:00
95632b4503 ectool: use linux-shared-hidraw feature for hidapi 2021-11-17 18:26:26 -07:00
55a617f2e0 gaze16-3060-b: Symlink new variant to gaze16-3060 2021-11-01 11:01:34 -06:00
987a5b4b70 Update submodules
Submodules have been updated to work with newer toolchains and fix build
warnings.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-10-26 11:35:48 -06:00
43e5cf4ba3 Fix or silence clippy warnings on nightly
Fix:
- dead_code
- clippy::if_then_panic
- clippy::manual_memcpy
- clippy::needless_borrow

Silence:
- clippy::missing_safety_doc
- clippy::needless_range_loop
- clippy::single_match

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-10-26 11:35:48 -06:00
975377af42 Update Rust toolchain to 2021-06-15
Update toolchain to match the version used in Redox.

Update dependencies to fix build.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-10-26 11:35:48 -06:00
9fa83ad359 gaze16-3050, gaze16-3060: set PCH_DPWROK_EC low on EC boot to ensure PCH is off 2021-09-30 12:29:24 -06:00
d3ee037879 Add gaze16 to CI 2021-09-20 10:58:11 -06:00
9046f1e527 Add oryp8 2021-09-20 10:50:53 -06:00