Files
system76-embedded-controller/doc/adding-a-new-board.md
Tim Crawford 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

2.1 KiB

Adding a new board

Charger parameters

  • CHARGER_ADAPTER_RSENSE: The adapter RSENSE value in milliohms.
  • CHARGER_BATTERY_RSENSE: The battery RSENSE value in milliohms.
  • CHARGER_CHARGE_CURRENT: The desired charge current in milliamps.
  • CHARGER_CHARGE_VOLTAGE: On the battery, look for 充电限制电压 (charge limit voltage). Convert this from volts to millivolts.
  • CHARGER_INPUT_CURRENT: On the charger, look for DC output. Convert the current from amps to milliamps.

Example

The gaze15 battery has:

充电限制电压: 16.8Vdc

Its charger has:

DC OUTPUT (输出/輸出): 19.5V⎓9.23A 180W

The schematics show it uses a 0.005 ohm sense resistor for both the adapter and the battery.

This gives:

CFLAGS+=\
	-DCHARGER_ADAPTER_RSENSE=5 \
	-DCHARGER_BATTERY_RSENSE=5 \
	-DCHARGER_CHARGE_CURRENT=3072 \
	-DCHARGER_CHARGE_VOLTAGE=16800 \
	-DCHARGER_INPUT_CURRENT=9230

GPIOs

Use ecsim on the proprietary firmware to generate the configuration. Modify src/main.rs if the EC needs to be changed from 5570 to 8587. Refer to gpio.sh, which can automate the process.

Use the EC page in the schematics to label everything.

Not everything will be generated correctly, so check them manually when labeling. Examples include the M block not being included in the generated output, and CCD_EN being configured as GPIO_IN instead of GPIO_OUT.

Keyboard backlight

Many models have backlit or RGB keyboards. The EC page in the board schematics should be sufficient to determine the method used to control the backlight.

DAC

One of the DACs is be used for controlling the backlight level.

Examples:

  • galp4
  • lemp9

These models use KBLIGHT_ADJ to control the backlight level.

PWM

One PWM line is used for controlling brightness, and three others are used for setting the red, green, and blue colors.

Examples:

  • addw2
  • gaze15
  • oryp6

These models use EC_PWM_LEDKB_{R,G,B} to control the color of the keys.

I2C

I2C is used to communicate with the MCU that controls the keyboard backlight and color.

Examples:

  • darp6
  • oryp5