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

91 lines
2.1 KiB
Markdown

# 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