system76-embedded-controller/doc/adding-a-new-board.md
2020-09-15 12:03:13 -06:00

1.8 KiB

Adding a new board

Charger parameters

  • CHARGER_CHARGE_CURRENT: Currently the same for all boards (1536).
  • 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

and its charger has

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

This gives

CFLAGS+=\
	-DCHARGER_CHARGE_CURRENT=1536 \
	-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