mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-26 14:29:04 +00:00

bootph-all as phase tag was added to dt-schema (dtschema/schemas/bootph.yaml) to describe various node usage during boot phases with DT. Add bootph-all for all nodes that are used in the bootloader on Renesas R-Car Gen2 SoCs. All SoC require CPG clock and its input clock, RST Reset, PFC pin control and PRR ID register access during all stages of the boot process, those are marked using bootph-all property, and so is the SoC bus node which contains these IP. Each board console UART is also marked as bootph-all to make it available in all stages of the boot process. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/20250209180616.160253-1-marek.vasut+renesas@mailbox.org Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
593 lines
10 KiB
Plaintext
593 lines
10 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Device Tree Source for the SILK board
|
|
*
|
|
* Copyright (C) 2014 Renesas Electronics Corporation
|
|
* Copyright (C) 2014-2015 Renesas Solutions Corp.
|
|
* Copyright (C) 2014-2015 Cogent Embedded, Inc.
|
|
*/
|
|
|
|
/*
|
|
* SSI-AK4643
|
|
*
|
|
* SW1: 2-1: AK4643
|
|
* 2-3: ADV7511
|
|
*
|
|
* This command is required before playback/capture:
|
|
*
|
|
* amixer set "LINEOUT Mixer DACL" on
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include "r8a7794.dtsi"
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
model = "SILK";
|
|
compatible = "renesas,silk", "renesas,r8a7794";
|
|
|
|
aliases {
|
|
serial0 = &scif2;
|
|
i2c9 = &gpioi2c1;
|
|
i2c10 = &i2chdmi;
|
|
mmc0 = &mmcif0;
|
|
mmc1 = &sdhi1;
|
|
};
|
|
|
|
chosen {
|
|
bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
memory@40000000 {
|
|
device_type = "memory";
|
|
reg = <0 0x40000000 0 0x40000000>;
|
|
};
|
|
|
|
keyboard {
|
|
compatible = "gpio-keys";
|
|
|
|
pinctrl-0 = <&keyboard_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
key-3 {
|
|
gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_3>;
|
|
label = "SW3";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-4 {
|
|
gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_4>;
|
|
label = "SW4";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-6 {
|
|
gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_6>;
|
|
label = "SW6";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-a {
|
|
gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_A>;
|
|
label = "SW12-1";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-b {
|
|
gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_B>;
|
|
label = "SW12-2";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-c {
|
|
gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_C>;
|
|
label = "SW12-3";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
key-d {
|
|
gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_D>;
|
|
label = "SW12-4";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
};
|
|
|
|
d1_8v: regulator-d1-8v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "D1.8V";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
d3_3v: regulator-d3-3v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "D3.3V";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vcc_sdhi1: regulator-vcc-sdhi1 {
|
|
compatible = "regulator-fixed";
|
|
|
|
regulator-name = "SDHI1 Vcc";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
|
|
gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
vccq_sdhi1: regulator-vccq-sdhi1 {
|
|
compatible = "regulator-gpio";
|
|
|
|
regulator-name = "SDHI1 VccQ";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
|
|
gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
|
|
gpios-states = <1>;
|
|
states = <3300000 1>, <1800000 0>;
|
|
};
|
|
|
|
vga-encoder {
|
|
compatible = "adi,adv7123";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
adv7123_in: endpoint {
|
|
remote-endpoint = <&du_out_rgb1>;
|
|
};
|
|
};
|
|
port@1 {
|
|
reg = <1>;
|
|
adv7123_out: endpoint {
|
|
remote-endpoint = <&vga_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
hdmi-out {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi_con: endpoint {
|
|
remote-endpoint = <&adv7511_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
vga {
|
|
compatible = "vga-connector";
|
|
|
|
port {
|
|
vga_in: endpoint {
|
|
remote-endpoint = <&adv7123_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
x2_clk: x2-clock {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <148500000>;
|
|
};
|
|
|
|
x3_clk: x3-clock {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <74250000>;
|
|
};
|
|
|
|
x9_clk: audio_clock {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <12288000>;
|
|
};
|
|
|
|
sound {
|
|
compatible = "simple-audio-card";
|
|
|
|
simple-audio-card,format = "left_j";
|
|
simple-audio-card,bitclock-master = <&soundcodec>;
|
|
simple-audio-card,frame-master = <&soundcodec>;
|
|
|
|
simple-audio-card,cpu {
|
|
sound-dai = <&rcar_sound>;
|
|
};
|
|
|
|
soundcodec: simple-audio-card,codec {
|
|
sound-dai = <&ak4643>;
|
|
clocks = <&x9_clk>;
|
|
};
|
|
};
|
|
|
|
gpioi2c1: i2c-9 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "i2c-gpio";
|
|
status = "disabled";
|
|
scl-gpios = <&gpio4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
sda-gpios = <&gpio4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
i2c-gpio,delay-us = <5>;
|
|
};
|
|
|
|
/*
|
|
* A fallback to GPIO is provided for I2C1.
|
|
*/
|
|
i2chdmi: i2c-mux1 {
|
|
compatible = "i2c-demux-pinctrl";
|
|
i2c-parent = <&i2c1>, <&gpioi2c1>;
|
|
i2c-bus-name = "i2c-hdmi";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
ak4643: codec@12 {
|
|
compatible = "asahi-kasei,ak4643";
|
|
#sound-dai-cells = <0>;
|
|
reg = <0x12>;
|
|
};
|
|
|
|
composite-in@20 {
|
|
compatible = "adi,adv7180";
|
|
reg = <0x20>;
|
|
|
|
port {
|
|
adv7180: endpoint {
|
|
bus-width = <8>;
|
|
remote-endpoint = <&vin0ep>;
|
|
};
|
|
};
|
|
};
|
|
|
|
hdmi@39 {
|
|
compatible = "adi,adv7511w";
|
|
reg = <0x39>;
|
|
interrupts-extended = <&gpio5 23 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
avdd-supply = <&d1_8v>;
|
|
dvdd-supply = <&d1_8v>;
|
|
pvdd-supply = <&d1_8v>;
|
|
dvdd-3v-supply = <&d3_3v>;
|
|
bgvdd-supply = <&d1_8v>;
|
|
|
|
adi,input-depth = <8>;
|
|
adi,input-colorspace = "rgb";
|
|
adi,input-clock = "1x";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
adv7511_in: endpoint {
|
|
remote-endpoint = <&du_out_rgb0>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
adv7511_out: endpoint {
|
|
remote-endpoint = <&hdmi_con>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
eeprom@50 {
|
|
compatible = "renesas,r1ex24002", "atmel,24c02";
|
|
reg = <0x50>;
|
|
pagesize = <16>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&extal_clk {
|
|
clock-frequency = <20000000>;
|
|
};
|
|
|
|
&pfc {
|
|
pinctrl-0 = <&scif_clk_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
scif2_pins: scif2 {
|
|
groups = "scif2_data";
|
|
function = "scif2";
|
|
};
|
|
|
|
scif_clk_pins: scif_clk {
|
|
groups = "scif_clk";
|
|
function = "scif_clk";
|
|
};
|
|
|
|
ether_pins: ether {
|
|
groups = "eth_link", "eth_mdio", "eth_rmii";
|
|
function = "eth";
|
|
};
|
|
|
|
phy1_pins: phy1 {
|
|
groups = "intc_irq8";
|
|
function = "intc";
|
|
};
|
|
|
|
i2c1_pins: i2c1 {
|
|
groups = "i2c1";
|
|
function = "i2c1";
|
|
};
|
|
|
|
mmcif0_pins: mmcif0 {
|
|
groups = "mmc_data8", "mmc_ctrl";
|
|
function = "mmc";
|
|
};
|
|
|
|
sdhi1_pins: sd1 {
|
|
groups = "sdhi1_data4", "sdhi1_ctrl";
|
|
function = "sdhi1";
|
|
};
|
|
|
|
qspi_pins: qspi {
|
|
groups = "qspi_ctrl", "qspi_data4";
|
|
function = "qspi";
|
|
};
|
|
|
|
vin0_pins: vin0 {
|
|
groups = "vin0_data8", "vin0_clk";
|
|
function = "vin0";
|
|
};
|
|
|
|
usb0_pins: usb0 {
|
|
groups = "usb0";
|
|
function = "usb0";
|
|
};
|
|
|
|
usb1_pins: usb1 {
|
|
groups = "usb1";
|
|
function = "usb1";
|
|
};
|
|
|
|
du0_pins: du0 {
|
|
groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
|
|
function = "du0";
|
|
};
|
|
|
|
du1_pins: du1 {
|
|
groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
|
|
function = "du1";
|
|
};
|
|
|
|
keyboard_pins: keyboard {
|
|
pins = "GP_3_9", "GP_3_10", "GP_3_11", "GP_3_12";
|
|
bias-pull-up;
|
|
};
|
|
|
|
ssi_pins: sound {
|
|
groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
|
|
function = "ssi";
|
|
};
|
|
|
|
audio_clk_pins: audio_clk {
|
|
groups = "audio_clkc";
|
|
function = "audio_clk";
|
|
};
|
|
};
|
|
|
|
&scif2 {
|
|
pinctrl-0 = <&scif2_pins>;
|
|
pinctrl-names = "default";
|
|
bootph-all;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&scif_clk {
|
|
clock-frequency = <14745600>;
|
|
};
|
|
|
|
ðer {
|
|
pinctrl-0 = <ðer_pins>, <&phy1_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
phy-handle = <&phy1>;
|
|
renesas,ether-link-active-low;
|
|
status = "okay";
|
|
|
|
phy1: ethernet-phy@1 {
|
|
compatible = "ethernet-phy-id0022.1537",
|
|
"ethernet-phy-ieee802.3-c22";
|
|
reg = <1>;
|
|
interrupts-extended = <&irqc0 8 IRQ_TYPE_LEVEL_LOW>;
|
|
micrel,led-mode = <1>;
|
|
reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
&i2c1 {
|
|
pinctrl-0 = <&i2c1_pins>;
|
|
pinctrl-names = "i2c-hdmi";
|
|
|
|
clock-frequency = <400000>;
|
|
};
|
|
|
|
&i2c7 {
|
|
status = "okay";
|
|
clock-frequency = <100000>;
|
|
|
|
pmic@58 {
|
|
compatible = "dlg,da9063";
|
|
reg = <0x58>;
|
|
interrupts-extended = <&gpio3 31 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
onkey {
|
|
compatible = "dlg,da9063-onkey";
|
|
};
|
|
|
|
rtc {
|
|
compatible = "dlg,da9063-rtc";
|
|
};
|
|
|
|
watchdog {
|
|
compatible = "dlg,da9063-watchdog";
|
|
};
|
|
};
|
|
};
|
|
|
|
&mmcif0 {
|
|
pinctrl-0 = <&mmcif0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
vmmc-supply = <&d3_3v>;
|
|
vqmmc-supply = <&d3_3v>;
|
|
bus-width = <8>;
|
|
non-removable;
|
|
status = "okay";
|
|
};
|
|
|
|
&sdhi1 {
|
|
pinctrl-0 = <&sdhi1_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
vmmc-supply = <&vcc_sdhi1>;
|
|
vqmmc-supply = <&vccq_sdhi1>;
|
|
cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
|
|
status = "okay";
|
|
};
|
|
|
|
&qspi {
|
|
pinctrl-0 = <&qspi_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
status = "okay";
|
|
|
|
flash@0 {
|
|
compatible = "spansion,s25fl512s", "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <30000000>;
|
|
spi-tx-bus-width = <4>;
|
|
spi-rx-bus-width = <4>;
|
|
spi-cpol;
|
|
spi-cpha;
|
|
m25p,fast-read;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "loader";
|
|
reg = <0x00000000 0x00040000>;
|
|
read-only;
|
|
};
|
|
partition@40000 {
|
|
label = "user";
|
|
reg = <0x00040000 0x00400000>;
|
|
read-only;
|
|
};
|
|
partition@440000 {
|
|
label = "flash";
|
|
reg = <0x00440000 0x03bc0000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
/* composite video input */
|
|
&vin0 {
|
|
status = "okay";
|
|
pinctrl-0 = <&vin0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
port {
|
|
vin0ep: endpoint {
|
|
remote-endpoint = <&adv7180>;
|
|
bus-width = <8>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pci0 {
|
|
status = "okay";
|
|
pinctrl-0 = <&usb0_pins>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&pci1 {
|
|
status = "okay";
|
|
pinctrl-0 = <&usb1_pins>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&usbphy {
|
|
status = "okay";
|
|
};
|
|
|
|
&du {
|
|
pinctrl-0 = <&du0_pins>, <&du1_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
|
|
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
|
|
<&x2_clk>, <&x3_clk>;
|
|
clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
|
|
|
|
ports {
|
|
port@0 {
|
|
endpoint {
|
|
remote-endpoint = <&adv7511_in>;
|
|
};
|
|
};
|
|
port@1 {
|
|
endpoint {
|
|
remote-endpoint = <&adv7123_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&rcar_sound {
|
|
pinctrl-0 = <&ssi_pins>, <&audio_clk_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
|
|
/* Single DAI */
|
|
#sound-dai-cells = <0>;
|
|
|
|
rcar_sound,dai {
|
|
dai0 {
|
|
playback = <&ssi0>;
|
|
capture = <&ssi1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&rwdt {
|
|
timeout-sec = <60>;
|
|
status = "okay";
|
|
};
|
|
|
|
&ssi1 {
|
|
shared-pin;
|
|
};
|