mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +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 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-2-marek.vasut+renesas@mailbox.org Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
410 lines
7.1 KiB
Text
410 lines
7.1 KiB
Text
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
/*
|
|
* Device Tree Source for the common parts shared by the White Hawk CPU and
|
|
* White Hawk Single boards
|
|
*
|
|
* Copyright (C) 2022 Renesas Electronics Corp.
|
|
*/
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
|
|
/ {
|
|
aliases {
|
|
ethernet0 = &avb0;
|
|
i2c0 = &i2c0;
|
|
i2c1 = &i2c1;
|
|
i2c2 = &i2c2;
|
|
i2c3 = &i2c3;
|
|
i2c4 = &i2c4;
|
|
i2c5 = &i2c5;
|
|
serial0 = &hscif0;
|
|
};
|
|
|
|
chosen {
|
|
bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
|
|
stdout-path = "serial0:921600n8";
|
|
};
|
|
|
|
sn65dsi86_refclk: clk-x6 {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <38400000>;
|
|
};
|
|
|
|
keys {
|
|
compatible = "gpio-keys";
|
|
|
|
pinctrl-0 = <&keys_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
key-1 {
|
|
gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_1>;
|
|
label = "SW47";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
|
|
key-2 {
|
|
gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_2>;
|
|
label = "SW48";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
|
|
key-3 {
|
|
gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_3>;
|
|
label = "SW49";
|
|
wakeup-source;
|
|
debounce-interval = <20>;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led-1 {
|
|
gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <1>;
|
|
};
|
|
|
|
led-2 {
|
|
gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <2>;
|
|
};
|
|
|
|
led-3 {
|
|
gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <3>;
|
|
};
|
|
};
|
|
|
|
memory@48000000 {
|
|
device_type = "memory";
|
|
/* first 128MB is reserved for secure area. */
|
|
reg = <0x0 0x48000000 0x0 0x78000000>;
|
|
};
|
|
|
|
memory@480000000 {
|
|
device_type = "memory";
|
|
reg = <0x4 0x80000000 0x0 0x80000000>;
|
|
};
|
|
|
|
memory@600000000 {
|
|
device_type = "memory";
|
|
reg = <0x6 0x00000000 0x1 0x00000000>;
|
|
};
|
|
|
|
mini-dp-con {
|
|
compatible = "dp-connector";
|
|
label = "CN5";
|
|
type = "mini";
|
|
|
|
port {
|
|
mini_dp_con_in: endpoint {
|
|
remote-endpoint = <&sn65dsi86_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
pcie_clk: clk-9fgv0841-pci {
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <100000000>;
|
|
#clock-cells = <0>;
|
|
};
|
|
|
|
reg_1p2v: regulator-1p2v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "fixed-1.2V";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
reg_1p8v: regulator-1p8v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "fixed-1.8V";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
reg_3p3v: regulator-3p3v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "fixed-3.3V";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
|
|
&avb0 {
|
|
pinctrl-0 = <&avb0_pins>;
|
|
pinctrl-names = "default";
|
|
phy-handle = <&avb0_phy>;
|
|
tx-internal-delay-ps = <2000>;
|
|
status = "okay";
|
|
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
avb0_phy: ethernet-phy@0 {
|
|
compatible = "ethernet-phy-id0022.1622",
|
|
"ethernet-phy-ieee802.3-c22";
|
|
rxc-skew-ps = <1500>;
|
|
reg = <0>;
|
|
interrupts-extended = <&gpio7 5 IRQ_TYPE_LEVEL_LOW>;
|
|
reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&dsi0 {
|
|
status = "okay";
|
|
|
|
ports {
|
|
port@1 {
|
|
dsi0_out: endpoint {
|
|
remote-endpoint = <&sn65dsi86_in>;
|
|
data-lanes = <1 2 3 4>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&du {
|
|
status = "okay";
|
|
};
|
|
|
|
&extal_clk {
|
|
clock-frequency = <16666666>;
|
|
};
|
|
|
|
&extalr_clk {
|
|
clock-frequency = <32768>;
|
|
};
|
|
|
|
&hscif0 {
|
|
pinctrl-0 = <&hscif0_pins>;
|
|
pinctrl-names = "default";
|
|
bootph-all;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c0 {
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
io_expander_a: gpio@20 {
|
|
compatible = "onnn,pca9654";
|
|
reg = <0x20>;
|
|
interrupts-extended = <&gpio0 0 IRQ_TYPE_LEVEL_LOW>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
};
|
|
|
|
eeprom@50 {
|
|
compatible = "rohm,br24g01", "atmel,24c01";
|
|
label = "cpu-board";
|
|
reg = <0x50>;
|
|
pagesize = <8>;
|
|
};
|
|
};
|
|
|
|
&i2c1 {
|
|
pinctrl-0 = <&i2c1_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
bridge@2c {
|
|
pinctrl-0 = <&irq0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
compatible = "ti,sn65dsi86";
|
|
reg = <0x2c>;
|
|
|
|
clocks = <&sn65dsi86_refclk>;
|
|
clock-names = "refclk";
|
|
|
|
interrupts-extended = <&intc_ex 0 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
enable-gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
|
|
|
|
vccio-supply = <®_1p8v>;
|
|
vpll-supply = <®_1p8v>;
|
|
vcca-supply = <®_1p2v>;
|
|
vcc-supply = <®_1p2v>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
sn65dsi86_in: endpoint {
|
|
remote-endpoint = <&dsi0_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
sn65dsi86_out: endpoint {
|
|
remote-endpoint = <&mini_dp_con_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&mmc0 {
|
|
pinctrl-0 = <&mmc_pins>;
|
|
pinctrl-1 = <&mmc_pins>;
|
|
pinctrl-names = "default", "state_uhs";
|
|
|
|
vmmc-supply = <®_3p3v>;
|
|
vqmmc-supply = <®_1p8v>;
|
|
mmc-hs200-1_8v;
|
|
mmc-hs400-1_8v;
|
|
bus-width = <8>;
|
|
no-sd;
|
|
no-sdio;
|
|
non-removable;
|
|
full-pwr-cycle-in-suspend;
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie0_clkref {
|
|
compatible = "gpio-gate-clock";
|
|
clocks = <&pcie_clk>;
|
|
enable-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
|
|
/delete-property/ clock-frequency;
|
|
};
|
|
|
|
&pciec0 {
|
|
reset-gpios = <&io_expander_a 0 GPIO_ACTIVE_LOW>;
|
|
status = "okay";
|
|
};
|
|
|
|
&pfc {
|
|
pinctrl-0 = <&scif_clk_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
avb0_pins: avb0 {
|
|
mux {
|
|
groups = "avb0_link", "avb0_mdio", "avb0_rgmii",
|
|
"avb0_txcrefclk";
|
|
function = "avb0";
|
|
};
|
|
|
|
pins_mdio {
|
|
groups = "avb0_mdio";
|
|
drive-strength = <21>;
|
|
};
|
|
|
|
pins_mii {
|
|
groups = "avb0_rgmii";
|
|
drive-strength = <21>;
|
|
};
|
|
|
|
};
|
|
|
|
hscif0_pins: hscif0 {
|
|
groups = "hscif0_data";
|
|
function = "hscif0";
|
|
};
|
|
|
|
i2c0_pins: i2c0 {
|
|
groups = "i2c0";
|
|
function = "i2c0";
|
|
};
|
|
|
|
i2c1_pins: i2c1 {
|
|
groups = "i2c1";
|
|
function = "i2c1";
|
|
};
|
|
|
|
irq0_pins: irq0 {
|
|
groups = "intc_ex_irq0_a";
|
|
function = "intc_ex";
|
|
};
|
|
|
|
keys_pins: keys {
|
|
pins = "GP_5_0", "GP_5_1", "GP_5_2";
|
|
bias-pull-up;
|
|
};
|
|
|
|
mmc_pins: mmc {
|
|
groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
|
|
function = "mmc";
|
|
power-source = <1800>;
|
|
};
|
|
|
|
qspi0_pins: qspi0 {
|
|
groups = "qspi0_ctrl", "qspi0_data4";
|
|
function = "qspi0";
|
|
};
|
|
|
|
scif_clk_pins: scif_clk {
|
|
groups = "scif_clk";
|
|
function = "scif_clk";
|
|
};
|
|
};
|
|
|
|
&rpc {
|
|
pinctrl-0 = <&qspi0_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
status = "okay";
|
|
|
|
flash@0 {
|
|
compatible = "spansion,s25fs512s", "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <40000000>;
|
|
spi-rx-bus-width = <4>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
boot@0 {
|
|
reg = <0x0 0x1200000>;
|
|
read-only;
|
|
};
|
|
user@1200000 {
|
|
reg = <0x1200000 0x2e00000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&rwdt {
|
|
timeout-sec = <60>;
|
|
status = "okay";
|
|
};
|
|
|
|
&scif_clk {
|
|
clock-frequency = <24000000>;
|
|
};
|