162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device tree for LEGO MINDSTORMS EV3 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2017 David Lechner <david@lechnology.com> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/dts-v1/; 962306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1062306a36Sopenharmony_ci#include <dt-bindings/input/linux-event-codes.h> 1162306a36Sopenharmony_ci#include <dt-bindings/pwm/pwm.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include "da850.dtsi" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/ { 1662306a36Sopenharmony_ci compatible = "lego,ev3", "ti,da850"; 1762306a36Sopenharmony_ci model = "LEGO MINDSTORMS EV3"; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci aliases { 2062306a36Sopenharmony_ci serial1 = &serial1; 2162306a36Sopenharmony_ci }; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci memory@c0000000 { 2462306a36Sopenharmony_ci device_type = "memory"; 2562306a36Sopenharmony_ci reg = <0xc0000000 0x04000000>; 2662306a36Sopenharmony_ci }; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci /* 2962306a36Sopenharmony_ci * The buttons on the EV3 are mapped to keyboard keys. 3062306a36Sopenharmony_ci */ 3162306a36Sopenharmony_ci gpio_keys { 3262306a36Sopenharmony_ci compatible = "gpio-keys"; 3362306a36Sopenharmony_ci label = "EV3 Brick Buttons"; 3462306a36Sopenharmony_ci pinctrl-names = "default"; 3562306a36Sopenharmony_ci pinctrl-0 = <&button_bias>; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci center { 3862306a36Sopenharmony_ci label = "Center"; 3962306a36Sopenharmony_ci linux,code = <KEY_ENTER>; 4062306a36Sopenharmony_ci gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; 4162306a36Sopenharmony_ci }; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci left { 4462306a36Sopenharmony_ci label = "Left"; 4562306a36Sopenharmony_ci linux,code = <KEY_LEFT>; 4662306a36Sopenharmony_ci gpios = <&gpio 102 GPIO_ACTIVE_HIGH>; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci back { 5062306a36Sopenharmony_ci label = "Back"; 5162306a36Sopenharmony_ci linux,code = <KEY_BACKSPACE>; 5262306a36Sopenharmony_ci gpios = <&gpio 106 GPIO_ACTIVE_HIGH>; 5362306a36Sopenharmony_ci }; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci right { 5662306a36Sopenharmony_ci label = "Right"; 5762306a36Sopenharmony_ci linux,code = <KEY_RIGHT>; 5862306a36Sopenharmony_ci gpios = <&gpio 124 GPIO_ACTIVE_HIGH>; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci down { 6262306a36Sopenharmony_ci label = "Down"; 6362306a36Sopenharmony_ci linux,code = <KEY_DOWN>; 6462306a36Sopenharmony_ci gpios = <&gpio 126 GPIO_ACTIVE_HIGH>; 6562306a36Sopenharmony_ci }; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci up { 6862306a36Sopenharmony_ci label = "Up"; 6962306a36Sopenharmony_ci linux,code = <KEY_UP>; 7062306a36Sopenharmony_ci gpios = <&gpio 127 GPIO_ACTIVE_HIGH>; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci }; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci /* 7562306a36Sopenharmony_ci * The EV3 has two built-in bi-color LEDs behind the buttons. 7662306a36Sopenharmony_ci */ 7762306a36Sopenharmony_ci leds { 7862306a36Sopenharmony_ci compatible = "gpio-leds"; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci left_green { 8162306a36Sopenharmony_ci label = "led0:green:brick-status"; 8262306a36Sopenharmony_ci /* GP6[13] */ 8362306a36Sopenharmony_ci gpios = <&gpio 103 GPIO_ACTIVE_HIGH>; 8462306a36Sopenharmony_ci linux,default-trigger = "default-on"; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci right_red { 8862306a36Sopenharmony_ci label = "led1:red:brick-status"; 8962306a36Sopenharmony_ci /* GP6[7] */ 9062306a36Sopenharmony_ci gpios = <&gpio 108 GPIO_ACTIVE_HIGH>; 9162306a36Sopenharmony_ci linux,default-trigger = "default-on"; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci left_red { 9562306a36Sopenharmony_ci label = "led0:red:brick-status"; 9662306a36Sopenharmony_ci /* GP6[12] */ 9762306a36Sopenharmony_ci gpios = <&gpio 109 GPIO_ACTIVE_HIGH>; 9862306a36Sopenharmony_ci linux,default-trigger = "default-on"; 9962306a36Sopenharmony_ci }; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci right_green { 10262306a36Sopenharmony_ci label = "led1:green:brick-status"; 10362306a36Sopenharmony_ci /* GP6[14] */ 10462306a36Sopenharmony_ci gpios = <&gpio 110 GPIO_ACTIVE_HIGH>; 10562306a36Sopenharmony_ci linux,default-trigger = "default-on"; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci /* 11062306a36Sopenharmony_ci * The EV3 is powered down by turning off the main 5V supply. 11162306a36Sopenharmony_ci */ 11262306a36Sopenharmony_ci gpio-poweroff { 11362306a36Sopenharmony_ci compatible = "gpio-poweroff"; 11462306a36Sopenharmony_ci gpios = <&gpio 107 GPIO_ACTIVE_LOW>; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci sound { 11862306a36Sopenharmony_ci compatible = "pwm-beeper"; 11962306a36Sopenharmony_ci pinctrl-names = "default"; 12062306a36Sopenharmony_ci pinctrl-0 = <&ehrpwm0b_pins>; 12162306a36Sopenharmony_ci pwms = <&ehrpwm0 1 1000000 0>; 12262306a36Sopenharmony_ci amp-supply = <&>; 12362306a36Sopenharmony_ci }; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci cvdd: regulator0 { 12662306a36Sopenharmony_ci compatible = "regulator-fixed"; 12762306a36Sopenharmony_ci regulator-name = "cvdd"; 12862306a36Sopenharmony_ci regulator-min-microvolt = <1200000>; 12962306a36Sopenharmony_ci regulator-max-microvolt = <1200000>; 13062306a36Sopenharmony_ci regulator-always-on; 13162306a36Sopenharmony_ci regulator-boot-on; 13262306a36Sopenharmony_ci }; 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci /* 13562306a36Sopenharmony_ci * This is a 5V current limiting regulator that is shared by USB, 13662306a36Sopenharmony_ci * the sensor (input) ports, the motor (output) ports and the A/DC. 13762306a36Sopenharmony_ci */ 13862306a36Sopenharmony_ci vcc5v: regulator1 { 13962306a36Sopenharmony_ci compatible = "regulator-fixed"; 14062306a36Sopenharmony_ci regulator-name = "vcc5v"; 14162306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 14262306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 14362306a36Sopenharmony_ci gpio = <&gpio 101 0>; 14462306a36Sopenharmony_ci over-current-gpios = <&gpio 99 GPIO_ACTIVE_LOW>; 14562306a36Sopenharmony_ci enable-active-high; 14662306a36Sopenharmony_ci regulator-boot-on; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci /* 15062306a36Sopenharmony_ci * This is a simple voltage divider on VCC5V to provide a 2.5V 15162306a36Sopenharmony_ci * reference signal to the ADC. 15262306a36Sopenharmony_ci */ 15362306a36Sopenharmony_ci adc_ref: regulator2 { 15462306a36Sopenharmony_ci compatible = "regulator-fixed"; 15562306a36Sopenharmony_ci regulator-name = "adc ref"; 15662306a36Sopenharmony_ci regulator-min-microvolt = <2500000>; 15762306a36Sopenharmony_ci regulator-max-microvolt = <2500000>; 15862306a36Sopenharmony_ci regulator-boot-on; 15962306a36Sopenharmony_ci vin-supply = <&vcc5v>; 16062306a36Sopenharmony_ci }; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci /* 16362306a36Sopenharmony_ci * This is the amplifier for the speaker. 16462306a36Sopenharmony_ci */ 16562306a36Sopenharmony_ci amp: regulator3 { 16662306a36Sopenharmony_ci compatible = "regulator-fixed"; 16762306a36Sopenharmony_ci regulator-name = "amp"; 16862306a36Sopenharmony_ci gpio = <&gpio 111 GPIO_ACTIVE_HIGH>; 16962306a36Sopenharmony_ci enable-active-high; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci /* 17362306a36Sopenharmony_ci * The EV3 can use 6-AA batteries or a rechargeable Li-ion battery pack. 17462306a36Sopenharmony_ci */ 17562306a36Sopenharmony_ci battery { 17662306a36Sopenharmony_ci compatible = "lego,ev3-battery"; 17762306a36Sopenharmony_ci io-channels = <&adc 4>, <&adc 3>; 17862306a36Sopenharmony_ci io-channel-names = "voltage", "current"; 17962306a36Sopenharmony_ci rechargeable-gpios = <&gpio 136 GPIO_ACTIVE_LOW>; 18062306a36Sopenharmony_ci }; 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci bt_slow_clk: bt-clock { 18362306a36Sopenharmony_ci pinctrl-names = "default"; 18462306a36Sopenharmony_ci pinctrl-0 = <&ecap2_pins>, <&bt_clock_bias>; 18562306a36Sopenharmony_ci compatible = "pwm-clock"; 18662306a36Sopenharmony_ci #clock-cells = <0>; 18762306a36Sopenharmony_ci clock-frequency = <32768>; 18862306a36Sopenharmony_ci pwms = <&ecap2 0 30518 0>; 18962306a36Sopenharmony_ci }; 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci /* ARM local RAM */ 19262306a36Sopenharmony_ci memory@ffff0000 { 19362306a36Sopenharmony_ci compatible = "syscon", "simple-mfd"; 19462306a36Sopenharmony_ci reg = <0xffff0000 0x2000>; /* 8k */ 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci /* 19762306a36Sopenharmony_ci * The I2C bootloader looks for this magic value to either 19862306a36Sopenharmony_ci * boot normally or boot into a firmware update mode. 19962306a36Sopenharmony_ci */ 20062306a36Sopenharmony_ci reboot-mode { 20162306a36Sopenharmony_ci compatible = "syscon-reboot-mode"; 20262306a36Sopenharmony_ci offset = <0x1ffc>; 20362306a36Sopenharmony_ci mode-normal = <0x00000000>; 20462306a36Sopenharmony_ci mode-loader = <0x5555aaaa>; 20562306a36Sopenharmony_ci }; 20662306a36Sopenharmony_ci }; 20762306a36Sopenharmony_ci}; 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ci&ref_clk { 21062306a36Sopenharmony_ci clock-frequency = <24000000>; 21162306a36Sopenharmony_ci}; 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci&cpu { 21462306a36Sopenharmony_ci cpu-supply = <&cvdd>; 21562306a36Sopenharmony_ci}; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci/* since we have a fixed regulator, we can't run at these points */ 21862306a36Sopenharmony_ci&opp_100 { 21962306a36Sopenharmony_ci status = "disabled"; 22062306a36Sopenharmony_ci}; 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci&opp_200 { 22362306a36Sopenharmony_ci status = "disabled"; 22462306a36Sopenharmony_ci}; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci/* 22762306a36Sopenharmony_ci * The SoC is actually the 456MHz version, but because of the fixed regulator 22862306a36Sopenharmony_ci * This is the fastest we can go. 22962306a36Sopenharmony_ci */ 23062306a36Sopenharmony_ci&opp_375 { 23162306a36Sopenharmony_ci status = "okay"; 23262306a36Sopenharmony_ci}; 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci&pmx_core { 23562306a36Sopenharmony_ci status = "okay"; 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci ev3_lcd_pins: lcd-pins { 23862306a36Sopenharmony_ci pinctrl-single,bits = < 23962306a36Sopenharmony_ci /* SIMO, CLK */ 24062306a36Sopenharmony_ci 0x14 0x00100100 0x00f00f00 24162306a36Sopenharmony_ci >; 24262306a36Sopenharmony_ci }; 24362306a36Sopenharmony_ci}; 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci&pinconf { 24662306a36Sopenharmony_ci status = "okay"; 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci /* Buttons have external pulldown resistors */ 24962306a36Sopenharmony_ci button_bias: button-bias-groups { 25062306a36Sopenharmony_ci disable { 25162306a36Sopenharmony_ci groups = "cp5", "cp24", "cp25", "cp28"; 25262306a36Sopenharmony_ci bias-disable; 25362306a36Sopenharmony_ci }; 25462306a36Sopenharmony_ci }; 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci bt_clock_bias: bt-clock-bias-groups { 25762306a36Sopenharmony_ci disable { 25862306a36Sopenharmony_ci groups = "cp2"; 25962306a36Sopenharmony_ci bias-disable; 26062306a36Sopenharmony_ci }; 26162306a36Sopenharmony_ci }; 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci bt_pic_bias: bt-pic-bias-groups { 26462306a36Sopenharmony_ci disable { 26562306a36Sopenharmony_ci groups = "cp20"; 26662306a36Sopenharmony_ci bias-disable; 26762306a36Sopenharmony_ci }; 26862306a36Sopenharmony_ci }; 26962306a36Sopenharmony_ci}; 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci/* Input port 1 */ 27262306a36Sopenharmony_ci&serial1 { 27362306a36Sopenharmony_ci status = "okay"; 27462306a36Sopenharmony_ci pinctrl-names = "default"; 27562306a36Sopenharmony_ci pinctrl-0 = <&serial1_rxtx_pins>; 27662306a36Sopenharmony_ci}; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci&serial2 { 27962306a36Sopenharmony_ci pinctrl-names = "default"; 28062306a36Sopenharmony_ci pinctrl-0 = <&serial2_rxtx_pins>, <&serial2_rtscts_pins>, <&bt_pic_bias>; 28162306a36Sopenharmony_ci status = "okay"; 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ci bluetooth { 28462306a36Sopenharmony_ci compatible = "ti,cc2560"; 28562306a36Sopenharmony_ci clocks = <&bt_slow_clk>; 28662306a36Sopenharmony_ci clock-names = "ext_clock"; 28762306a36Sopenharmony_ci enable-gpios = <&gpio 73 GPIO_ACTIVE_HIGH>; 28862306a36Sopenharmony_ci max-speed = <2000000>; 28962306a36Sopenharmony_ci nvmem-cells = <&bdaddr>; 29062306a36Sopenharmony_ci nvmem-cell-names = "bd-address"; 29162306a36Sopenharmony_ci }; 29262306a36Sopenharmony_ci}; 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ci&rtc0 { 29562306a36Sopenharmony_ci status = "okay"; 29662306a36Sopenharmony_ci}; 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ci&i2c0 { 29962306a36Sopenharmony_ci status = "okay"; 30062306a36Sopenharmony_ci clock-frequency = <400000>; 30162306a36Sopenharmony_ci pinctrl-names = "default"; 30262306a36Sopenharmony_ci pinctrl-0 = <&i2c0_pins>; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci /* 30562306a36Sopenharmony_ci * EEPROM contains the first stage bootloader, HW ID and Bluetooth MAC. 30662306a36Sopenharmony_ci */ 30762306a36Sopenharmony_ci eeprom@50 { 30862306a36Sopenharmony_ci compatible = "microchip,24c128", "atmel,24c128"; 30962306a36Sopenharmony_ci pagesize = <64>; 31062306a36Sopenharmony_ci read-only; 31162306a36Sopenharmony_ci reg = <0x50>; 31262306a36Sopenharmony_ci #address-cells = <1>; 31362306a36Sopenharmony_ci #size-cells = <1>; 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ci bdaddr: bdaddr@3f06 { 31662306a36Sopenharmony_ci reg = <0x3f06 0x06>; 31762306a36Sopenharmony_ci }; 31862306a36Sopenharmony_ci }; 31962306a36Sopenharmony_ci}; 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci&wdt { 32262306a36Sopenharmony_ci status = "okay"; 32362306a36Sopenharmony_ci}; 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci&mmc0 { 32662306a36Sopenharmony_ci status = "okay"; 32762306a36Sopenharmony_ci max-frequency = <50000000>; 32862306a36Sopenharmony_ci bus-width = <4>; 32962306a36Sopenharmony_ci cd-gpios = <&gpio 94 GPIO_ACTIVE_LOW>; 33062306a36Sopenharmony_ci pinctrl-names = "default"; 33162306a36Sopenharmony_ci pinctrl-0 = <&mmc0_pins>; 33262306a36Sopenharmony_ci}; 33362306a36Sopenharmony_ci 33462306a36Sopenharmony_ci&spi0 { 33562306a36Sopenharmony_ci status = "okay"; 33662306a36Sopenharmony_ci pinctrl-names = "default"; 33762306a36Sopenharmony_ci pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>, <&spi0_cs3_pin>; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci flash@0 { 34062306a36Sopenharmony_ci compatible = "n25q128a13", "jedec,spi-nor"; 34162306a36Sopenharmony_ci reg = <0>; 34262306a36Sopenharmony_ci spi-max-frequency = <50000000>; 34362306a36Sopenharmony_ci ti,spi-wdelay = <8>; 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci /* Partitions are based on the official firmware from LEGO */ 34662306a36Sopenharmony_ci partitions { 34762306a36Sopenharmony_ci compatible = "fixed-partitions"; 34862306a36Sopenharmony_ci #address-cells = <1>; 34962306a36Sopenharmony_ci #size-cells = <1>; 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_ci partition@0 { 35262306a36Sopenharmony_ci label = "U-Boot"; 35362306a36Sopenharmony_ci reg = <0 0x40000>; 35462306a36Sopenharmony_ci }; 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ci partition@40000 { 35762306a36Sopenharmony_ci label = "U-Boot Env"; 35862306a36Sopenharmony_ci reg = <0x40000 0x10000>; 35962306a36Sopenharmony_ci }; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci partition@50000 { 36262306a36Sopenharmony_ci label = "Kernel"; 36362306a36Sopenharmony_ci reg = <0x50000 0x200000>; 36462306a36Sopenharmony_ci }; 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci partition@250000 { 36762306a36Sopenharmony_ci label = "Filesystem"; 36862306a36Sopenharmony_ci reg = <0x250000 0xa50000>; 36962306a36Sopenharmony_ci }; 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci partition@cb0000 { 37262306a36Sopenharmony_ci label = "Storage"; 37362306a36Sopenharmony_ci reg = <0xcb0000 0x2f0000>; 37462306a36Sopenharmony_ci }; 37562306a36Sopenharmony_ci }; 37662306a36Sopenharmony_ci }; 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ci adc: adc@3 { 37962306a36Sopenharmony_ci compatible = "ti,ads7957"; 38062306a36Sopenharmony_ci reg = <3>; 38162306a36Sopenharmony_ci #io-channel-cells = <1>; 38262306a36Sopenharmony_ci spi-max-frequency = <1000000>; 38362306a36Sopenharmony_ci ti,spi-wdelay = <63>; 38462306a36Sopenharmony_ci vref-supply = <&adc_ref>; 38562306a36Sopenharmony_ci }; 38662306a36Sopenharmony_ci}; 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci&spi1 { 38962306a36Sopenharmony_ci status = "okay"; 39062306a36Sopenharmony_ci pinctrl-0 = <&ev3_lcd_pins>; 39162306a36Sopenharmony_ci pinctrl-names = "default"; 39262306a36Sopenharmony_ci cs-gpios = <&gpio 44 GPIO_ACTIVE_LOW>; 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ci display@0 { 39562306a36Sopenharmony_ci compatible = "lego,ev3-lcd"; 39662306a36Sopenharmony_ci reg = <0>; 39762306a36Sopenharmony_ci spi-max-frequency = <10000000>; 39862306a36Sopenharmony_ci a0-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>; 39962306a36Sopenharmony_ci reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>; 40062306a36Sopenharmony_ci }; 40162306a36Sopenharmony_ci}; 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ci&ecap2 { 40462306a36Sopenharmony_ci status = "okay"; 40562306a36Sopenharmony_ci}; 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ci&ehrpwm0 { 40862306a36Sopenharmony_ci status = "okay"; 40962306a36Sopenharmony_ci}; 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_ci&gpio { 41262306a36Sopenharmony_ci status = "okay"; 41362306a36Sopenharmony_ci 41462306a36Sopenharmony_ci /* Don't pull down battery voltage adc io channel */ 41562306a36Sopenharmony_ci batt_volt_en { 41662306a36Sopenharmony_ci gpio-hog; 41762306a36Sopenharmony_ci gpios = <6 GPIO_ACTIVE_HIGH>; 41862306a36Sopenharmony_ci output-high; 41962306a36Sopenharmony_ci }; 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ci /* Don't impede Bluetooth clock signal */ 42262306a36Sopenharmony_ci bt_clock_en { 42362306a36Sopenharmony_ci gpio-hog; 42462306a36Sopenharmony_ci gpios = <5 GPIO_ACTIVE_HIGH>; 42562306a36Sopenharmony_ci input; 42662306a36Sopenharmony_ci }; 42762306a36Sopenharmony_ci 42862306a36Sopenharmony_ci /* 42962306a36Sopenharmony_ci * There is a PIC microcontroller for interfacing with an Apple MFi 43062306a36Sopenharmony_ci * chip. This interferes with normal Bluetooth operation, so we need 43162306a36Sopenharmony_ci * to make sure it is turned off. Note: The publicly available 43262306a36Sopenharmony_ci * schematics from LEGO don't show that these pins are connected to 43362306a36Sopenharmony_ci * anything, but they are present in the source code from LEGO. 43462306a36Sopenharmony_ci */ 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ci bt_pic_en { 43762306a36Sopenharmony_ci gpio-hog; 43862306a36Sopenharmony_ci gpios = <51 GPIO_ACTIVE_HIGH>; 43962306a36Sopenharmony_ci output-low; 44062306a36Sopenharmony_ci }; 44162306a36Sopenharmony_ci 44262306a36Sopenharmony_ci bt_pic_rst { 44362306a36Sopenharmony_ci gpio-hog; 44462306a36Sopenharmony_ci gpios = <78 GPIO_ACTIVE_HIGH>; 44562306a36Sopenharmony_ci output-high; 44662306a36Sopenharmony_ci }; 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ci bt_pic_cts { 44962306a36Sopenharmony_ci gpio-hog; 45062306a36Sopenharmony_ci gpios = <87 GPIO_ACTIVE_HIGH>; 45162306a36Sopenharmony_ci input; 45262306a36Sopenharmony_ci }; 45362306a36Sopenharmony_ci}; 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ci&usb_phy { 45662306a36Sopenharmony_ci status = "okay"; 45762306a36Sopenharmony_ci}; 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ci&usb0 { 46062306a36Sopenharmony_ci status = "okay"; 46162306a36Sopenharmony_ci}; 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ci&usb1 { 46462306a36Sopenharmony_ci status = "okay"; 46562306a36Sopenharmony_ci vbus-supply = <&vcc5v>; 46662306a36Sopenharmony_ci}; 467