blob: 1f918f848ed4a08485af54db12e1a0b31af86685 [file] [log] [blame]
/*
* Copyright 2023 The ChromiumOS Authors
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <st/g0/stm32g0b1Xe.dtsi>
#include <st/g0/stm32g0b1r(b-c-e)ixn-pinctrl.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Google Twinkie V2";
compatible = "google,twinkie-v2";
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
};
leds {
compatible = "gpio-leds";
red_led_0: led0 {
gpios = <&gpioc 8 GPIO_ACTIVE_LOW>;
};
green_led_1: led1 {
gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
};
blue_led_2: led2 {
gpios = <&gpiob 7 GPIO_ACTIVE_LOW>;
};
};
gpio_keys {
compatible = "gpio-keys";
/* does not go to an actual button in current hardware.
* short TP5 to TP6 to activate.
*/
dfu_detect: dfudetect {
gpios = <&gpioa 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
zephyr,code = <INPUT_KEY_0>;
};
};
cc1_buf: cc1buf {
compatible = "voltage-divider";
io-channels = <&adc1 1>;
output-ohms = <2000000000>;
};
cc2_buf: cc2buf {
compatible = "voltage-divider";
io-channels = <&adc1 3>;
output-ohms = <2000000000>;
};
vbus_read_buf: vbusv {
compatible = "voltage-divider";
io-channels = <&adc1 15>;
output-ohms = <68000>;
full-ohms = <(2000000 + 68000)>;
};
csa_vbus: vbusc {
compatible = "current-sense-amplifier";
io-channels = <&adc1 17>;
sense-resistor-micro-ohms = <3000>;
sense-gain-mult = <100>;
};
csa_cc2: vconc {
compatible = "current-sense-amplifier";
io-channels = <&adc1 18>;
sense-resistor-micro-ohms = <10000>;
sense-gain-mult = <25>;
};
aliases {
led0 = &red_led_0;
led1 = &green_led_1;
led2 = &blue_led_2;
bootloader-led0 = &blue_led_2;
vcc1 = &cc1_buf;
vcc2 = &cc2_buf;
vbus = &vbus_read_buf;
cbus = &csa_vbus;
ccon = &csa_cc2;
};
};
&adc1 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&adc1_in1_pa1 /* CC1_BUF */
&adc1_in3_pa3 /* CC2_BUF */
&adc1_in15_pb11 /* VBUS_READ_BUF */
&adc1_in17_pc4 /* CSA_VBUS */
&adc1_in18_pc5 /* CSA_CC2 */
>;
pinctrl-names = "default";
st,adc-clock-source = <SYNC>;
st,adc-prescaler = <4>;
status = "okay";
channel@1 {
reg = <1>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,vref-mv = <3300>;
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
channel@3 {
reg = <3>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,vref-mv = <3300>;
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
channel@15 {
reg = <15>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,vref-mv = <3300>;
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
channel@17 {
reg = <17>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,vref-mv = <3300>;
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
channel@18 {
reg = <18>;
zephyr,gain = "ADC_GAIN_1";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,vref-mv = <3300>;
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
};
&clk_hsi {
status = "okay";
};
&pll {
div-m = <1>;
mul-n = <8>;
div-p = <2>;
div-q = <2>;
div-r = <2>;
clocks = <&clk_hsi>;
status = "okay";
};
&rcc {
clocks = <&pll>;
clock-frequency = <DT_FREQ_M(64)>;
ahb-prescaler = <1>;
apb1-prescaler = <1>;
};
&iwdg {
status = "okay";
};
&ucpd1 {
status = "okay";
psc-ucpdclk = <1>;
hbitclkdiv = <27>;
pinctrl-0 = <&ucpd1_cc1_pa8 &ucpd1_cc2_pb15>;
pinctrl-names = "default";
};