@@ -48,8 +48,11 @@ | |||
serial0 = &scif0; | |||
serial1 = &scifa1; | |||
i2c8 = &gpioi2c1; | |||
i2c9 = &gpioi2c2; | |||
i2c10 = &i2cexio0; | |||
i2c11 = &i2cexio1; | |||
i2c12 = &i2chdmi; | |||
i2c13 = &i2cpwr; | |||
}; | |||
chosen { | |||
@@ -241,6 +244,12 @@ | |||
}; | |||
}; | |||
cec_clock: cec-clock { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
clock-frequency = <12000000>; | |||
}; | |||
hdmi-out { | |||
compatible = "hdmi-connector"; | |||
type = "a"; | |||
@@ -269,9 +278,18 @@ | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
gpios = <&gpio1 17 GPIO_ACTIVE_HIGH /* sda */ | |||
&gpio1 16 GPIO_ACTIVE_HIGH /* scl */ | |||
>; | |||
scl-gpios = <&gpio1 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio1 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
gpioi2c2: i2c-9 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
@@ -306,6 +324,138 @@ | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
}; | |||
/* | |||
* IIC2 and I2C2 may be switched using pinmux. | |||
* A fallback to GPIO is also provided. | |||
*/ | |||
i2chdmi: i2c-12 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>; | |||
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>; | |||
remote = <&vin1>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin1ep0>; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio1>; | |||
interrupts = <15 IRQ_TYPE_LEVEL_LOW>; | |||
clocks = <&cec_clock>; | |||
clock-names = "cec"; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&lvds0_out>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con_out>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi-in@4c { | |||
compatible = "adi,adv7612"; | |||
reg = <0x4c>; | |||
interrupt-parent = <&gpio1>; | |||
interrupts = <20 IRQ_TYPE_LEVEL_LOW>; | |||
default-input = <0>; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7612_in: endpoint { | |||
remote-endpoint = <&hdmi_con_in>; | |||
}; | |||
}; | |||
port@2 { | |||
reg = <2>; | |||
adv7612_out: endpoint { | |||
remote-endpoint = <&vin0ep2>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
}; | |||
/* | |||
* IIC3 and I2C3 may be switched using pinmux. | |||
* IIC3/I2C3 does not appear to support fallback to GPIO. | |||
*/ | |||
i2cpwr: i2c-13 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&iic3>, <&i2c3>; | |||
i2c-bus-name = "i2c-pwr"; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
pmic@58 { | |||
compatible = "dlg,da9063"; | |||
reg = <0x58>; | |||
interrupt-parent = <&irqc0>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
interrupt-controller; | |||
rtc { | |||
compatible = "dlg,da9063-rtc"; | |||
}; | |||
wdt { | |||
compatible = "dlg,da9063-watchdog"; | |||
}; | |||
}; | |||
vdd_dvfs: regulator@68 { | |||
compatible = "dlg,da9210"; | |||
reg = <0x68>; | |||
interrupt-parent = <&irqc0>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
regulator-min-microvolt = <1000000>; | |||
regulator-max-microvolt = <1000000>; | |||
regulator-boot-on; | |||
regulator-always-on; | |||
}; | |||
}; | |||
}; | |||
&du { | |||
@@ -314,10 +464,8 @@ | |||
status = "okay"; | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>, | |||
<&cpg CPG_MOD 726>, <&cpg CPG_MOD 725>, | |||
<&x13_clk>, <&x2_clk>; | |||
clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1", | |||
"dclkin.0", "dclkin.1"; | |||
clock-names = "du.0", "du.1", "du.2", "dclkin.0", "dclkin.1"; | |||
ports { | |||
port@0 { | |||
@@ -325,12 +473,26 @@ | |||
remote-endpoint = <&adv7123_in>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&lvds0 { | |||
status = "okay"; | |||
ports { | |||
port@1 { | |||
endpoint { | |||
remote-endpoint = <&adv7511_in>; | |||
}; | |||
}; | |||
port@2 { | |||
}; | |||
}; | |||
&lvds1 { | |||
status = "okay"; | |||
ports { | |||
port@1 { | |||
lvds_connector: endpoint { | |||
}; | |||
}; | |||
@@ -435,11 +597,21 @@ | |||
function = "iic1"; | |||
}; | |||
i2c2_pins: i2c2 { | |||
groups = "i2c2"; | |||
function = "i2c2"; | |||
}; | |||
iic2_pins: iic2 { | |||
groups = "iic2"; | |||
function = "iic2"; | |||
}; | |||
i2c3_pins: i2c3 { | |||
groups = "i2c3"; | |||
function = "i2c3"; | |||
}; | |||
iic3_pins: iic3 { | |||
groups = "iic3"; | |||
function = "iic3"; | |||
@@ -641,124 +813,28 @@ | |||
pinctrl-names = "i2c-exio1"; | |||
}; | |||
&iic2 { | |||
status = "okay"; | |||
pinctrl-0 = <&iic2_pins>; | |||
pinctrl-names = "default"; | |||
&i2c2 { | |||
pinctrl-0 = <&i2c2_pins>; | |||
pinctrl-names = "i2c-hdmi"; | |||
clock-frequency = <100000>; | |||
}; | |||
ak4643: codec@12 { | |||
compatible = "asahi-kasei,ak4643"; | |||
#sound-dai-cells = <0>; | |||
reg = <0x12>; | |||
}; | |||
composite-in@20 { | |||
compatible = "adi,adv7180"; | |||
reg = <0x20>; | |||
remote = <&vin1>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin1ep0>; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio1>; | |||
interrupts = <15 IRQ_TYPE_LEVEL_LOW>; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_lvds0>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con_out>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi-in@4c { | |||
compatible = "adi,adv7612"; | |||
reg = <0x4c>; | |||
interrupt-parent = <&gpio1>; | |||
interrupts = <20 IRQ_TYPE_LEVEL_LOW>; | |||
default-input = <0>; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
&iic2 { | |||
pinctrl-0 = <&iic2_pins>; | |||
pinctrl-names = "i2c-hdmi"; | |||
port@0 { | |||
reg = <0>; | |||
adv7612_in: endpoint { | |||
remote-endpoint = <&hdmi_con_in>; | |||
}; | |||
}; | |||
clock-frequency = <100000>; | |||
}; | |||
port@2 { | |||
reg = <2>; | |||
adv7612_out: endpoint { | |||
remote-endpoint = <&vin0ep2>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&i2c3 { | |||
pinctrl-0 = <&i2c3_pins>; | |||
pinctrl-names = "i2c-pwr"; | |||
}; | |||
&iic3 { | |||
pinctrl-names = "default"; | |||
&iic3 { | |||
pinctrl-0 = <&iic3_pins>; | |||
status = "okay"; | |||
pmic@58 { | |||
compatible = "dlg,da9063"; | |||
reg = <0x58>; | |||
interrupt-parent = <&irqc0>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
interrupt-controller; | |||
rtc { | |||
compatible = "dlg,da9063-rtc"; | |||
}; | |||
wdt { | |||
compatible = "dlg,da9063-watchdog"; | |||
}; | |||
}; | |||
vdd_dvfs: regulator@68 { | |||
compatible = "dlg,da9210"; | |||
reg = <0x68>; | |||
interrupt-parent = <&irqc0>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
regulator-min-microvolt = <1000000>; | |||
regulator-max-microvolt = <1000000>; | |||
regulator-boot-on; | |||
regulator-always-on; | |||
}; | |||
pinctrl-names = "i2c-pwr"; | |||
}; | |||
&pci0 { | |||
@@ -48,7 +48,11 @@ | |||
serial0 = &scif0; | |||
serial1 = &scif1; | |||
i2c9 = &gpioi2c1; | |||
i2c10 = &gpioi2c2; | |||
i2c11 = &gpioi2c4; | |||
i2c12 = &i2cexio1; | |||
i2c13 = &i2chdmi; | |||
i2c14 = &i2cexio4; | |||
}; | |||
chosen { | |||
@@ -275,6 +279,12 @@ | |||
}; | |||
}; | |||
cec_clock: cec-clock { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
clock-frequency = <12000000>; | |||
}; | |||
hdmi-out { | |||
compatible = "hdmi-connector"; | |||
type = "a"; | |||
@@ -303,9 +313,28 @@ | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
gpios = <&gpio7 16 GPIO_ACTIVE_HIGH /* sda */ | |||
&gpio7 15 GPIO_ACTIVE_HIGH /* scl */ | |||
>; | |||
scl-gpios = <&gpio7 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio7 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
gpioi2c2: i2c-10 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
gpioi2c4: i2c-11 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
scl-gpios = <&gpio7 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio7 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
@@ -320,6 +349,115 @@ | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
}; | |||
/* | |||
* A fallback to GPIO is provided for I2C2. | |||
*/ | |||
i2chdmi: i2c-13 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&i2c2>, <&gpioi2c2>; | |||
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>; | |||
remote = <&vin1>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin1ep>; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio3>; | |||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |||
clocks = <&cec_clock>; | |||
clock-names = "cec"; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con_out>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi-in@4c { | |||
compatible = "adi,adv7612"; | |||
reg = <0x4c>; | |||
interrupt-parent = <&gpio4>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
default-input = <0>; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7612_in: endpoint { | |||
remote-endpoint = <&hdmi_con_in>; | |||
}; | |||
}; | |||
port@2 { | |||
reg = <2>; | |||
adv7612_out: endpoint { | |||
remote-endpoint = <&vin0ep2>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
eeprom@50 { | |||
compatible = "renesas,r1ex24002", "atmel,24c02"; | |||
reg = <0x50>; | |||
pagesize = <16>; | |||
}; | |||
}; | |||
/* | |||
* I2C4 is routed to EXIO connector E, pins 37 (SCL) + 39 (SDA). | |||
* A fallback to GPIO is provided. | |||
*/ | |||
i2cexio4: i2c-14 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&i2c4>, <&gpioi2c4>; | |||
i2c-bus-name = "i2c-exio4"; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
}; | |||
}; | |||
&du { | |||
@@ -327,10 +465,9 @@ | |||
pinctrl-names = "default"; | |||
status = "okay"; | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>, | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, | |||
<&x13_clk>, <&x2_clk>; | |||
clock-names = "du.0", "du.1", "lvds.0", | |||
"dclkin.0", "dclkin.1"; | |||
clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; | |||
ports { | |||
port@0 { | |||
@@ -338,6 +475,13 @@ | |||
remote-endpoint = <&adv7511_in>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&lvds0 { | |||
status = "okay"; | |||
ports { | |||
port@1 { | |||
lvds_connector: endpoint { | |||
}; | |||
@@ -363,6 +507,11 @@ | |||
function = "i2c2"; | |||
}; | |||
i2c4_pins: i2c4 { | |||
groups = "i2c4_c"; | |||
function = "i2c4"; | |||
}; | |||
du_pins: du { | |||
groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; | |||
function = "du"; | |||
@@ -613,102 +762,14 @@ | |||
&i2c2 { | |||
pinctrl-0 = <&i2c2_pins>; | |||
pinctrl-names = "default"; | |||
pinctrl-names = "i2c-hdmi"; | |||
status = "okay"; | |||
clock-frequency = <100000>; | |||
}; | |||
ak4643: codec@12 { | |||
compatible = "asahi-kasei,ak4643"; | |||
#sound-dai-cells = <0>; | |||
reg = <0x12>; | |||
}; | |||
composite-in@20 { | |||
compatible = "adi,adv7180"; | |||
reg = <0x20>; | |||
remote = <&vin1>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin1ep>; | |||
}; | |||
}; | |||
}; | |||
cec_clock: cec-clock { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
clock-frequency = <12000000>; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio3>; | |||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |||
clocks = <&cec_clock>; | |||
clock-names = "cec"; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con_out>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi-in@4c { | |||
compatible = "adi,adv7612"; | |||
reg = <0x4c>; | |||
interrupt-parent = <&gpio4>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
default-input = <0>; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7612_in: endpoint { | |||
remote-endpoint = <&hdmi_con_in>; | |||
}; | |||
}; | |||
port@2 { | |||
reg = <2>; | |||
adv7612_out: endpoint { | |||
remote-endpoint = <&vin0ep2>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
eeprom@50 { | |||
compatible = "renesas,24c02", "atmel,24c02"; | |||
reg = <0x50>; | |||
pagesize = <16>; | |||
}; | |||
&i2c4 { | |||
pinctrl-0 = <&i2c4_pins>; | |||
pinctrl-names = "i2c-exio4"; | |||
}; | |||
&i2c6 { | |||
@@ -26,6 +26,8 @@ | |||
aliases { | |||
serial0 = &scif0; | |||
i2c9 = &gpioi2c2; | |||
i2c10 = &i2chdmi; | |||
}; | |||
chosen { | |||
@@ -132,6 +134,78 @@ | |||
clocks = <&x14_clk>; | |||
}; | |||
}; | |||
gpioi2c2: i2c-9 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
/* | |||
* A fallback to GPIO is provided for I2C2. | |||
*/ | |||
i2chdmi: i2c-10 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&i2c2>, <&gpioi2c2>; | |||
i2c-bus-name = "i2c-hdmi"; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
ak4642: codec@12 { | |||
compatible = "asahi-kasei,ak4642"; | |||
#sound-dai-cells = <0>; | |||
reg = <0x12>; | |||
}; | |||
composite-in@20 { | |||
compatible = "adi,adv7180"; | |||
reg = <0x20>; | |||
remote = <&vin0>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin0ep>; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio3>; | |||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&extal_clk { | |||
@@ -293,65 +367,8 @@ | |||
&i2c2 { | |||
pinctrl-0 = <&i2c2_pins>; | |||
pinctrl-names = "default"; | |||
pinctrl-names = "i2c-hdmi"; | |||
status = "okay"; | |||
clock-frequency = <400000>; | |||
ak4642: codec@12 { | |||
compatible = "asahi-kasei,ak4642"; | |||
#sound-dai-cells = <0>; | |||
reg = <0x12>; | |||
}; | |||
composite-in@20 { | |||
compatible = "adi,adv7180"; | |||
reg = <0x20>; | |||
remote = <&vin0>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin0ep>; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio3>; | |||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&i2c6 { | |||
status = "okay"; | |||
clock-frequency = <400000>; | |||
}; | |||
@@ -421,13 +438,12 @@ | |||
pinctrl-names = "default"; | |||
status = "okay"; | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>, | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, | |||
<&x3_clk>, <&x16_clk>; | |||
clock-names = "du.0", "du.1", "lvds.0", | |||
"dclkin.0", "dclkin.1"; | |||
clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; | |||
ports { | |||
port@1 { | |||
port@0 { | |||
endpoint { | |||
remote-endpoint = <&adv7511_in>; | |||
}; | |||
@@ -435,6 +451,17 @@ | |||
}; | |||
}; | |||
&lvds0 { | |||
status = "okay"; | |||
ports { | |||
port@1 { | |||
lvds_connector: endpoint { | |||
}; | |||
}; | |||
}; | |||
}; | |||
&rcar_sound { | |||
pinctrl-0 = <&ssi_pins &audio_clk_pins>; | |||
pinctrl-names = "default"; | |||
@@ -33,6 +33,14 @@ | |||
vin5 = &vin5; | |||
}; | |||
/* External CAN clock */ | |||
can_clk: can { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
/* This value must be overridden by the board. */ | |||
clock-frequency = <0>; | |||
}; | |||
cpus { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
@@ -66,6 +74,22 @@ | |||
}; | |||
}; | |||
/* External root clock */ | |||
extal_clk: extal { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
/* This value must be overridden by the board. */ | |||
clock-frequency = <0>; | |||
}; | |||
/* External SCIF clock */ | |||
scif_clk: scif { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
/* This value must be overridden by the board. */ | |||
clock-frequency = <0>; | |||
}; | |||
soc { | |||
compatible = "simple-bus"; | |||
interrupt-parent = <&gic>; | |||
@@ -74,75 +98,6 @@ | |||
#size-cells = <2>; | |||
ranges; | |||
apmu@e6152000 { | |||
compatible = "renesas,r8a7792-apmu", "renesas,apmu"; | |||
reg = <0 0xe6152000 0 0x188>; | |||
cpus = <&cpu0 &cpu1>; | |||
}; | |||
gic: interrupt-controller@f1001000 { | |||
compatible = "arm,gic-400"; | |||
#interrupt-cells = <3>; | |||
interrupt-controller; | |||
reg = <0 0xf1001000 0 0x1000>, | |||
<0 0xf1002000 0 0x2000>, | |||
<0 0xf1004000 0 0x2000>, | |||
<0 0xf1006000 0 0x2000>; | |||
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | | |||
IRQ_TYPE_LEVEL_HIGH)>; | |||
clocks = <&cpg CPG_MOD 408>; | |||
clock-names = "clk"; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 408>; | |||
}; | |||
irqc: interrupt-controller@e61c0000 { | |||
compatible = "renesas,irqc-r8a7792", "renesas,irqc"; | |||
#interrupt-cells = <2>; | |||
interrupt-controller; | |||
reg = <0 0xe61c0000 0 0x200>; | |||
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 407>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 407>; | |||
}; | |||
timer { | |||
compatible = "arm,armv7-timer"; | |||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | | |||
IRQ_TYPE_LEVEL_LOW)>, | |||
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | | |||
IRQ_TYPE_LEVEL_LOW)>, | |||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | | |||
IRQ_TYPE_LEVEL_LOW)>, | |||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | | |||
IRQ_TYPE_LEVEL_LOW)>; | |||
}; | |||
rst: reset-controller@e6160000 { | |||
compatible = "renesas,r8a7792-rst"; | |||
reg = <0 0xe6160000 0 0x0100>; | |||
}; | |||
prr: chipid@ff000044 { | |||
compatible = "renesas,prr"; | |||
reg = <0 0xff000044 0 4>; | |||
}; | |||
sysc: system-controller@e6180000 { | |||
compatible = "renesas,r8a7792-sysc"; | |||
reg = <0 0xe6180000 0 0x0200>; | |||
#power-domain-cells = <1>; | |||
}; | |||
pfc: pin-controller@e6060000 { | |||
compatible = "renesas,pfc-r8a7792"; | |||
reg = <0 0xe6060000 0 0x144>; | |||
}; | |||
gpio0: gpio@e6050000 { | |||
compatible = "renesas,gpio-r8a7792", | |||
"renesas,rcar-gen2-gpio"; | |||
@@ -323,6 +278,155 @@ | |||
resets = <&cpg 913>; | |||
}; | |||
pfc: pin-controller@e6060000 { | |||
compatible = "renesas,pfc-r8a7792"; | |||
reg = <0 0xe6060000 0 0x144>; | |||
}; | |||
cpg: clock-controller@e6150000 { | |||
compatible = "renesas,r8a7792-cpg-mssr"; | |||
reg = <0 0xe6150000 0 0x1000>; | |||
clocks = <&extal_clk>; | |||
clock-names = "extal"; | |||
#clock-cells = <2>; | |||
#power-domain-cells = <0>; | |||
#reset-cells = <1>; | |||
}; | |||
apmu@e6152000 { | |||
compatible = "renesas,r8a7792-apmu", "renesas,apmu"; | |||
reg = <0 0xe6152000 0 0x188>; | |||
cpus = <&cpu0 &cpu1>; | |||
}; | |||
rst: reset-controller@e6160000 { | |||
compatible = "renesas,r8a7792-rst"; | |||
reg = <0 0xe6160000 0 0x0100>; | |||
}; | |||
sysc: system-controller@e6180000 { | |||
compatible = "renesas,r8a7792-sysc"; | |||
reg = <0 0xe6180000 0 0x0200>; | |||
#power-domain-cells = <1>; | |||
}; | |||
irqc: interrupt-controller@e61c0000 { | |||
compatible = "renesas,irqc-r8a7792", "renesas,irqc"; | |||
#interrupt-cells = <2>; | |||
interrupt-controller; | |||
reg = <0 0xe61c0000 0 0x200>; | |||
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 407>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 407>; | |||
}; | |||
icram0: sram@e63a0000 { | |||
compatible = "mmio-sram"; | |||
reg = <0 0xe63a0000 0 0x12000>; | |||
}; | |||
icram1: sram@e63c0000 { | |||
compatible = "mmio-sram"; | |||
reg = <0 0xe63c0000 0 0x1000>; | |||
#address-cells = <1>; | |||
#size-cells = <1>; | |||
ranges = <0 0 0xe63c0000 0x1000>; | |||
smp-sram@0 { | |||
compatible = "renesas,smp-sram"; | |||
reg = <0 0x10>; | |||
}; | |||
}; | |||
/* I2C doesn't need pinmux */ | |||
i2c0: i2c@e6508000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6508000 0 0x40>; | |||
interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 931>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 931>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c1: i2c@e6518000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6518000 0 0x40>; | |||
interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 930>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 930>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c2: i2c@e6530000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6530000 0 0x40>; | |||
interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 929>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 929>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c3: i2c@e6540000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6540000 0 0x40>; | |||
interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 928>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 928>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c4: i2c@e6520000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6520000 0 0x40>; | |||
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 927>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 927>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c5: i2c@e6528000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6528000 0 0x40>; | |||
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 925>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 925>; | |||
i2c-scl-internal-delay-ns = <110>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
dmac0: dma-controller@e6700000 { | |||
compatible = "renesas,dmac-r8a7792", | |||
"renesas,rcar-dmac"; | |||
@@ -389,25 +493,54 @@ | |||
dma-channels = <15>; | |||
}; | |||
scif0: serial@e6e60000 { | |||
compatible = "renesas,scif-r8a7792", | |||
"renesas,rcar-gen2-scif", "renesas,scif"; | |||
reg = <0 0xe6e60000 0 64>; | |||
interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 721>, | |||
<&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>; | |||
clock-names = "fck", "brg_int", "scif_clk"; | |||
dmas = <&dmac0 0x29>, <&dmac0 0x2a>, | |||
<&dmac1 0x29>, <&dmac1 0x2a>; | |||
dma-names = "tx", "rx", "tx", "rx"; | |||
avb: ethernet@e6800000 { | |||
compatible = "renesas,etheravb-r8a7792", | |||
"renesas,etheravb-rcar-gen2"; | |||
reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; | |||
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 812>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 721>; | |||
resets = <&cpg 812>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
scif1: serial@e6e68000 { | |||
compatible = "renesas,scif-r8a7792", | |||
"renesas,rcar-gen2-scif", "renesas,scif"; | |||
qspi: spi@e6b10000 { | |||
compatible = "renesas,qspi-r8a7792", "renesas,qspi"; | |||
reg = <0 0xe6b10000 0 0x2c>; | |||
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 917>; | |||
dmas = <&dmac0 0x17>, <&dmac0 0x18>, | |||
<&dmac1 0x17>, <&dmac1 0x18>; | |||
dma-names = "tx", "rx", "tx", "rx"; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 917>; | |||
num-cs = <1>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
scif0: serial@e6e60000 { | |||
compatible = "renesas,scif-r8a7792", | |||
"renesas,rcar-gen2-scif", "renesas,scif"; | |||
reg = <0 0xe6e60000 0 64>; | |||
interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 721>, | |||
<&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>; | |||
clock-names = "fck", "brg_int", "scif_clk"; | |||
dmas = <&dmac0 0x29>, <&dmac0 0x2a>, | |||
<&dmac1 0x29>, <&dmac1 0x2a>; | |||
dma-names = "tx", "rx", "tx", "rx"; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 721>; | |||
status = "disabled"; | |||
}; | |||
scif1: serial@e6e68000 { | |||
compatible = "renesas,scif-r8a7792", | |||
"renesas,rcar-gen2-scif", "renesas,scif"; | |||
reg = <0 0xe6e68000 0 64>; | |||
interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 720>, | |||
@@ -485,161 +618,6 @@ | |||
status = "disabled"; | |||
}; | |||
icram0: sram@e63a0000 { | |||
compatible = "mmio-sram"; | |||
reg = <0 0xe63a0000 0 0x12000>; | |||
}; | |||
icram1: sram@e63c0000 { | |||
compatible = "mmio-sram"; | |||
reg = <0 0xe63c0000 0 0x1000>; | |||
#address-cells = <1>; | |||
#size-cells = <1>; | |||
ranges = <0 0 0xe63c0000 0x1000>; | |||
smp-sram@0 { | |||
compatible = "renesas,smp-sram"; | |||
reg = <0 0x10>; | |||
}; | |||
}; | |||
sdhi0: sd@ee100000 { | |||
compatible = "renesas,sdhi-r8a7792"; | |||
reg = <0 0xee100000 0 0x328>; | |||
interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>; | |||
dmas = <&dmac0 0xcd>, <&dmac0 0xce>, | |||
<&dmac1 0xcd>, <&dmac1 0xce>; | |||
dma-names = "tx", "rx", "tx", "rx"; | |||
clocks = <&cpg CPG_MOD 314>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 314>; | |||
status = "disabled"; | |||
}; | |||
jpu: jpeg-codec@fe980000 { | |||
compatible = "renesas,jpu-r8a7792", | |||
"renesas,rcar-gen2-jpu"; | |||
reg = <0 0xfe980000 0 0x10300>; | |||
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 106>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 106>; | |||
}; | |||
avb: ethernet@e6800000 { | |||
compatible = "renesas,etheravb-r8a7792", | |||
"renesas,etheravb-rcar-gen2"; | |||
reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; | |||
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 812>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 812>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
/* I2C doesn't need pinmux */ | |||
i2c0: i2c@e6508000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6508000 0 0x40>; | |||
interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 931>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 931>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c1: i2c@e6518000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6518000 0 0x40>; | |||
interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 930>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 930>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c2: i2c@e6530000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6530000 0 0x40>; | |||
interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 929>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 929>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c3: i2c@e6540000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6540000 0 0x40>; | |||
interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 928>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 928>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c4: i2c@e6520000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6520000 0 0x40>; | |||
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 927>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 927>; | |||
i2c-scl-internal-delay-ns = <6>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
i2c5: i2c@e6528000 { | |||
compatible = "renesas,i2c-r8a7792", | |||
"renesas,rcar-gen2-i2c"; | |||
reg = <0 0xe6528000 0 0x40>; | |||
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 925>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 925>; | |||
i2c-scl-internal-delay-ns = <110>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
qspi: spi@e6b10000 { | |||
compatible = "renesas,qspi-r8a7792", "renesas,qspi"; | |||
reg = <0 0xe6b10000 0 0x2c>; | |||
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 917>; | |||
dmas = <&dmac0 0x17>, <&dmac0 0x18>, | |||
<&dmac1 0x17>, <&dmac1 0x18>; | |||
dma-names = "tx", "rx", "tx", "rx"; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 917>; | |||
num-cs = <1>; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
status = "disabled"; | |||
}; | |||
msiof0: spi@e6e20000 { | |||
compatible = "renesas,msiof-r8a7792", | |||
"renesas,rcar-gen2-msiof"; | |||
@@ -672,34 +650,6 @@ | |||
status = "disabled"; | |||
}; | |||
du: display@feb00000 { | |||
compatible = "renesas,du-r8a7792"; | |||
reg = <0 0xfeb00000 0 0x40000>; | |||
reg-names = "du"; | |||
interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 724>, | |||
<&cpg CPG_MOD 723>; | |||
clock-names = "du.0", "du.1"; | |||
status = "disabled"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
du_out_rgb0: endpoint { | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
du_out_rgb1: endpoint { | |||
}; | |||
}; | |||
}; | |||
}; | |||
can0: can@e6e80000 { | |||
compatible = "renesas,can-r8a7792", | |||
"renesas,rcar-gen2-can"; | |||
@@ -792,6 +742,36 @@ | |||
status = "disabled"; | |||
}; | |||
sdhi0: sd@ee100000 { | |||
compatible = "renesas,sdhi-r8a7792", | |||
"renesas,rcar-gen2-sdhi"; | |||
reg = <0 0xee100000 0 0x328>; | |||
interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>; | |||
dmas = <&dmac0 0xcd>, <&dmac0 0xce>, | |||
<&dmac1 0xcd>, <&dmac1 0xce>; | |||
dma-names = "tx", "rx", "tx", "rx"; | |||
clocks = <&cpg CPG_MOD 314>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 314>; | |||
status = "disabled"; | |||
}; | |||
gic: interrupt-controller@f1001000 { | |||
compatible = "arm,gic-400"; | |||
#interrupt-cells = <3>; | |||
interrupt-controller; | |||
reg = <0 0xf1001000 0 0x1000>, | |||
<0 0xf1002000 0 0x2000>, | |||
<0 0xf1004000 0 0x2000>, | |||
<0 0xf1006000 0 0x2000>; | |||
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | | |||
IRQ_TYPE_LEVEL_HIGH)>; | |||
clocks = <&cpg CPG_MOD 408>; | |||
clock-names = "clk"; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 408>; | |||
}; | |||
vsp@fe928000 { | |||
compatible = "renesas,vsp1"; | |||
reg = <0 0xfe928000 0 0x8000>; | |||
@@ -819,38 +799,55 @@ | |||
resets = <&cpg 127>; | |||
}; | |||
cpg: clock-controller@e6150000 { | |||
compatible = "renesas,r8a7792-cpg-mssr"; | |||
reg = <0 0xe6150000 0 0x1000>; | |||
clocks = <&extal_clk>; | |||
clock-names = "extal"; | |||
#clock-cells = <2>; | |||
#power-domain-cells = <0>; | |||
#reset-cells = <1>; | |||
jpu: jpeg-codec@fe980000 { | |||
compatible = "renesas,jpu-r8a7792", | |||
"renesas,rcar-gen2-jpu"; | |||
reg = <0 0xfe980000 0 0x10300>; | |||
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 106>; | |||
power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; | |||
resets = <&cpg 106>; | |||
}; | |||
}; | |||
/* External root clock */ | |||
extal_clk: extal { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
/* This value must be overridden by the board. */ | |||
clock-frequency = <0>; | |||
}; | |||
du: display@feb00000 { | |||
compatible = "renesas,du-r8a7792"; | |||
reg = <0 0xfeb00000 0 0x40000>; | |||
reg-names = "du"; | |||
interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, | |||
<GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; | |||
clocks = <&cpg CPG_MOD 724>, | |||
<&cpg CPG_MOD 723>; | |||
clock-names = "du.0", "du.1"; | |||
status = "disabled"; | |||
/* External SCIF clock */ | |||
scif_clk: scif { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
/* This value must be overridden by the board. */ | |||
clock-frequency = <0>; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
du_out_rgb0: endpoint { | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
du_out_rgb1: endpoint { | |||
}; | |||
}; | |||
}; | |||
}; | |||
prr: chipid@ff000044 { | |||
compatible = "renesas,prr"; | |||
reg = <0 0xff000044 0 4>; | |||
}; | |||
}; | |||
/* External CAN clock */ | |||
can_clk: can { | |||
compatible = "fixed-clock"; | |||
#clock-cells = <0>; | |||
/* This value must be overridden by the board. */ | |||
clock-frequency = <0>; | |||
timer { | |||
compatible = "arm,armv7-timer"; | |||
interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | |||
<&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | |||
<&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | |||
<&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; | |||
}; | |||
}; |
@@ -45,6 +45,10 @@ | |||
aliases { | |||
serial0 = &scif0; | |||
serial1 = &scif1; | |||
i2c9 = &gpioi2c2; | |||
i2c10 = &gpioi2c4; | |||
i2c11 = &i2chdmi; | |||
i2c12 = &i2cexio4; | |||
}; | |||
chosen { | |||
@@ -293,6 +297,146 @@ | |||
#clock-cells = <0>; | |||
clock-frequency = <148500000>; | |||
}; | |||
gpioi2c2: i2c-9 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
gpioi2c4: i2c-10 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
scl-gpios = <&gpio7 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio7 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
/* | |||
* A fallback to GPIO is provided for I2C2. | |||
*/ | |||
i2chdmi: i2c-11 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&i2c2>, <&gpioi2c2>; | |||
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,adv7180cp"; | |||
reg = <0x20>; | |||
remote = <&vin1>; | |||
port { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7180_in: endpoint { | |||
remote-endpoint = <&composite_con_in>; | |||
}; | |||
}; | |||
port@3 { | |||
reg = <3>; | |||
adv7180_out: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin1ep>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio3>; | |||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con_out>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi-in@4c { | |||
compatible = "adi,adv7612"; | |||
reg = <0x4c>; | |||
interrupt-parent = <&gpio4>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
default-input = <0>; | |||
port { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7612_in: endpoint { | |||
remote-endpoint = <&hdmi_con_in>; | |||
}; | |||
}; | |||
port@2 { | |||
reg = <2>; | |||
adv7612_out: endpoint { | |||
remote-endpoint = <&vin0ep2>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
eeprom@50 { | |||
compatible = "renesas,r1ex24002", "atmel,24c02"; | |||
reg = <0x50>; | |||
pagesize = <16>; | |||
}; | |||
}; | |||
/* | |||
* I2C4 is routed to EXIO connector E, pins 37 (SCL) + 39 (SDA). | |||
* A fallback to GPIO is provided. | |||
*/ | |||
i2cexio4: i2c-12 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&i2c4>, <&gpioi2c4>; | |||
i2c-bus-name = "i2c-exio4"; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
}; | |||
}; | |||
&du { | |||
@@ -300,10 +444,9 @@ | |||
pinctrl-names = "default"; | |||
status = "okay"; | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>, | |||
clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, | |||
<&x13_clk>, <&x2_clk>; | |||
clock-names = "du.0", "du.1", "lvds.0", | |||
"dclkin.0", "dclkin.1"; | |||
clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; | |||
ports { | |||
port@0 { | |||
@@ -311,6 +454,11 @@ | |||
remote-endpoint = <&adv7511_in>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&lvds0 { | |||
ports { | |||
port@1 { | |||
lvds_connector: endpoint { | |||
}; | |||
@@ -331,6 +479,11 @@ | |||
function = "i2c2"; | |||
}; | |||
i2c4_pins: i2c4 { | |||
groups = "i2c4_c"; | |||
function = "i2c4"; | |||
}; | |||
du_pins: du { | |||
groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; | |||
function = "du"; | |||
@@ -541,107 +694,11 @@ | |||
&i2c2 { | |||
pinctrl-0 = <&i2c2_pins>; | |||
pinctrl-names = "default"; | |||
pinctrl-names = "i2c-hdmi"; | |||
status = "okay"; | |||
clock-frequency = <100000>; | |||
ak4643: codec@12 { | |||
compatible = "asahi-kasei,ak4643"; | |||
#sound-dai-cells = <0>; | |||
reg = <0x12>; | |||
}; | |||
composite-in@20 { | |||
compatible = "adi,adv7180cp"; | |||
reg = <0x20>; | |||
remote = <&vin1>; | |||
port { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7180_in: endpoint { | |||
remote-endpoint = <&composite_con_in>; | |||
}; | |||
}; | |||
port@3 { | |||
reg = <3>; | |||
adv7180_out: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin1ep>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi@39 { | |||
compatible = "adi,adv7511w"; | |||
reg = <0x39>; | |||
interrupt-parent = <&gpio3>; | |||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |||
adi,input-depth = <8>; | |||
adi,input-colorspace = "rgb"; | |||
adi,input-clock = "1x"; | |||
adi,input-style = <1>; | |||
adi,input-justification = "evenly"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7511_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
adv7511_out: endpoint { | |||
remote-endpoint = <&hdmi_con_out>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
hdmi-in@4c { | |||
compatible = "adi,adv7612"; | |||
reg = <0x4c>; | |||
interrupt-parent = <&gpio4>; | |||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | |||
default-input = <0>; | |||
port { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
adv7612_in: endpoint { | |||
remote-endpoint = <&hdmi_con_in>; | |||
}; | |||
}; | |||
port@2 { | |||
reg = <2>; | |||
adv7612_out: endpoint { | |||
remote-endpoint = <&vin0ep2>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
eeprom@50 { | |||
compatible = "renesas,r1ex24002", "atmel,24c02"; | |||
reg = <0x50>; | |||
pagesize = <16>; | |||
}; | |||
}; | |||
&i2c6 { | |||
@@ -665,6 +722,11 @@ | |||
}; | |||
}; | |||
&i2c4 { | |||
pinctrl-0 = <&i2c4_pins>; | |||
pinctrl-names = "i2c-exio4"; | |||
}; | |||
&rcar_sound { | |||
pinctrl-0 = <&sound_pins &sound_clk_pins>; | |||
pinctrl-names = "default"; | |||
@@ -15,7 +15,9 @@ | |||
aliases { | |||
serial0 = &scif2; | |||
i2c9 = &gpioi2c1; | |||
i2c10 = &gpioi2c4; | |||
i2c11 = &i2chdmi; | |||
i2c12 = &i2cexio4; | |||
}; | |||
@@ -135,18 +137,50 @@ | |||
clock-frequency = <148500000>; | |||
}; | |||
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)>; | |||
}; | |||
gpioi2c4: i2c-10 { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
compatible = "i2c-gpio"; | |||
status = "disabled"; | |||
gpios = <&gpio4 9 GPIO_ACTIVE_HIGH /* sda */ | |||
&gpio4 8 GPIO_ACTIVE_HIGH /* scl */ | |||
>; | |||
scl-gpios = <&gpio4 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
sda-gpios = <&gpio4 9 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | |||
i2c-gpio,delay-us = <5>; | |||
}; | |||
/* | |||
* A fallback to GPIO is provided for I2C1. | |||
*/ | |||
i2chdmi: i2c-11 { | |||
compatible = "i2c-demux-pinctrl"; | |||
i2c-parent = <&i2c1>, <&gpioi2c1>; | |||
i2c-bus-name = "i2c-hdmi"; | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
composite-in@20 { | |||
compatible = "adi,adv7180"; | |||
reg = <0x20>; | |||
remote = <&vin0>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin0ep>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
/* | |||
* I2C4 is routed to EXIO connector B, pins 73 (SCL) + 74 (SDA). | |||
* A fallback to GPIO is provided. | |||
*/ | |||
@@ -322,23 +356,9 @@ | |||
&i2c1 { | |||
pinctrl-0 = <&i2c1_pins>; | |||
pinctrl-names = "default"; | |||
pinctrl-names = "i2c-hdmi"; | |||
status = "okay"; | |||
clock-frequency = <400000>; | |||
composite-in@20 { | |||
compatible = "adi,adv7180"; | |||
reg = <0x20>; | |||
remote = <&vin0>; | |||
port { | |||
adv7180: endpoint { | |||
bus-width = <8>; | |||
remote-endpoint = <&vin0ep>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
&i2c4 { | |||
@@ -21,6 +21,7 @@ | |||
/dts-v1/; | |||
#include "r8a7794.dtsi" | |||
#include <dt-bindings/gpio/gpio.h> | |||
#include <dt-bindings/input/input.h> | |||
/ { | |||
model = "SILK"; | |||
@@ -28,6 +29,8 @@ | |||
aliases { | |||
serial0 = &scif2; | |||
i2c9 = &gpioi2c1; | |||
i2c10 = &i2chdmi; | |||
}; | |||
chosen { | |||
@@ -40,6 +43,60 @@ | |||
reg = <0 0x40000000 0 0x40000000>; | |||
}; | |||
gpio-keys { | |||
compatible = "gpio-keys"; | |||
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>; | |||
}; | |||
}; | |||
d3_3v: regulator-d3-3v { | |||
compatible = "regulator-fixed"; | |||
regulator-name = "D3.3V"; | |||
@@ -150,6 +207,84 @@ | |||
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-10 { | |||
compatible = "i2c-demux-pinctrl"; | |||