mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-27 04:18:51 +09:00
![Adam Ford](/assets/img/avatar_default.png)
The Beacon EmbeddedWorks kit is based on the R8A774A1 SoC also known as the RZ/G2M. The kit consists of a SOM + Baseboard and supports microSD, eMMC, Ethernet, a couple celular radios, two CAN interfaces, Bluetooth and WiFi. Signed-off-by: Adam Ford <aford173@gmail.com>
598 lines
11 KiB
Plaintext
598 lines
11 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright 2020, Compass Electronics Group, LLC
|
|
*/
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
aliases {
|
|
serial0 = &scif2;
|
|
serial1 = &hscif0;
|
|
serial2 = &hscif1;
|
|
serial3 = &scif0;
|
|
serial4 = &hscif2;
|
|
serial5 = &scif5;
|
|
spi0 = &msiof0;
|
|
spi1 = &msiof1;
|
|
spi2 = &msiof2;
|
|
spi3 = &msiof3;
|
|
ethernet0 = &avb;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
backlight: backlight {
|
|
compatible = "pwm-backlight";
|
|
power-supply = <®_lcd>;
|
|
enable-gpios = <&gpio_exp1 3 GPIO_ACTIVE_HIGH>;
|
|
pwms = <&pwm0 0 50000>;
|
|
brightness-levels = <0 4 8 16 32 64 128 255>;
|
|
default-brightness-level = <6>;
|
|
};
|
|
|
|
hdmi0-out {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi0_con: endpoint {
|
|
remote-endpoint = <&rcar_dw_hdmi0_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys";
|
|
|
|
key-1 {
|
|
gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_1>;
|
|
label = "Switch-1";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-2 {
|
|
gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_2>;
|
|
label = "Switch-2";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-3 {
|
|
gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_3>;
|
|
label = "Switch-3";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-4 {
|
|
gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_4>;
|
|
label = "Switch-4";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-5 {
|
|
gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_5>;
|
|
label = "Switch-4";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
pinctrl-0 = <&led_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
led0 {
|
|
gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
|
|
label = "LED0";
|
|
linux,default-trigger = "heartbeat";
|
|
};
|
|
led1 {
|
|
gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
|
|
label = "LED1";
|
|
linux,default-trigger = "heartbeat";
|
|
};
|
|
led2 {
|
|
gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
|
|
label = "LED2";
|
|
linux,default-trigger = "heartbeat";
|
|
};
|
|
led3 {
|
|
gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
|
|
label = "LED3";
|
|
linux,default-trigger = "heartbeat";
|
|
};
|
|
};
|
|
|
|
reg_audio: regulator_audio {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "audio-1.8V";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
gpio = <&gpio_exp2 7 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
reg_lcd: regulator-lcd {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "lcd_panel_pwr";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio_exp1 1 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
reg_lcd_reset: regulator-lcd-reset {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "nLCD_RESET";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
vin-supply = <®_lcd>;
|
|
};
|
|
|
|
reg_cam0: regulator_camera {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "reg_cam0";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
gpio = <&gpio_exp2 2 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
reg_cam1: regulator_camera {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "reg_cam1";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
gpio = <&gpio_exp2 5 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
startup-delay-us = <100000>;
|
|
};
|
|
|
|
sound_card {
|
|
compatible = "audio-graph-card";
|
|
label = "rcar-sound";
|
|
dais = <&rsnd_port0>, <&rsnd_port1>;
|
|
};
|
|
|
|
vccq_sdhi0: regulator-vccq-sdhi0 {
|
|
compatible = "regulator-gpio";
|
|
|
|
regulator-name = "SDHI0 VccQ";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
|
|
gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
|
|
gpios-states = <1>;
|
|
states = <3300000 1>, <1800000 0>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
/* External DU dot clocks */
|
|
x302_clk: x302-clock {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <33000000>;
|
|
};
|
|
|
|
x304_clk: x304-clock {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <25000000>;
|
|
};
|
|
};
|
|
|
|
&audio_clk_a {
|
|
clock-frequency = <22579200>;
|
|
};
|
|
|
|
&audio_clk_b {
|
|
clock-frequency = <22579200>;
|
|
};
|
|
|
|
&can0 {
|
|
pinctrl-0 = <&can0_pins>;
|
|
pinctrl-names = "default";
|
|
renesas,can-clock-select = <0x0>;
|
|
status = "okay";
|
|
};
|
|
|
|
&can1 {
|
|
pinctrl-0 = <&can1_pins>;
|
|
pinctrl-names = "default";
|
|
renesas,can-clock-select = <0x0>;
|
|
status = "okay";
|
|
};
|
|
|
|
&du {
|
|
pinctrl-0 = <&du_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
|
|
clocks = <&cpg CPG_MOD 724>,
|
|
<&cpg CPG_MOD 723>,
|
|
<&cpg CPG_MOD 722>,
|
|
<&versaclock5 1>,
|
|
<&x302_clk>,
|
|
<&versaclock5 2>;
|
|
clock-names = "du.0", "du.1", "du.2",
|
|
"dclkin.0", "dclkin.1", "dclkin.2";
|
|
};
|
|
|
|
&ehci0 {
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&versaclock5 3>, <&versaclock6_bb 4>;
|
|
};
|
|
|
|
&ehci1 {
|
|
status = "okay";
|
|
clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&versaclock5 4>;
|
|
};
|
|
|
|
&hdmi0 {
|
|
status = "okay";
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
port@0 {
|
|
reg = <0>;
|
|
dw_hdmi0_in: endpoint {
|
|
remote-endpoint = <&du_out_hdmi0>;
|
|
};
|
|
};
|
|
port@1 {
|
|
reg = <1>;
|
|
rcar_dw_hdmi0_out: endpoint {
|
|
remote-endpoint = <&hdmi0_con>;
|
|
};
|
|
};
|
|
port@2 {
|
|
/* HDMI sound */
|
|
reg = <2>;
|
|
dw_hdmi0_snd_in: endpoint {
|
|
remote-endpoint = <&rsnd_endpoint1>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&hscif1 {
|
|
pinctrl-0 = <&hscif1_pins>;
|
|
pinctrl-names = "default";
|
|
uart-has-rtscts;
|
|
status = "okay";
|
|
};
|
|
|
|
&hsusb {
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c2 {
|
|
status = "okay";
|
|
clock-frequency = <100000>;
|
|
pinctrl-0 = <&i2c2_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
gpio_exp2: gpio@21 {
|
|
compatible = "onnn,pca9654";
|
|
reg = <0x21>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
gpio_exp3: gpio@22 {
|
|
compatible = "onnn,pca9654";
|
|
reg = <0x22>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
versaclock6_bb: versaclock6_bb@6a {
|
|
compatible = "idt,5p49v6965";
|
|
reg = <0x6a>;
|
|
#clock-cells = <1>;
|
|
clocks = <&x304_clk>;
|
|
clock-names = "xin";
|
|
/* CSI0_MCLK, CSI1_MCLK, AUDIO_CLKIN, USB_HUB_MCLK_BB */
|
|
assigned-clocks = <&versaclock6_bb 1>,
|
|
<&versaclock6_bb 2>,
|
|
<&versaclock6_bb 3>,
|
|
<&versaclock6_bb 4>;
|
|
assigned-clock-rates = <24000000>, <24000000>, <24000000>, <24000000>;
|
|
};
|
|
};
|
|
|
|
&i2c0 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&i2c5 {
|
|
status = "okay";
|
|
clock-frequency = <100000>;
|
|
pinctrl-0 = <&i2c5_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
codec: wm8962@1a {
|
|
compatible = "wlf,wm8962";
|
|
reg = <0x1a>;
|
|
DCVDD-supply = <®_audio>;
|
|
DBVDD-supply = <®_audio>;
|
|
AVDD-supply = <®_audio>;
|
|
CPVDD-supply = <®_audio>;
|
|
MICVDD-supply = <®_audio>;
|
|
PLLVDD-supply = <®_audio>;
|
|
SPKVDD1-supply = <®_audio>;
|
|
SPKVDD2-supply = <®_audio>;
|
|
gpio-cfg = <
|
|
0x0000 /* 0:Default */
|
|
0x0000 /* 1:Default */
|
|
0x0000 /* 2:Default */
|
|
0x0000 /* 3:Default */
|
|
0x0000 /* 4:Default */
|
|
0x0000 /* 5:Default */
|
|
>;
|
|
port {
|
|
wm8962_endpoint: endpoint {
|
|
remote-endpoint = <&rsnd_endpoint0>;
|
|
};
|
|
};
|
|
};
|
|
|
|
/* 0 - lcd_reset */
|
|
/* 1 - lcd_pwr */
|
|
/* 2 - lcd_select */
|
|
/* 3 - backlight-enable */
|
|
/* 4 - Touch_shdwn */
|
|
/* 5 - LCD_H_pol */
|
|
/* 6 - lcd_V_pol */
|
|
gpio_exp1: gpio@20 {
|
|
compatible = "onnn,pca9654";
|
|
reg = <0x20>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
touchscreen@26 {
|
|
compatible = "ilitek,ili2117";
|
|
reg = <0x26>;
|
|
interrupt-parent = <&gpio5>;
|
|
interrupts = <9 IRQ_TYPE_EDGE_RISING>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
&ohci0 {
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pciec0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pciec1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie_bus_clk {
|
|
clock-frequency = <100000000>;
|
|
};
|
|
|
|
&pfc {
|
|
can0_pins: can0 {
|
|
groups = "can0_data_a";
|
|
function = "can0";
|
|
};
|
|
|
|
can1_pins: can1 {
|
|
groups = "can1_data";
|
|
function = "can1";
|
|
};
|
|
|
|
du_pins: du {
|
|
groups = "du_rgb888", "du_sync", "du_clk_out_1", "du_disp";
|
|
function = "du";
|
|
};
|
|
|
|
i2c2_pins: i2c2 {
|
|
groups = "i2c2_a";
|
|
function = "i2c2";
|
|
};
|
|
|
|
i2c5_pins: i2c5 {
|
|
groups = "i2c5";
|
|
function = "i2c5";
|
|
};
|
|
|
|
led_pins: leds {
|
|
/* GP_0_4 , AVS1, AVS2, GP_7_3 */
|
|
pins = "GP_0_4", "GP_7_0", "GP_7_1", "GP_7_3";
|
|
bias-pull-down;
|
|
};
|
|
|
|
msiof1_pins: msiof1 {
|
|
groups = "msiof1_clk_g", "msiof1_rxd_g", "msiof1_txd_g";
|
|
function = "msiof1";
|
|
};
|
|
|
|
pwm0_pins: pwm0 {
|
|
groups = "pwm0";
|
|
function = "pwm0";
|
|
};
|
|
|
|
sdhi0_pins: sd0 {
|
|
groups = "sdhi0_data4", "sdhi0_ctrl";
|
|
function = "sdhi0";
|
|
power-source = <3300>;
|
|
};
|
|
|
|
sdhi0_pins_uhs: sd0_uhs {
|
|
groups = "sdhi0_data4", "sdhi0_ctrl";
|
|
function = "sdhi0";
|
|
power-source = <1800>;
|
|
};
|
|
|
|
sound_pins: sound {
|
|
groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a";
|
|
function = "ssi";
|
|
};
|
|
|
|
sound_clk_pins: sound_clk {
|
|
groups = "audio_clk_a_a";
|
|
function = "audio_clk";
|
|
};
|
|
|
|
usb0_pins: usb0 {
|
|
mux {
|
|
groups = "usb0";
|
|
function = "usb0";
|
|
};
|
|
};
|
|
|
|
usb1_pins: usb1 {
|
|
mux {
|
|
groups = "usb1";
|
|
function = "usb1";
|
|
};
|
|
};
|
|
|
|
usb30_pins: usb30 {
|
|
mux {
|
|
groups = "usb30";
|
|
function = "usb30";
|
|
};
|
|
};
|
|
};
|
|
|
|
&pwm0 {
|
|
pinctrl-0 = <&pwm0_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&rcar_sound {
|
|
pinctrl-0 = <&sound_pins &sound_clk_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
/* Single DAI */
|
|
#sound-dai-cells = <0>;
|
|
|
|
/* audio_clkout0/1/2/3 */
|
|
#clock-cells = <1>;
|
|
clock-frequency = <11289600>;
|
|
|
|
status = "okay";
|
|
|
|
clocks = <&cpg CPG_MOD 1005>,
|
|
<&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
|
|
<&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
|
|
<&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
|
|
<&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
|
|
<&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
|
|
<&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
|
|
<&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
|
|
<&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
|
|
<&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
|
|
<&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
|
|
<&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
|
|
<&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
|
|
<&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
|
|
<&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>,
|
|
<&cpg CPG_CORE R8A774A1_CLK_S0D4>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
rsnd_port0: port@0 {
|
|
reg = <0>;
|
|
rsnd_endpoint0: endpoint {
|
|
remote-endpoint = <&wm8962_endpoint>;
|
|
|
|
dai-format = "i2s";
|
|
bitclock-master = <&rsnd_endpoint0>;
|
|
frame-master = <&rsnd_endpoint0>;
|
|
|
|
playback = <&ssi1 &dvc1 &src1>;
|
|
capture = <&ssi0>;
|
|
};
|
|
};
|
|
rsnd_port1: port@1 {
|
|
reg = <0x01>;
|
|
rsnd_endpoint1: endpoint {
|
|
remote-endpoint = <&dw_hdmi0_snd_in>;
|
|
|
|
dai-format = "i2s";
|
|
bitclock-master = <&rsnd_endpoint1>;
|
|
frame-master = <&rsnd_endpoint1>;
|
|
|
|
playback = <&ssi2>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&scif0 {
|
|
pinctrl-0 = <&scif0_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&scif5 {
|
|
pinctrl-0 = <&scif5_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&scif_clk {
|
|
clock-frequency = <14745600>;
|
|
};
|
|
|
|
&sdhi0 {
|
|
pinctrl-0 = <&sdhi0_pins>;
|
|
pinctrl-1 = <&sdhi0_pins_uhs>;
|
|
pinctrl-names = "default", "state_uhs";
|
|
vmmc-supply = <®_3p3v>;
|
|
vqmmc-supply = <&vccq_sdhi0>;
|
|
cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
|
|
bus-width = <4>;
|
|
sd-uhs-sdr50;
|
|
sd-uhs-sdr104;
|
|
status = "okay";
|
|
};
|
|
|
|
&ssi1 {
|
|
shared-pin;
|
|
};
|
|
|
|
&usb2_phy0 {
|
|
pinctrl-0 = <&usb0_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&usb2_phy1 {
|
|
pinctrl-0 = <&usb1_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|