Message ID | 20170912210151.12213-1-marek.vasut+renesas@gmail.com |
---|---|
State | Accepted, archived |
Commit | 37a7908137a8c904f43c83f3e6c269cd51bf6126 |
Delegated to: | Nobuhiro Iwamatsu |
Headers | show |
Series | [U-Boot] ARM: dts: rmobile: Update DTS to match Linux 4.13 | expand |
Hi, 2017-09-13 6:01 GMT+09:00 Marek Vasut <marek.vasut@gmail.com>: > Import the RCar Gen3 DTS and headers from upstream Linux kernel v4.13, > commit 569dbb88e80deb68974ef6fdd6a13edb9d686261 . This includes both M3 > and H3 ULCB and Salvator-X boards. > > Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> > Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Applied to rmobile branch. Thanks, Nobuhiro > --- > arch/arm/dts/r8a7795-h3ulcb.dts | 342 +------------------- > arch/arm/dts/r8a7795-salvator-x.dts | 565 +++----------------------------- > arch/arm/dts/r8a7795.dtsi | 133 ++++---- > arch/arm/dts/r8a7796-m3ulcb.dts | 168 +--------- > arch/arm/dts/r8a7796-salvator-x.dts | 244 +------------- > arch/arm/dts/r8a7796.dtsi | 421 ++++++++++++++++++++++++ > arch/arm/dts/salvator-common.dtsi | 629 ++++++++++++++++++++++++++++++++++++ > arch/arm/dts/salvator-x.dtsi | 30 ++ > arch/arm/dts/ulcb.dtsi | 367 +++++++++++++++++++++ > 9 files changed, 1572 insertions(+), 1327 deletions(-) > create mode 100644 arch/arm/dts/salvator-common.dtsi > create mode 100644 arch/arm/dts/salvator-x.dtsi > create mode 100644 arch/arm/dts/ulcb.dtsi > > diff --git a/arch/arm/dts/r8a7795-h3ulcb.dts b/arch/arm/dts/r8a7795-h3ulcb.dts > index ab352159de..0426f41765 100644 > --- a/arch/arm/dts/r8a7795-h3ulcb.dts > +++ b/arch/arm/dts/r8a7795-h3ulcb.dts > @@ -9,24 +9,16 @@ > * kind, whether express or implied. > */ > > +#define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 > + > /dts-v1/; > #include "r8a7795.dtsi" > -#include <dt-bindings/gpio/gpio.h> > -#include <dt-bindings/input/input.h> > +#include "ulcb.dtsi" > > / { > - model = "Renesas H3ULCB board based on r8a7795"; > + model = "Renesas H3ULCB board based on r8a7795 ES2.0+"; > compatible = "renesas,h3ulcb", "renesas,r8a7795"; > > - aliases { > - serial0 = &scif2; > - ethernet0 = &avb; > - }; > - > - chosen { > - stdout-path = "serial0:115200n8"; > - }; > - > memory@48000000 { > device_type = "memory"; > /* first 128MB is reserved for secure area. */ > @@ -47,330 +39,4 @@ > device_type = "memory"; > reg = <0x7 0x00000000 0x0 0x40000000>; > }; > - > - leds { > - compatible = "gpio-leds"; > - > - led5 { > - gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; > - }; > - led6 { > - gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; > - }; > - }; > - > - keyboard { > - compatible = "gpio-keys"; > - > - key-1 { > - linux,code = <KEY_1>; > - label = "SW3"; > - wakeup-source; > - debounce-interval = <20>; > - gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; > - }; > - }; > - > - x12_clk: x12 { > - compatible = "fixed-clock"; > - #clock-cells = <0>; > - clock-frequency = <24576000>; > - }; > - > - reg_1p8v: regulator0 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-1.8V"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - reg_3p3v: regulator1 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-3.3V"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - vcc_sdhi0: regulator-vcc-sdhi0 { > - compatible = "regulator-fixed"; > - > - regulator-name = "SDHI0 Vcc"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vccq_sdhi0: regulator-vccq-sdhi0 { > - compatible = "regulator-gpio"; > - > - regulator-name = "SDHI0 VccQ"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; > - gpios-states = <1>; > - states = <3300000 1 > - 1800000 0>; > - }; > - > - audio_clkout: audio-clkout { > - /* > - * This is same as <&rcar_sound 0> > - * but needed to avoid cs2000/rcar_sound probe dead-lock > - */ > - compatible = "fixed-clock"; > - #clock-cells = <0>; > - clock-frequency = <11289600>; > - }; > - > - rsnd_ak4613: sound { > - compatible = "simple-audio-card"; > - > - simple-audio-card,format = "left_j"; > - simple-audio-card,bitclock-master = <&sndcpu>; > - simple-audio-card,frame-master = <&sndcpu>; > - > - sndcpu: simple-audio-card,cpu { > - sound-dai = <&rcar_sound>; > - }; > - > - sndcodec: simple-audio-card,codec { > - sound-dai = <&ak4613>; > - }; > - }; > -}; > - > -&extal_clk { > - clock-frequency = <16666666>; > -}; > - > -&extalr_clk { > - clock-frequency = <32768>; > -}; > - > -&pfc { > - pinctrl-0 = <&scif_clk_pins>; > - pinctrl-names = "default"; > - > - scif2_pins: scif2 { > - groups = "scif2_data_a"; > - function = "scif2"; > - }; > - > - scif_clk_pins: scif_clk { > - groups = "scif_clk_a"; > - function = "scif_clk"; > - }; > - > - i2c2_pins: i2c2 { > - groups = "i2c2_a"; > - function = "i2c2"; > - }; > - > - avb_pins: avb { > - groups = "avb_mdc"; > - function = "avb"; > - }; > - > - 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>; > - }; > - > - sdhi2_pins: sd2 { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <3300>; > - }; > - > - sdhi2_pins_uhs: sd2_uhs { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - 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", "audio_clk_b_a", "audio_clk_c_a", > - "audio_clkout_a", "audio_clkout3_a"; > - function = "audio_clk"; > - }; > - > - usb1_pins: usb1 { > - groups = "usb1"; > - function = "usb1"; > - }; > -}; > - > -&scif2 { > - pinctrl-0 = <&scif2_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > -}; > - > -&scif_clk { > - clock-frequency = <14745600>; > -}; > - > -&i2c2 { > - pinctrl-0 = <&i2c2_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > - > - clock-frequency = <100000>; > - > - ak4613: codec@10 { > - compatible = "asahi-kasei,ak4613"; > - #sound-dai-cells = <0>; > - reg = <0x10>; > - clocks = <&rcar_sound 3>; > - > - asahi-kasei,in1-single-end; > - asahi-kasei,in2-single-end; > - asahi-kasei,out1-single-end; > - asahi-kasei,out2-single-end; > - asahi-kasei,out3-single-end; > - asahi-kasei,out4-single-end; > - asahi-kasei,out5-single-end; > - asahi-kasei,out6-single-end; > - }; > - > - cs2000: clk-multiplier@4f { > - #clock-cells = <0>; > - compatible = "cirrus,cs2000-cp"; > - reg = <0x4f>; > - clocks = <&audio_clkout>, <&x12_clk>; > - clock-names = "clk_in", "ref_clk"; > - > - assigned-clocks = <&cs2000>; > - assigned-clock-rates = <24576000>; /* 1/1 divide */ > - }; > -}; > - > -&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"; > - > - /* update <audio_clk_b> to <cs2000> */ > - 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>, <&cs2000>, > - <&audio_clk_c>, > - <&cpg CPG_CORE R8A7795_CLK_S0D4>; > - > - rcar_sound,dai { > - dai0 { > - playback = <&ssi0 &src0 &dvc0>; > - capture = <&ssi1 &src1 &dvc1>; > - }; > - }; > -}; > - > -&sdhi0 { > - pinctrl-0 = <&sdhi0_pins>; > - pinctrl-1 = <&sdhi0_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <&vcc_sdhi0>; > - vqmmc-supply = <&vccq_sdhi0>; > - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; > - bus-width = <4>; > - sd-uhs-sdr50; > - status = "okay"; > -}; > - > -&sdhi2 { > - /* used for on-board 8bit eMMC */ > - pinctrl-0 = <&sdhi2_pins>; > - pinctrl-1 = <&sdhi2_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <®_3p3v>; > - vqmmc-supply = <®_1p8v>; > - bus-width = <8>; > - non-removable; > - status = "okay"; > -}; > - > -&ssi1 { > - shared-pin; > -}; > - > -&wdt0 { > - timeout-sec = <60>; > - status = "okay"; > -}; > - > -&audio_clk_a { > - clock-frequency = <22579200>; > -}; > - > -&avb { > - pinctrl-0 = <&avb_pins>; > - pinctrl-names = "default"; > - renesas,no-ether-link; > - phy-handle = <&phy0>; > - status = "okay"; > - > - phy0: ethernet-phy@0 { > - rxc-skew-ps = <1500>; > - reg = <0>; > - interrupt-parent = <&gpio2>; > - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; > - }; > -}; > - > -&usb2_phy1 { > - pinctrl-0 = <&usb1_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > -}; > - > -&ehci1 { > - status = "okay"; > -}; > - > -&ohci1 { > - status = "okay"; > }; > diff --git a/arch/arm/dts/r8a7795-salvator-x.dts b/arch/arm/dts/r8a7795-salvator-x.dts > index 639aa085d9..684fb3b9d1 100644 > --- a/arch/arm/dts/r8a7795-salvator-x.dts > +++ b/arch/arm/dts/r8a7795-salvator-x.dts > @@ -8,577 +8,108 @@ > * kind, whether express or implied. > */ > > -/* > - * SSI-AK4613 > - * > - * This command is required when Playback/Capture > - * > - * amixer set "DVC Out" 100% > - * amixer set "DVC In" 100% > - * > - * You can use Mute > - * > - * amixer set "DVC Out Mute" on > - * amixer set "DVC In Mute" on > - * > - * You can use Volume Ramp > - * > - * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" > - * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" > - * amixer set "DVC Out Ramp" on > - * aplay xxx.wav & > - * amixer set "DVC Out" 80% // Volume Down > - * amixer set "DVC Out" 100% // Volume Up > - */ > +#define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 > > /dts-v1/; > #include "r8a7795.dtsi" > -#include <dt-bindings/gpio/gpio.h> > +#include "salvator-x.dtsi" > > / { > - model = "Renesas Salvator-X board based on r8a7795"; > + model = "Renesas Salvator-X board based on r8a7795 ES2.0+"; > compatible = "renesas,salvator-x", "renesas,r8a7795"; > > - aliases { > - serial0 = &scif2; > - serial1 = &scif1; > - ethernet0 = &avb; > - }; > - > - chosen { > - bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; > - stdout-path = "serial0:115200n8"; > - }; > - > memory@48000000 { > device_type = "memory"; > /* first 128MB is reserved for secure area. */ > reg = <0x0 0x48000000 0x0 0x38000000>; > }; > > - x12_clk: x12 { > - compatible = "fixed-clock"; > - #clock-cells = <0>; > - clock-frequency = <24576000>; > - }; > - > - reg_1p8v: regulator0 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-1.8V"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - reg_3p3v: regulator1 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-3.3V"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - vcc_sdhi0: regulator-vcc-sdhi0 { > - compatible = "regulator-fixed"; > - > - regulator-name = "SDHI0 Vcc"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vccq_sdhi0: regulator-vccq-sdhi0 { > - compatible = "regulator-gpio"; > - > - regulator-name = "SDHI0 VccQ"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; > - gpios-states = <1>; > - states = <3300000 1 > - 1800000 0>; > - }; > - > - vcc_sdhi3: regulator-vcc-sdhi3 { > - compatible = "regulator-fixed"; > - > - regulator-name = "SDHI3 Vcc"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vccq_sdhi3: regulator-vccq-sdhi3 { > - compatible = "regulator-gpio"; > - > - regulator-name = "SDHI3 VccQ"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; > - gpios-states = <1>; > - states = <3300000 1 > - 1800000 0>; > + memory@500000000 { > + device_type = "memory"; > + reg = <0x5 0x00000000 0x0 0x40000000>; > }; > > - vbus0_usb2: regulator-vbus0-usb2 { > - compatible = "regulator-fixed"; > - > - regulator-name = "USB20_VBUS0"; > - regulator-min-microvolt = <5000000>; > - regulator-max-microvolt = <5000000>; > - > - gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; > - enable-active-high; > + memory@600000000 { > + device_type = "memory"; > + reg = <0x6 0x00000000 0x0 0x40000000>; > }; > > - audio_clkout: audio_clkout { > - /* > - * This is same as <&rcar_sound 0> > - * but needed to avoid cs2000/rcar_sound probe dead-lock > - */ > - compatible = "fixed-clock"; > - #clock-cells = <0>; > - clock-frequency = <11289600>; > + memory@700000000 { > + device_type = "memory"; > + reg = <0x7 0x00000000 0x0 0x40000000>; > }; > +}; > > - rsnd_ak4613: sound { > - compatible = "simple-audio-card"; > - > - simple-audio-card,format = "left_j"; > - simple-audio-card,bitclock-master = <&sndcpu>; > - simple-audio-card,frame-master = <&sndcpu>; > - > - sndcpu: simple-audio-card,cpu { > - sound-dai = <&rcar_sound>; > - }; > - > - sndcodec: simple-audio-card,codec { > - sound-dai = <&ak4613>; > - }; > - }; > +&du { > + clocks = <&cpg CPG_MOD 724>, > + <&cpg CPG_MOD 723>, > + <&cpg CPG_MOD 722>, > + <&cpg CPG_MOD 721>, > + <&cpg CPG_MOD 727>, > + <&versaclock5 1>, > + <&x21_clk>, > + <&x22_clk>, > + <&versaclock5 2>; > + clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", > + "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; > +}; > > - vga-encoder { > - compatible = "adi,adv7123"; > +&ehci2 { > + status = "okay"; > +}; > > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > +&hdmi0 { > + status = "okay"; > > - port@0 { > - reg = <0>; > - adv7123_in: endpoint { > - remote-endpoint = <&du_out_rgb>; > - }; > - }; > - port@1 { > - reg = <1>; > - adv7123_out: endpoint { > - remote-endpoint = <&vga_in>; > - }; > + ports { > + port@1 { > + reg = <1>; > + rcar_dw_hdmi0_out: endpoint { > + remote-endpoint = <&hdmi0_con>; > }; > }; > }; > +}; > > - vga { > - compatible = "vga-connector"; > - > - port { > - vga_in: endpoint { > - remote-endpoint = <&adv7123_out>; > - }; > - }; > - }; > +&hdmi0_con { > + remote-endpoint = <&rcar_dw_hdmi0_out>; > }; > > -&du { > - pinctrl-0 = <&du_pins>; > - pinctrl-names = "default"; > +&hdmi1 { > status = "okay"; > > ports { > - port@0 { > - endpoint { > - remote-endpoint = <&adv7123_in>; > - }; > - }; > - port@3 { > - lvds_connector: endpoint { > + port@1 { > + reg = <1>; > + rcar_dw_hdmi1_out: endpoint { > + remote-endpoint = <&hdmi1_con>; > }; > }; > }; > }; > > -&extal_clk { > - clock-frequency = <16666666>; > +&hdmi1_con { > + remote-endpoint = <&rcar_dw_hdmi1_out>; > }; > > -&extalr_clk { > - clock-frequency = <32768>; > +&ohci2 { > + status = "okay"; > }; > > &pfc { > - pinctrl-0 = <&scif_clk_pins>; > - pinctrl-names = "default"; > - > - scif1_pins: scif1 { > - groups = "scif1_data_a", "scif1_ctrl"; > - function = "scif1"; > - }; > - scif2_pins: scif2 { > - groups = "scif2_data_a"; > - function = "scif2"; > - }; > - scif_clk_pins: scif_clk { > - groups = "scif_clk_a"; > - function = "scif_clk"; > - }; > - > - i2c2_pins: i2c2 { > - groups = "i2c2_a"; > - function = "i2c2"; > - }; > - > - avb_pins: avb { > - mux { > - groups = "avb_link", "avb_phy_int", "avb_mdc", > - "avb_mii"; > - function = "avb"; > - }; > - > - pins_mdc { > - groups = "avb_mdc"; > - drive-strength = <24>; > - }; > - > - pins_mii_tx { > - pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", > - "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; > - drive-strength = <12>; > - }; > - }; > - > - du_pins: du { > - groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; > - function = "du"; > - }; > - > - 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>; > - }; > - > - sdhi2_pins: sd2 { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <3300>; > - }; > - > - sdhi2_pins_uhs: sd2_uhs { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <1800>; > - }; > - > - sdhi3_pins: sd3 { > - groups = "sdhi3_data4", "sdhi3_ctrl"; > - function = "sdhi3"; > - power-source = <3300>; > - }; > - > - sdhi3_pins_uhs: sd3_uhs { > - groups = "sdhi3_data4", "sdhi3_ctrl"; > - function = "sdhi3"; > - 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", "audio_clk_b_a", "audio_clk_c_a", > - "audio_clkout_a", "audio_clkout3_a"; > - function = "audio_clk"; > - }; > - > - usb0_pins: usb0 { > - groups = "usb0"; > - function = "usb0"; > - }; > - > - usb1_pins: usb1 { > - mux { > - groups = "usb1"; > - function = "usb1"; > - }; > - > - ovc { > - pins = "GP_6_27"; > - bias-pull-up; > - }; > - > - pwen { > - pins = "GP_6_26"; > - bias-pull-down; > - }; > - }; > - > usb2_pins: usb2 { > groups = "usb2"; > function = "usb2"; > }; > }; > > -&scif1 { > - pinctrl-0 = <&scif1_pins>; > - pinctrl-names = "default"; > - > - uart-has-rtscts; > - status = "okay"; > -}; > - > -&scif2 { > - pinctrl-0 = <&scif2_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > -}; > - > -&scif_clk { > - clock-frequency = <14745600>; > -}; > - > -&i2c2 { > - pinctrl-0 = <&i2c2_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > - > - clock-frequency = <100000>; > - > - ak4613: codec@10 { > - compatible = "asahi-kasei,ak4613"; > - #sound-dai-cells = <0>; > - reg = <0x10>; > - clocks = <&rcar_sound 3>; > - > - asahi-kasei,in1-single-end; > - asahi-kasei,in2-single-end; > - asahi-kasei,out1-single-end; > - asahi-kasei,out2-single-end; > - asahi-kasei,out3-single-end; > - asahi-kasei,out4-single-end; > - asahi-kasei,out5-single-end; > - asahi-kasei,out6-single-end; > - }; > - > - cs2000: clk_multiplier@4f { > - #clock-cells = <0>; > - compatible = "cirrus,cs2000-cp"; > - reg = <0x4f>; > - clocks = <&audio_clkout>, <&x12_clk>; > - clock-names = "clk_in", "ref_clk"; > - > - assigned-clocks = <&cs2000>; > - assigned-clock-rates = <24576000>; /* 1/1 divide */ > - }; > -}; > - > -&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"; > - > - /* update <audio_clk_b> to <cs2000> */ > - 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>, <&cs2000>, > - <&audio_clk_c>, > - <&cpg CPG_CORE R8A7795_CLK_S0D4>; > - > - rcar_sound,dai { > - dai0 { > - playback = <&ssi0 &src0 &dvc0>; > - capture = <&ssi1 &src1 &dvc1>; > - }; > - }; > -}; > - > &sata { > status = "okay"; > }; > > -&sdhi0 { > - pinctrl-0 = <&sdhi0_pins>; > - pinctrl-1 = <&sdhi0_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <&vcc_sdhi0>; > - vqmmc-supply = <&vccq_sdhi0>; > - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; > - wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; > - bus-width = <4>; > - sd-uhs-sdr50; > - status = "okay"; > -}; > - > -&sdhi2 { > - /* used for on-board 8bit eMMC */ > - pinctrl-0 = <&sdhi2_pins>; > - pinctrl-1 = <&sdhi2_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <®_3p3v>; > - vqmmc-supply = <®_1p8v>; > - bus-width = <8>; > - non-removable; > - status = "okay"; > -}; > - > -&sdhi3 { > - pinctrl-0 = <&sdhi3_pins>; > - pinctrl-1 = <&sdhi3_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <&vcc_sdhi3>; > - vqmmc-supply = <&vccq_sdhi3>; > - cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; > - wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; > - bus-width = <4>; > - sd-uhs-sdr50; > - status = "okay"; > -}; > - > -&ssi1 { > - shared-pin; > -}; > - > -&wdt0 { > - timeout-sec = <60>; > - status = "okay"; > -}; > - > -&audio_clk_a { > - clock-frequency = <22579200>; > -}; > - > -&i2c_dvfs { > - status = "okay"; > -}; > - > -&avb { > - pinctrl-0 = <&avb_pins>; > - pinctrl-names = "default"; > - renesas,no-ether-link; > - phy-handle = <&phy0>; > - status = "okay"; > - > - phy0: ethernet-phy@0 { > - rxc-skew-ps = <1500>; > - reg = <0>; > - interrupt-parent = <&gpio2>; > - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; > - }; > -}; > - > -&xhci0 { > - status = "okay"; > -}; > - > -&usb2_phy0 { > - pinctrl-0 = <&usb0_pins>; > - pinctrl-names = "default"; > - > - vbus-supply = <&vbus0_usb2>; > - status = "okay"; > -}; > - > -&usb2_phy1 { > - pinctrl-0 = <&usb1_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > -}; > - > &usb2_phy2 { > pinctrl-0 = <&usb2_pins>; > pinctrl-names = "default"; > > status = "okay"; > }; > - > -&ehci0 { > - status = "okay"; > -}; > - > -&ehci1 { > - status = "okay"; > -}; > - > -&ehci2 { > - status = "okay"; > -}; > - > -&ohci0 { > - status = "okay"; > -}; > - > -&ohci1 { > - status = "okay"; > -}; > - > -&ohci2 { > - status = "okay"; > -}; > - > -&hsusb { > - status = "okay"; > -}; > - > -&pcie_bus_clk { > - clock-frequency = <100000000>; > -}; > - > -&pciec0 { > - status = "okay"; > -}; > - > -&pciec1 { > - status = "okay"; > -}; > diff --git a/arch/arm/dts/r8a7795.dtsi b/arch/arm/dts/r8a7795.dtsi > index 110d0681c8..615b652131 100644 > --- a/arch/arm/dts/r8a7795.dtsi > +++ b/arch/arm/dts/r8a7795.dtsi > @@ -184,7 +184,7 @@ > clock-frequency = <0>; > }; > > - soc { > + soc: soc { > compatible = "simple-bus"; > interrupt-parent = <&gic>; > > @@ -402,7 +402,7 @@ > #power-domain-cells = <1>; > }; > > - pfc: pfc@e6060000 { > + pfc: pin-controller@e6060000 { > compatible = "renesas,pfc-r8a7795"; > reg = <0 0xe6060000 0 0x50c>; > }; > @@ -887,6 +887,8 @@ > clocks = <&cpg CPG_MOD 926>; > power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > resets = <&cpg 926>; > + dmas = <&dmac0 0x11>, <&dmac0 0x10>; > + dma-names = "tx", "rx"; > status = "disabled"; > }; > > @@ -1122,6 +1124,16 @@ > "dvc.0", "dvc.1", > "clk_a", "clk_b", "clk_c", "clk_i"; > power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > + resets = <&cpg 1005>, > + <&cpg 1006>, <&cpg 1007>, > + <&cpg 1008>, <&cpg 1009>, > + <&cpg 1010>, <&cpg 1011>, > + <&cpg 1012>, <&cpg 1013>, > + <&cpg 1014>, <&cpg 1015>; > + reset-names = "ssi-all", > + "ssi.9", "ssi.8", "ssi.7", "ssi.6", > + "ssi.5", "ssi.4", "ssi.3", "ssi.2", > + "ssi.1", "ssi.0"; > status = "disabled"; > > rcar_sound,dvc { > @@ -1278,16 +1290,6 @@ > status = "disabled"; > }; > > - xhci1: usb@ee0400000 { > - compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci"; > - reg = <0 0xee040000 0 0xc00>; > - interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&cpg CPG_MOD 327>; > - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > - resets = <&cpg 327>; > - status = "disabled"; > - }; > - > usb_dmac0: dma-controller@e65a0000 { > compatible = "renesas,r8a7795-usb-dmac", > "renesas,usb-dmac"; > @@ -1572,14 +1574,6 @@ > resets = <&cpg 614>; > }; > > - fcpf2: fcp@fe952000 { > - compatible = "renesas,fcpf"; > - reg = <0 0xfe952000 0 0x200>; > - clocks = <&cpg CPG_MOD 613>; > - power-domains = <&sysc R8A7795_PD_A3VP>; > - resets = <&cpg 613>; > - }; > - > vspbd: vsp@fe960000 { > compatible = "renesas,vsp2"; > reg = <0 0xfe960000 0 0x8000>; > @@ -1637,25 +1631,6 @@ > resets = <&cpg 610>; > }; > > - vspi2: vsp@fe9c0000 { > - compatible = "renesas,vsp2"; > - reg = <0 0xfe9c0000 0 0x8000>; > - interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&cpg CPG_MOD 629>; > - power-domains = <&sysc R8A7795_PD_A3VP>; > - resets = <&cpg 629>; > - > - renesas,fcp = <&fcpvi2>; > - }; > - > - fcpvi2: fcp@fe9cf000 { > - compatible = "renesas,fcpv"; > - reg = <0 0xfe9cf000 0 0x200>; > - clocks = <&cpg CPG_MOD 609>; > - power-domains = <&sysc R8A7795_PD_A3VP>; > - resets = <&cpg 609>; > - }; > - > vspd0: vsp@fea20000 { > compatible = "renesas,vsp2"; > reg = <0 0xfea20000 0 0x4000>; > @@ -1713,25 +1688,6 @@ > resets = <&cpg 601>; > }; > > - vspd3: vsp@fea38000 { > - compatible = "renesas,vsp2"; > - reg = <0 0xfea38000 0 0x4000>; > - interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&cpg CPG_MOD 620>; > - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > - resets = <&cpg 620>; > - > - renesas,fcp = <&fcpvd3>; > - }; > - > - fcpvd3: fcp@fea3f000 { > - compatible = "renesas,fcpv"; > - reg = <0 0xfea3f000 0 0x200>; > - clocks = <&cpg CPG_MOD 600>; > - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > - resets = <&cpg 600>; > - }; > - > fdp1@fe940000 { > compatible = "renesas,fdp1"; > reg = <0 0xfe940000 0 0x2400>; > @@ -1752,18 +1708,57 @@ > renesas,fcp = <&fcpf1>; > }; > > - fdp1@fe948000 { > - compatible = "renesas,fdp1"; > - reg = <0 0xfe948000 0 0x2400>; > - interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&cpg CPG_MOD 117>; > - power-domains = <&sysc R8A7795_PD_A3VP>; > - resets = <&cpg 117>; > - renesas,fcp = <&fcpf2>; > + hdmi0: hdmi0@fead0000 { > + compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; > + reg = <0 0xfead0000 0 0x10000>; > + interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cpg CPG_MOD 729>, <&cpg CPG_CORE R8A7795_CLK_HDMI>; > + clock-names = "iahb", "isfr"; > + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > + resets = <&cpg 729>; > + status = "disabled"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + dw_hdmi0_in: endpoint { > + remote-endpoint = <&du_out_hdmi0>; > + }; > + }; > + port@1 { > + reg = <1>; > + }; > + }; > + }; > + > + hdmi1: hdmi1@feae0000 { > + compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; > + reg = <0 0xfeae0000 0 0x10000>; > + interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cpg CPG_MOD 728>, <&cpg CPG_CORE R8A7795_CLK_HDMI>; > + clock-names = "iahb", "isfr"; > + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > + resets = <&cpg 728>; > + status = "disabled"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + dw_hdmi1_in: endpoint { > + remote-endpoint = <&du_out_hdmi1>; > + }; > + }; > + port@1 { > + reg = <1>; > + }; > + }; > }; > > du: display@feb00000 { > - compatible = "renesas,du-r8a7795"; > reg = <0 0xfeb00000 0 0x80000>, > <0 0xfeb90000 0 0x14>; > reg-names = "du", "lvds.0"; > @@ -1779,8 +1774,6 @@ > clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0"; > status = "disabled"; > > - vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; > - > ports { > #address-cells = <1>; > #size-cells = <0>; > @@ -1793,11 +1786,13 @@ > port@1 { > reg = <1>; > du_out_hdmi0: endpoint { > + remote-endpoint = <&dw_hdmi0_in>; > }; > }; > port@2 { > reg = <2>; > du_out_hdmi1: endpoint { > + remote-endpoint = <&dw_hdmi1_in>; > }; > }; > port@3 { > diff --git a/arch/arm/dts/r8a7796-m3ulcb.dts b/arch/arm/dts/r8a7796-m3ulcb.dts > index 372b2a9447..38b58b7fca 100644 > --- a/arch/arm/dts/r8a7796-m3ulcb.dts > +++ b/arch/arm/dts/r8a7796-m3ulcb.dts > @@ -9,180 +9,24 @@ > * kind, whether express or implied. > */ > > +#define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 > + > /dts-v1/; > #include "r8a7796.dtsi" > -#include <dt-bindings/gpio/gpio.h> > -#include <dt-bindings/input/input.h> > +#include "ulcb.dtsi" > > / { > model = "Renesas M3ULCB board based on r8a7796"; > compatible = "renesas,m3ulcb", "renesas,r8a7796"; > > - aliases { > - serial0 = &scif2; > - }; > - > - chosen { > - stdout-path = "serial0:115200n8"; > - }; > - > memory@48000000 { > device_type = "memory"; > /* first 128MB is reserved for secure area. */ > reg = <0x0 0x48000000 0x0 0x38000000>; > }; > > - leds { > - compatible = "gpio-leds"; > - > - led5 { > - gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; > - }; > - led6 { > - gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; > - }; > - }; > - > - keyboard { > - compatible = "gpio-keys"; > - > - key-1 { > - linux,code = <KEY_1>; > - label = "SW3"; > - wakeup-source; > - debounce-interval = <20>; > - gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; > - }; > - }; > - > - reg_1p8v: regulator0 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-1.8V"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - reg_3p3v: regulator1 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-3.3V"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - vcc_sdhi0: regulator-vcc-sdhi0 { > - compatible = "regulator-fixed"; > - > - regulator-name = "SDHI0 Vcc"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vccq_sdhi0: regulator-vccq-sdhi0 { > - compatible = "regulator-gpio"; > - > - regulator-name = "SDHI0 VccQ"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; > - gpios-states = <1>; > - states = <3300000 1 > - 1800000 0>; > - }; > -}; > - > -&extal_clk { > - clock-frequency = <16666666>; > -}; > - > -&extalr_clk { > - clock-frequency = <32768>; > -}; > - > -&pfc { > - pinctrl-0 = <&scif_clk_pins>; > - pinctrl-names = "default"; > - > - scif2_pins: scif2 { > - groups = "scif2_data_a"; > - function = "scif2"; > - }; > - > - scif_clk_pins: scif_clk { > - groups = "scif_clk_a"; > - function = "scif_clk"; > - }; > - > - 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>; > - }; > - > - sdhi2_pins: sd2 { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <3300>; > - }; > - > - sdhi2_pins_uhs: sd2_uhs { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <1800>; > + memory@600000000 { > + device_type = "memory"; > + reg = <0x6 0x00000000 0x0 0x40000000>; > }; > }; > - > -&sdhi0 { > - pinctrl-0 = <&sdhi0_pins>; > - pinctrl-1 = <&sdhi0_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <&vcc_sdhi0>; > - vqmmc-supply = <&vccq_sdhi0>; > - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; > - bus-width = <4>; > - sd-uhs-sdr50; > - status = "okay"; > -}; > - > -&sdhi2 { > - /* used for on-board 8bit eMMC */ > - pinctrl-0 = <&sdhi2_pins>; > - pinctrl-1 = <&sdhi2_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <®_3p3v>; > - vqmmc-supply = <®_1p8v>; > - bus-width = <8>; > - non-removable; > - status = "okay"; > -}; > - > -&scif2 { > - pinctrl-0 = <&scif2_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > -}; > - > -&scif_clk { > - clock-frequency = <14745600>; > -}; > - > -&wdt0 { > - timeout-sec = <60>; > - status = "okay"; > -}; > diff --git a/arch/arm/dts/r8a7796-salvator-x.dts b/arch/arm/dts/r8a7796-salvator-x.dts > index c9f59b6ce3..db4f162d6b 100644 > --- a/arch/arm/dts/r8a7796-salvator-x.dts > +++ b/arch/arm/dts/r8a7796-salvator-x.dts > @@ -8,25 +8,16 @@ > * kind, whether express or implied. > */ > > +#define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 > + > /dts-v1/; > #include "r8a7796.dtsi" > -#include <dt-bindings/gpio/gpio.h> > +#include "salvator-x.dtsi" > > / { > model = "Renesas Salvator-X board based on r8a7796"; > compatible = "renesas,salvator-x", "renesas,r8a7796"; > > - aliases { > - serial0 = &scif2; > - serial1 = &scif1; > - ethernet0 = &avb; > - }; > - > - chosen { > - bootargs = "ignore_loglevel"; > - stdout-path = "serial0:115200n8"; > - }; > - > memory@48000000 { > device_type = "memory"; > /* first 128MB is reserved for secure area. */ > @@ -37,233 +28,4 @@ > device_type = "memory"; > reg = <0x6 0x00000000 0x0 0x80000000>; > }; > - > - reg_1p8v: regulator0 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-1.8V"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - reg_3p3v: regulator1 { > - compatible = "regulator-fixed"; > - regulator-name = "fixed-3.3V"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - > - vcc_sdhi0: regulator-vcc-sdhi0 { > - compatible = "regulator-fixed"; > - > - regulator-name = "SDHI0 Vcc"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vccq_sdhi0: regulator-vccq-sdhi0 { > - compatible = "regulator-gpio"; > - > - regulator-name = "SDHI0 VccQ"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; > - gpios-states = <1>; > - states = <3300000 1 > - 1800000 0>; > - }; > - > - vcc_sdhi3: regulator-vcc-sdhi3 { > - compatible = "regulator-fixed"; > - > - regulator-name = "SDHI3 Vcc"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vccq_sdhi3: regulator-vccq-sdhi3 { > - compatible = "regulator-gpio"; > - > - regulator-name = "SDHI3 VccQ"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; > - gpios-states = <1>; > - states = <3300000 1 > - 1800000 0>; > - }; > -}; > - > -&pfc { > - pinctrl-0 = <&scif_clk_pins>; > - pinctrl-names = "default"; > - > - avb_pins: avb { > - groups = "avb_mdc"; > - function = "avb"; > - }; > - > - scif1_pins: scif1 { > - groups = "scif1_data_a", "scif1_ctrl"; > - function = "scif1"; > - }; > - > - scif2_pins: scif2 { > - groups = "scif2_data_a"; > - function = "scif2"; > - }; > - scif_clk_pins: scif_clk { > - groups = "scif_clk_a"; > - function = "scif_clk"; > - }; > - > - i2c2_pins: i2c2 { > - groups = "i2c2_a"; > - function = "i2c2"; > - }; > - > - 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>; > - }; > - > - sdhi2_pins: sd2 { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <3300>; > - }; > - > - sdhi2_pins_uhs: sd2_uhs { > - groups = "sdhi2_data8", "sdhi2_ctrl"; > - function = "sdhi2"; > - power-source = <1800>; > - }; > - > - sdhi3_pins: sd3 { > - groups = "sdhi3_data4", "sdhi3_ctrl"; > - function = "sdhi3"; > - power-source = <3300>; > - }; > - > - sdhi3_pins_uhs: sd3_uhs { > - groups = "sdhi3_data4", "sdhi3_ctrl"; > - function = "sdhi3"; > - power-source = <1800>; > - }; > -}; > - > -&avb { > - pinctrl-0 = <&avb_pins>; > - pinctrl-names = "default"; > - renesas,no-ether-link; > - phy-handle = <&phy0>; > - status = "okay"; > - > - phy0: ethernet-phy@0 { > - rxc-skew-ps = <1500>; > - reg = <0>; > - interrupt-parent = <&gpio2>; > - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; > - }; > -}; > - > -&extal_clk { > - clock-frequency = <16666666>; > -}; > - > -&extalr_clk { > - clock-frequency = <32768>; > -}; > - > -&sdhi0 { > - pinctrl-0 = <&sdhi0_pins>; > - pinctrl-1 = <&sdhi0_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <&vcc_sdhi0>; > - vqmmc-supply = <&vccq_sdhi0>; > - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; > - wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; > - bus-width = <4>; > - sd-uhs-sdr50; > - status = "okay"; > -}; > - > -&sdhi2 { > - /* used for on-board 8bit eMMC */ > - pinctrl-0 = <&sdhi2_pins>; > - pinctrl-1 = <&sdhi2_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <®_3p3v>; > - vqmmc-supply = <®_1p8v>; > - bus-width = <8>; > - non-removable; > - status = "okay"; > -}; > - > -&sdhi3 { > - pinctrl-0 = <&sdhi3_pins>; > - pinctrl-1 = <&sdhi3_pins_uhs>; > - pinctrl-names = "default", "state_uhs"; > - > - vmmc-supply = <&vcc_sdhi3>; > - vqmmc-supply = <&vccq_sdhi3>; > - cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; > - wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; > - bus-width = <4>; > - sd-uhs-sdr50; > - status = "okay"; > -}; > - > -&scif1 { > - pinctrl-0 = <&scif1_pins>; > - pinctrl-names = "default"; > - > - uart-has-rtscts; > - status = "okay"; > -}; > - > -&scif2 { > - pinctrl-0 = <&scif2_pins>; > - pinctrl-names = "default"; > - status = "okay"; > -}; > - > -&scif_clk { > - clock-frequency = <14745600>; > -}; > - > -&i2c2 { > - pinctrl-0 = <&i2c2_pins>; > - pinctrl-names = "default"; > - > - status = "okay"; > -}; > - > -&wdt0 { > - timeout-sec = <60>; > - status = "okay"; > -}; > - > -&i2c_dvfs { > - status = "okay"; > }; > diff --git a/arch/arm/dts/r8a7796.dtsi b/arch/arm/dts/r8a7796.dtsi > index 298df5db9f..c0cb4a952f 100644 > --- a/arch/arm/dts/r8a7796.dtsi > +++ b/arch/arm/dts/r8a7796.dtsi > @@ -122,6 +122,29 @@ > u-boot,dm-pre-reloc; > }; > > + /* > + * The external audio clocks are configured as 0 Hz fixed frequency > + * clocks by default. > + * Boards that provide audio clocks should override them. > + */ > + audio_clk_a: audio_clk_a { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <0>; > + }; > + > + audio_clk_b: audio_clk_b { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <0>; > + }; > + > + audio_clk_c: audio_clk_c { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <0>; > + }; > + > /* External CAN clock - to be overridden by boards that provide it */ > can_clk: can { > compatible = "fixed-clock"; > @@ -136,6 +159,13 @@ > clock-frequency = <0>; > }; > > + /* External PCIe clock - can be overridden by the board */ > + pcie_bus_clk: pcie_bus { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <0>; > + }; > + > soc { > compatible = "simple-bus"; > interrupt-parent = <&gic>; > @@ -366,6 +396,78 @@ > clocks = <&cpg CPG_MOD 926>; > power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > resets = <&cpg 926>; > + dmas = <&dmac0 0x11>, <&dmac0 0x10>; > + dma-names = "tx", "rx"; > + status = "disabled"; > + }; > + > + pwm0: pwm@e6e30000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e30000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + status = "disabled"; > + }; > + > + pwm1: pwm@e6e31000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e31000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + status = "disabled"; > + }; > + > + pwm2: pwm@e6e32000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e32000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + status = "disabled"; > + }; > + > + pwm3: pwm@e6e33000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e33000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + status = "disabled"; > + }; > + > + pwm4: pwm@e6e34000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e34000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + status = "disabled"; > + }; > + > + pwm5: pwm@e6e35000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e35000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + status = "disabled"; > + }; > + > + pwm6: pwm@e6e36000 { > + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; > + reg = <0 0xe6e36000 0 8>; > + #pwm-cells = <2>; > + clocks = <&cpg CPG_MOD 523>; > + resets = <&cpg 523>; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > status = "disabled"; > }; > > @@ -935,6 +1037,106 @@ > dma-channels = <16>; > }; > > + audma0: dma-controller@ec700000 { > + compatible = "renesas,dmac-r8a7796", > + "renesas,rcar-dmac"; > + reg = <0 0xec700000 0 0x10000>; > + interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "error", > + "ch0", "ch1", "ch2", "ch3", > + "ch4", "ch5", "ch6", "ch7", > + "ch8", "ch9", "ch10", "ch11", > + "ch12", "ch13", "ch14", "ch15"; > + clocks = <&cpg CPG_MOD 502>; > + clock-names = "fck"; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + resets = <&cpg 502>; > + #dma-cells = <1>; > + dma-channels = <16>; > + }; > + > + audma1: dma-controller@ec720000 { > + compatible = "renesas,dmac-r8a7796", > + "renesas,rcar-dmac"; > + reg = <0 0xec720000 0 0x10000>; > + interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH > + GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "error", > + "ch0", "ch1", "ch2", "ch3", > + "ch4", "ch5", "ch6", "ch7", > + "ch8", "ch9", "ch10", "ch11", > + "ch12", "ch13", "ch14", "ch15"; > + clocks = <&cpg CPG_MOD 501>; > + clock-names = "fck"; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + resets = <&cpg 501>; > + #dma-cells = <1>; > + dma-channels = <16>; > + }; > + > + hsusb: usb@e6590000 { > + /* placeholder */ > + }; > + > + xhci0: usb@ee000000 { > + /* placeholder */ > + }; > + > + ohci0: usb@ee080000 { > + /* placeholder */ > + }; > + > + ehci0: usb@ee080100 { > + /* placeholder */ > + }; > + > + usb2_phy0: usb-phy@ee080200 { > + /* placeholder */ > + }; > + > + ohci1: usb@ee0a0000 { > + /* placeholder */ > + }; > + > + ehci1: usb@ee0a0100 { > + /* placeholder */ > + }; > + > + usb2_phy1: usb-phy@ee0a0200 { > + /* placeholder */ > + }; > + > sdhi0: sd@ee100000 { > compatible = "renesas,sdhi-r8a7796"; > reg = <0 0xee100000 0 0x2000>; > @@ -1037,5 +1239,224 @@ > }; > }; > }; > + > + rcar_sound: sound@ec500000 { > + /* > + * #sound-dai-cells is required > + * > + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; > + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; > + */ > + /* > + * #clock-cells is required for audio_clkout0/1/2/3 > + * > + * clkout : #clock-cells = <0>; <&rcar_sound>; > + * clkout0/1/2/3: #clock-cells = <1>; <&rcar_sound N>; > + */ > + compatible = "renesas,rcar_sound-r8a7796", "renesas,rcar_sound-gen3"; > + reg = <0 0xec500000 0 0x1000>, /* SCU */ > + <0 0xec5a0000 0 0x100>, /* ADG */ > + <0 0xec540000 0 0x1000>, /* SSIU */ > + <0 0xec541000 0 0x280>, /* SSI */ > + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ > + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; > + > + 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 R8A7796_CLK_S0D4>; > + clock-names = "ssi-all", > + "ssi.9", "ssi.8", "ssi.7", "ssi.6", > + "ssi.5", "ssi.4", "ssi.3", "ssi.2", > + "ssi.1", "ssi.0", > + "src.9", "src.8", "src.7", "src.6", > + "src.5", "src.4", "src.3", "src.2", > + "src.1", "src.0", > + "mix.1", "mix.0", > + "ctu.1", "ctu.0", > + "dvc.0", "dvc.1", > + "clk_a", "clk_b", "clk_c", "clk_i"; > + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; > + resets = <&cpg 1005>, > + <&cpg 1006>, <&cpg 1007>, > + <&cpg 1008>, <&cpg 1009>, > + <&cpg 1010>, <&cpg 1011>, > + <&cpg 1012>, <&cpg 1013>, > + <&cpg 1014>, <&cpg 1015>; > + reset-names = "ssi-all", > + "ssi.9", "ssi.8", "ssi.7", "ssi.6", > + "ssi.5", "ssi.4", "ssi.3", "ssi.2", > + "ssi.1", "ssi.0"; > + status = "disabled"; > + > + rcar_sound,dvc { > + dvc0: dvc-0 { > + dmas = <&audma1 0xbc>; > + dma-names = "tx"; > + }; > + dvc1: dvc-1 { > + dmas = <&audma1 0xbe>; > + dma-names = "tx"; > + }; > + }; > + > + rcar_sound,mix { > + mix0: mix-0 { }; > + mix1: mix-1 { }; > + }; > + > + rcar_sound,ctu { > + ctu00: ctu-0 { }; > + ctu01: ctu-1 { }; > + ctu02: ctu-2 { }; > + ctu03: ctu-3 { }; > + ctu10: ctu-4 { }; > + ctu11: ctu-5 { }; > + ctu12: ctu-6 { }; > + ctu13: ctu-7 { }; > + }; > + > + rcar_sound,src { > + src0: src-0 { > + interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x85>, <&audma1 0x9a>; > + dma-names = "rx", "tx"; > + }; > + src1: src-1 { > + interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x87>, <&audma1 0x9c>; > + dma-names = "rx", "tx"; > + }; > + src2: src-2 { > + interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x89>, <&audma1 0x9e>; > + dma-names = "rx", "tx"; > + }; > + src3: src-3 { > + interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x8b>, <&audma1 0xa0>; > + dma-names = "rx", "tx"; > + }; > + src4: src-4 { > + interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x8d>, <&audma1 0xb0>; > + dma-names = "rx", "tx"; > + }; > + src5: src-5 { > + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x8f>, <&audma1 0xb2>; > + dma-names = "rx", "tx"; > + }; > + src6: src-6 { > + interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x91>, <&audma1 0xb4>; > + dma-names = "rx", "tx"; > + }; > + src7: src-7 { > + interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x93>, <&audma1 0xb6>; > + dma-names = "rx", "tx"; > + }; > + src8: src-8 { > + interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x95>, <&audma1 0xb8>; > + dma-names = "rx", "tx"; > + }; > + src9: src-9 { > + interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x97>, <&audma1 0xba>; > + dma-names = "rx", "tx"; > + }; > + }; > + > + rcar_sound,ssi { > + ssi0: ssi-0 { > + interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi1: ssi-1 { > + interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi2: ssi-2 { > + interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi3: ssi-3 { > + interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi4: ssi-4 { > + interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi5: ssi-5 { > + interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi6: ssi-6 { > + interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi7: ssi-7 { > + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi8: ssi-8 { > + interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + ssi9: ssi-9 { > + interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; > + dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; > + dma-names = "rx", "tx", "rxu", "txu"; > + }; > + }; > + }; > + > + pciec0: pcie@fe000000 { > + /* placeholder */ > + }; > + > + pciec1: pcie@ee800000 { > + /* placeholder */ > + }; > + > + du: display@feb00000 { > + /* placeholder */ > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + du_out_rgb: endpoint { > + }; > + }; > + }; > + }; > }; > }; > diff --git a/arch/arm/dts/salvator-common.dtsi b/arch/arm/dts/salvator-common.dtsi > new file mode 100644 > index 0000000000..f903957da5 > --- /dev/null > +++ b/arch/arm/dts/salvator-common.dtsi > @@ -0,0 +1,629 @@ > +/* > + * Device Tree Source for common parts of Salvator-X board variants > + * > + * Copyright (C) 2015-2016 Renesas Electronics Corp. > + * > + * This file is licensed under the terms of the GNU General Public License > + * version 2. This program is licensed "as is" without any warranty of any > + * kind, whether express or implied. > + */ > + > +/* > + * SSI-AK4613 > + * > + * This command is required when Playback/Capture > + * > + * amixer set "DVC Out" 100% > + * amixer set "DVC In" 100% > + * > + * You can use Mute > + * > + * amixer set "DVC Out Mute" on > + * amixer set "DVC In Mute" on > + * > + * You can use Volume Ramp > + * > + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" > + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" > + * amixer set "DVC Out Ramp" on > + * aplay xxx.wav & > + * amixer set "DVC Out" 80% // Volume Down > + * amixer set "DVC Out" 100% // Volume Up > + */ > + > +#include <dt-bindings/gpio/gpio.h> > + > +/ { > + aliases { > + serial0 = &scif2; > + serial1 = &scif1; > + ethernet0 = &avb; > + }; > + > + chosen { > + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; > + stdout-path = "serial0:115200n8"; > + }; > + > + audio_clkout: audio-clkout { > + /* > + * This is same as <&rcar_sound 0> > + * but needed to avoid cs2000/rcar_sound probe dead-lock > + */ > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <11289600>; > + }; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pwms = <&pwm1 0 50000>; > + > + brightness-levels = <256 128 64 16 8 4 0>; > + default-brightness-level = <6>; > + > + enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; > + }; > + > + reg_1p8v: regulator0 { > + compatible = "regulator-fixed"; > + regulator-name = "fixed-1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + reg_3p3v: regulator1 { > + compatible = "regulator-fixed"; > + regulator-name = "fixed-3.3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + rsnd_ak4613: sound { > + compatible = "simple-audio-card"; > + > + simple-audio-card,format = "left_j"; > + simple-audio-card,bitclock-master = <&sndcpu>; > + simple-audio-card,frame-master = <&sndcpu>; > + > + sndcpu: simple-audio-card,cpu { > + sound-dai = <&rcar_sound>; > + }; > + > + sndcodec: simple-audio-card,codec { > + sound-dai = <&ak4613>; > + }; > + }; > + > + vbus0_usb2: regulator-vbus0-usb2 { > + compatible = "regulator-fixed"; > + > + regulator-name = "USB20_VBUS0"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + > + gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + vcc_sdhi0: regulator-vcc-sdhi0 { > + compatible = "regulator-fixed"; > + > + regulator-name = "SDHI0 Vcc"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + vccq_sdhi0: regulator-vccq-sdhi0 { > + compatible = "regulator-gpio"; > + > + regulator-name = "SDHI0 VccQ"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + > + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; > + gpios-states = <1>; > + states = <3300000 1 > + 1800000 0>; > + }; > + > + vcc_sdhi3: regulator-vcc-sdhi3 { > + compatible = "regulator-fixed"; > + > + regulator-name = "SDHI3 Vcc"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + vccq_sdhi3: regulator-vccq-sdhi3 { > + compatible = "regulator-gpio"; > + > + regulator-name = "SDHI3 VccQ"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + > + gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; > + gpios-states = <1>; > + states = <3300000 1 > + 1800000 0>; > + }; > + > + hdmi0-out { > + compatible = "hdmi-connector"; > + label = "HDMI0 OUT"; > + type = "a"; > + > + port { > + hdmi0_con: endpoint { > + }; > + }; > + }; > + > + hdmi1-out { > + compatible = "hdmi-connector"; > + label = "HDMI1 OUT"; > + type = "a"; > + > + port { > + hdmi1_con: endpoint { > + }; > + }; > + }; > + > + vga { > + compatible = "vga-connector"; > + > + port { > + vga_in: endpoint { > + remote-endpoint = <&adv7123_out>; > + }; > + }; > + }; > + > + vga-encoder { > + compatible = "adi,adv7123"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + adv7123_in: endpoint { > + remote-endpoint = <&du_out_rgb>; > + }; > + }; > + port@1 { > + reg = <1>; > + adv7123_out: endpoint { > + remote-endpoint = <&vga_in>; > + }; > + }; > + }; > + }; > + > + x12_clk: x12 { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <24576000>; > + }; > + > + /* External DU dot clocks */ > + x21_clk: x21-clock { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <33000000>; > + }; > + > + x22_clk: x22-clock { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <33000000>; > + }; > + > + x23_clk: x23-clock { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <25000000>; > + }; > +}; > + > +&audio_clk_a { > + clock-frequency = <22579200>; > +}; > + > +&avb { > + pinctrl-0 = <&avb_pins>; > + pinctrl-names = "default"; > + renesas,no-ether-link; > + phy-handle = <&phy0>; > + status = "okay"; > + > + phy0: ethernet-phy@0 { > + rxc-skew-ps = <1500>; > + reg = <0>; > + interrupt-parent = <&gpio2>; > + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +&du { > + pinctrl-0 = <&du_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + > + ports { > + port@0 { > + endpoint { > + remote-endpoint = <&adv7123_in>; > + }; > + }; > + port@3 { > + lvds_connector: endpoint { > + }; > + }; > + }; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&extalr_clk { > + clock-frequency = <32768>; > +}; > + > +&hsusb { > + status = "okay"; > +}; > + > +&i2c2 { > + pinctrl-0 = <&i2c2_pins>; > + pinctrl-names = "default"; > + > + status = "okay"; > + > + clock-frequency = <100000>; > + > + ak4613: codec@10 { > + compatible = "asahi-kasei,ak4613"; > + #sound-dai-cells = <0>; > + reg = <0x10>; > + clocks = <&rcar_sound 3>; > + > + asahi-kasei,in1-single-end; > + asahi-kasei,in2-single-end; > + asahi-kasei,out1-single-end; > + asahi-kasei,out2-single-end; > + asahi-kasei,out3-single-end; > + asahi-kasei,out4-single-end; > + asahi-kasei,out5-single-end; > + asahi-kasei,out6-single-end; > + }; > + > + cs2000: clk_multiplier@4f { > + #clock-cells = <0>; > + compatible = "cirrus,cs2000-cp"; > + reg = <0x4f>; > + clocks = <&audio_clkout>, <&x12_clk>; > + clock-names = "clk_in", "ref_clk"; > + > + assigned-clocks = <&cs2000>; > + assigned-clock-rates = <24576000>; /* 1/1 divide */ > + }; > +}; > + > +&i2c4 { > + status = "okay"; > + > + csa_vdd: adc@7c { > + compatible = "maxim,max9611"; > + reg = <0x7c>; > + > + shunt-resistor-micro-ohms = <5000>; > + }; > + > + csa_dvfs: adc@7f { > + compatible = "maxim,max9611"; > + reg = <0x7f>; > + > + shunt-resistor-micro-ohms = <5000>; > + }; > +}; > + > +&i2c_dvfs { > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&ohci1 { > + status = "okay"; > +}; > + > +&pcie_bus_clk { > + clock-frequency = <100000000>; > +}; > + > +&pciec0 { > + status = "okay"; > +}; > + > +&pciec1 { > + status = "okay"; > +}; > + > +&pfc { > + pinctrl-0 = <&scif_clk_pins>; > + pinctrl-names = "default"; > + > + avb_pins: avb { > + mux { > + groups = "avb_link", "avb_phy_int", "avb_mdc", > + "avb_mii"; > + function = "avb"; > + }; > + > + pins_mdc { > + groups = "avb_mdc"; > + drive-strength = <24>; > + }; > + > + pins_mii_tx { > + pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", > + "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; > + drive-strength = <12>; > + }; > + }; > + > + du_pins: du { > + groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; > + function = "du"; > + }; > + > + i2c2_pins: i2c2 { > + groups = "i2c2_a"; > + function = "i2c2"; > + }; > + > + pwm1_pins: pwm1 { > + groups = "pwm1_a"; > + function = "pwm1"; > + }; > + > + scif1_pins: scif1 { > + groups = "scif1_data_a", "scif1_ctrl"; > + function = "scif1"; > + }; > + > + scif2_pins: scif2 { > + groups = "scif2_data_a"; > + function = "scif2"; > + }; > + > + scif_clk_pins: scif_clk { > + groups = "scif_clk_a"; > + function = "scif_clk"; > + }; > + > + 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>; > + }; > + > + sdhi2_pins: sd2 { > + groups = "sdhi2_data8", "sdhi2_ctrl"; > + function = "sdhi2"; > + power-source = <3300>; > + }; > + > + sdhi2_pins_uhs: sd2_uhs { > + groups = "sdhi2_data8", "sdhi2_ctrl"; > + function = "sdhi2"; > + power-source = <1800>; > + }; > + > + sdhi3_pins: sd3 { > + groups = "sdhi3_data4", "sdhi3_ctrl"; > + function = "sdhi3"; > + power-source = <3300>; > + }; > + > + sdhi3_pins_uhs: sd3_uhs { > + groups = "sdhi3_data4", "sdhi3_ctrl"; > + function = "sdhi3"; > + 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", "audio_clk_b_a", "audio_clk_c_a", > + "audio_clkout_a", "audio_clkout3_a"; > + function = "audio_clk"; > + }; > + > + usb0_pins: usb0 { > + groups = "usb0"; > + function = "usb0"; > + }; > + > + usb1_pins: usb1 { > + mux { > + groups = "usb1"; > + function = "usb1"; > + }; > + > + ovc { > + pins = "GP_6_27"; > + bias-pull-up; > + }; > + > + pwen { > + pins = "GP_6_26"; > + bias-pull-down; > + }; > + }; > +}; > + > +&pwm1 { > + pinctrl-0 = <&pwm1_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 = <12288000 11289600>; > + > + status = "okay"; > + > + /* update <audio_clk_b> to <cs2000> */ > + 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>, <&cs2000>, > + <&audio_clk_c>, > + <&cpg CPG_CORE CPG_AUDIO_CLK_I>; > + > + rcar_sound,dai { > + dai0 { > + playback = <&ssi0 &src0 &dvc0>; > + capture = <&ssi1 &src1 &dvc1>; > + }; > + }; > +}; > + > +&scif1 { > + pinctrl-0 = <&scif1_pins>; > + pinctrl-names = "default"; > + > + uart-has-rtscts; > + status = "okay"; > +}; > + > +&scif2 { > + pinctrl-0 = <&scif2_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 = <&vcc_sdhi0>; > + vqmmc-supply = <&vccq_sdhi0>; > + cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; > + wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; > + bus-width = <4>; > + sd-uhs-sdr50; > + status = "okay"; > +}; > + > +&sdhi2 { > + /* used for on-board 8bit eMMC */ > + pinctrl-0 = <&sdhi2_pins>; > + pinctrl-1 = <&sdhi2_pins_uhs>; > + pinctrl-names = "default", "state_uhs"; > + > + vmmc-supply = <®_3p3v>; > + vqmmc-supply = <®_1p8v>; > + bus-width = <8>; > + mmc-hs200-1_8v; > + non-removable; > + status = "okay"; > +}; > + > +&sdhi3 { > + pinctrl-0 = <&sdhi3_pins>; > + pinctrl-1 = <&sdhi3_pins_uhs>; > + pinctrl-names = "default", "state_uhs"; > + > + vmmc-supply = <&vcc_sdhi3>; > + vqmmc-supply = <&vccq_sdhi3>; > + cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; > + wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; > + bus-width = <4>; > + sd-uhs-sdr50; > + status = "okay"; > +}; > + > +&ssi1 { > + shared-pin; > +}; > + > +&usb2_phy0 { > + pinctrl-0 = <&usb0_pins>; > + pinctrl-names = "default"; > + > + vbus-supply = <&vbus0_usb2>; > + status = "okay"; > +}; > + > +&usb2_phy1 { > + pinctrl-0 = <&usb1_pins>; > + pinctrl-names = "default"; > + > + status = "okay"; > +}; > + > +&wdt0 { > + timeout-sec = <60>; > + status = "okay"; > +}; > + > +&xhci0 { > + status = "okay"; > +}; > diff --git a/arch/arm/dts/salvator-x.dtsi b/arch/arm/dts/salvator-x.dtsi > new file mode 100644 > index 0000000000..468868c8ed > --- /dev/null > +++ b/arch/arm/dts/salvator-x.dtsi > @@ -0,0 +1,30 @@ > +/* > + * Device Tree Source for the Salvator-X board > + * > + * Copyright (C) 2015-2016 Renesas Electronics Corp. > + * > + * This file is licensed under the terms of the GNU General Public License > + * version 2. This program is licensed "as is" without any warranty of any > + * kind, whether express or implied. > + */ > + > +#include "salvator-common.dtsi" > + > +/ { > + model = "Renesas Salvator-X board"; > + compatible = "renesas,salvator-x"; > +}; > + > +&extal_clk { > + clock-frequency = <16666666>; > +}; > + > +&i2c4 { > + versaclock5: clock-generator@6a { > + compatible = "idt,5p49v5923"; > + reg = <0x6a>; > + #clock-cells = <1>; > + clocks = <&x23_clk>; > + clock-names = "xin"; > + }; > +}; > diff --git a/arch/arm/dts/ulcb.dtsi b/arch/arm/dts/ulcb.dtsi > new file mode 100644 > index 0000000000..d1a3f3b7a0 > --- /dev/null > +++ b/arch/arm/dts/ulcb.dtsi > @@ -0,0 +1,367 @@ > +/* > + * Device Tree Source for the R-Car Gen3 ULCB board > + * > + * Copyright (C) 2016 Renesas Electronics Corp. > + * Copyright (C) 2016 Cogent Embedded, Inc. > + * > + * This file is licensed under the terms of the GNU General Public License > + * version 2. This program is licensed "as is" without any warranty of any > + * kind, whether express or implied. > + */ > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +/ { > + model = "Renesas R-Car Gen3 ULCB board"; > + > + aliases { > + serial0 = &scif2; > + ethernet0 = &avb; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + audio_clkout: audio-clkout { > + /* > + * This is same as <&rcar_sound 0> > + * but needed to avoid cs2000/rcar_sound probe dead-lock > + */ > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <11289600>; > + }; > + > + keyboard { > + compatible = "gpio-keys"; > + > + key-1 { > + linux,code = <KEY_1>; > + label = "SW3"; > + wakeup-source; > + debounce-interval = <20>; > + gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led5 { > + gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; > + }; > + led6 { > + gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; > + }; > + }; > + > + reg_1p8v: regulator0 { > + compatible = "regulator-fixed"; > + regulator-name = "fixed-1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + reg_3p3v: regulator1 { > + compatible = "regulator-fixed"; > + regulator-name = "fixed-3.3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + rsnd_ak4613: sound { > + compatible = "simple-audio-card"; > + > + simple-audio-card,format = "left_j"; > + simple-audio-card,bitclock-master = <&sndcpu>; > + simple-audio-card,frame-master = <&sndcpu>; > + > + sndcpu: simple-audio-card,cpu { > + sound-dai = <&rcar_sound>; > + }; > + > + sndcodec: simple-audio-card,codec { > + sound-dai = <&ak4613>; > + }; > + }; > + > + vcc_sdhi0: regulator-vcc-sdhi0 { > + compatible = "regulator-fixed"; > + > + regulator-name = "SDHI0 Vcc"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + vccq_sdhi0: regulator-vccq-sdhi0 { > + compatible = "regulator-gpio"; > + > + regulator-name = "SDHI0 VccQ"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + > + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; > + gpios-states = <1>; > + states = <3300000 1 > + 1800000 0>; > + }; > + > + x12_clk: x12 { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <24576000>; > + }; > +}; > + > +&audio_clk_a { > + clock-frequency = <22579200>; > +}; > + > +&avb { > + pinctrl-0 = <&avb_pins>; > + pinctrl-names = "default"; > + renesas,no-ether-link; > + phy-handle = <&phy0>; > + status = "okay"; > + > + phy0: ethernet-phy@0 { > + rxc-skew-ps = <1500>; > + reg = <0>; > + interrupt-parent = <&gpio2>; > + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&extal_clk { > + clock-frequency = <16666666>; > +}; > + > +&extalr_clk { > + clock-frequency = <32768>; > +}; > + > +&i2c2 { > + pinctrl-0 = <&i2c2_pins>; > + pinctrl-names = "default"; > + > + status = "okay"; > + > + clock-frequency = <100000>; > + > + ak4613: codec@10 { > + compatible = "asahi-kasei,ak4613"; > + #sound-dai-cells = <0>; > + reg = <0x10>; > + clocks = <&rcar_sound 3>; > + > + asahi-kasei,in1-single-end; > + asahi-kasei,in2-single-end; > + asahi-kasei,out1-single-end; > + asahi-kasei,out2-single-end; > + asahi-kasei,out3-single-end; > + asahi-kasei,out4-single-end; > + asahi-kasei,out5-single-end; > + asahi-kasei,out6-single-end; > + }; > + > + cs2000: clk-multiplier@4f { > + #clock-cells = <0>; > + compatible = "cirrus,cs2000-cp"; > + reg = <0x4f>; > + clocks = <&audio_clkout>, <&x12_clk>; > + clock-names = "clk_in", "ref_clk"; > + > + assigned-clocks = <&cs2000>; > + assigned-clock-rates = <24576000>; /* 1/1 divide */ > + }; > +}; > + > +&ohci1 { > + status = "okay"; > +}; > + > +&pfc { > + pinctrl-0 = <&scif_clk_pins>; > + pinctrl-names = "default"; > + > + avb_pins: avb { > + mux { > + groups = "avb_link", "avb_phy_int", "avb_mdc", > + "avb_mii"; > + function = "avb"; > + }; > + > + pins_mdc { > + groups = "avb_mdc"; > + drive-strength = <24>; > + }; > + > + pins_mii_tx { > + pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", > + "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; > + drive-strength = <12>; > + }; > + }; > + > + i2c2_pins: i2c2 { > + groups = "i2c2_a"; > + function = "i2c2"; > + }; > + > + scif2_pins: scif2 { > + groups = "scif2_data_a"; > + function = "scif2"; > + }; > + > + scif_clk_pins: scif_clk { > + groups = "scif_clk_a"; > + function = "scif_clk"; > + }; > + > + 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>; > + }; > + > + sdhi2_pins: sd2 { > + groups = "sdhi2_data8", "sdhi2_ctrl"; > + function = "sdhi2"; > + power-source = <3300>; > + }; > + > + sdhi2_pins_uhs: sd2_uhs { > + groups = "sdhi2_data8", "sdhi2_ctrl"; > + function = "sdhi2"; > + 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", "audio_clk_b_a", "audio_clk_c_a", > + "audio_clkout_a", "audio_clkout3_a"; > + function = "audio_clk"; > + }; > + > + usb1_pins: usb1 { > + groups = "usb1"; > + function = "usb1"; > + }; > +}; > + > +&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 = <12288000 11289600>; > + > + status = "okay"; > + > + /* update <audio_clk_b> to <cs2000> */ > + 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>, <&cs2000>, > + <&audio_clk_c>, > + <&cpg CPG_CORE CPG_AUDIO_CLK_I>; > + > + rcar_sound,dai { > + dai0 { > + playback = <&ssi0 &src0 &dvc0>; > + capture = <&ssi1 &src1 &dvc1>; > + }; > + }; > +}; > + > +&scif2 { > + pinctrl-0 = <&scif2_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 = <&vcc_sdhi0>; > + vqmmc-supply = <&vccq_sdhi0>; > + cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; > + bus-width = <4>; > + sd-uhs-sdr50; > + status = "okay"; > +}; > + > +&sdhi2 { > + /* used for on-board 8bit eMMC */ > + pinctrl-0 = <&sdhi2_pins>; > + pinctrl-1 = <&sdhi2_pins_uhs>; > + pinctrl-names = "default", "state_uhs"; > + > + vmmc-supply = <®_3p3v>; > + vqmmc-supply = <®_1p8v>; > + bus-width = <8>; > + mmc-hs200-1_8v; > + non-removable; > + status = "okay"; > +}; > + > +&ssi1 { > + shared-pin; > +}; > + > +&usb2_phy1 { > + pinctrl-0 = <&usb1_pins>; > + pinctrl-names = "default"; > + > + status = "okay"; > +}; > + > +&wdt0 { > + timeout-sec = <60>; > + status = "okay"; > +}; > -- > 2.11.0 >
diff --git a/arch/arm/dts/r8a7795-h3ulcb.dts b/arch/arm/dts/r8a7795-h3ulcb.dts index ab352159de..0426f41765 100644 --- a/arch/arm/dts/r8a7795-h3ulcb.dts +++ b/arch/arm/dts/r8a7795-h3ulcb.dts @@ -9,24 +9,16 @@ * kind, whether express or implied. */ +#define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 + /dts-v1/; #include "r8a7795.dtsi" -#include <dt-bindings/gpio/gpio.h> -#include <dt-bindings/input/input.h> +#include "ulcb.dtsi" / { - model = "Renesas H3ULCB board based on r8a7795"; + model = "Renesas H3ULCB board based on r8a7795 ES2.0+"; compatible = "renesas,h3ulcb", "renesas,r8a7795"; - aliases { - serial0 = &scif2; - ethernet0 = &avb; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ @@ -47,330 +39,4 @@ device_type = "memory"; reg = <0x7 0x00000000 0x0 0x40000000>; }; - - leds { - compatible = "gpio-leds"; - - led5 { - gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; - }; - led6 { - gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; - }; - }; - - keyboard { - compatible = "gpio-keys"; - - key-1 { - linux,code = <KEY_1>; - label = "SW3"; - wakeup-source; - debounce-interval = <20>; - gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; - }; - }; - - x12_clk: x12 { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <24576000>; - }; - - reg_1p8v: regulator0 { - compatible = "regulator-fixed"; - regulator-name = "fixed-1.8V"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - reg_3p3v: regulator1 { - compatible = "regulator-fixed"; - regulator-name = "fixed-3.3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - regulator-always-on; - }; - - vcc_sdhi0: regulator-vcc-sdhi0 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI0 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - - vccq_sdhi0: regulator-vccq-sdhi0 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI0 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; - }; - - audio_clkout: audio-clkout { - /* - * This is same as <&rcar_sound 0> - * but needed to avoid cs2000/rcar_sound probe dead-lock - */ - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <11289600>; - }; - - rsnd_ak4613: sound { - compatible = "simple-audio-card"; - - simple-audio-card,format = "left_j"; - simple-audio-card,bitclock-master = <&sndcpu>; - simple-audio-card,frame-master = <&sndcpu>; - - sndcpu: simple-audio-card,cpu { - sound-dai = <&rcar_sound>; - }; - - sndcodec: simple-audio-card,codec { - sound-dai = <&ak4613>; - }; - }; -}; - -&extal_clk { - clock-frequency = <16666666>; -}; - -&extalr_clk { - clock-frequency = <32768>; -}; - -&pfc { - pinctrl-0 = <&scif_clk_pins>; - pinctrl-names = "default"; - - scif2_pins: scif2 { - groups = "scif2_data_a"; - function = "scif2"; - }; - - scif_clk_pins: scif_clk { - groups = "scif_clk_a"; - function = "scif_clk"; - }; - - i2c2_pins: i2c2 { - groups = "i2c2_a"; - function = "i2c2"; - }; - - avb_pins: avb { - groups = "avb_mdc"; - function = "avb"; - }; - - 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>; - }; - - sdhi2_pins: sd2 { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <3300>; - }; - - sdhi2_pins_uhs: sd2_uhs { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - 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", "audio_clk_b_a", "audio_clk_c_a", - "audio_clkout_a", "audio_clkout3_a"; - function = "audio_clk"; - }; - - usb1_pins: usb1 { - groups = "usb1"; - function = "usb1"; - }; -}; - -&scif2 { - pinctrl-0 = <&scif2_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - -&scif_clk { - clock-frequency = <14745600>; -}; - -&i2c2 { - pinctrl-0 = <&i2c2_pins>; - pinctrl-names = "default"; - - status = "okay"; - - clock-frequency = <100000>; - - ak4613: codec@10 { - compatible = "asahi-kasei,ak4613"; - #sound-dai-cells = <0>; - reg = <0x10>; - clocks = <&rcar_sound 3>; - - asahi-kasei,in1-single-end; - asahi-kasei,in2-single-end; - asahi-kasei,out1-single-end; - asahi-kasei,out2-single-end; - asahi-kasei,out3-single-end; - asahi-kasei,out4-single-end; - asahi-kasei,out5-single-end; - asahi-kasei,out6-single-end; - }; - - cs2000: clk-multiplier@4f { - #clock-cells = <0>; - compatible = "cirrus,cs2000-cp"; - reg = <0x4f>; - clocks = <&audio_clkout>, <&x12_clk>; - clock-names = "clk_in", "ref_clk"; - - assigned-clocks = <&cs2000>; - assigned-clock-rates = <24576000>; /* 1/1 divide */ - }; -}; - -&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"; - - /* update <audio_clk_b> to <cs2000> */ - 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>, <&cs2000>, - <&audio_clk_c>, - <&cpg CPG_CORE R8A7795_CLK_S0D4>; - - rcar_sound,dai { - dai0 { - playback = <&ssi0 &src0 &dvc0>; - capture = <&ssi1 &src1 &dvc1>; - }; - }; -}; - -&sdhi0 { - pinctrl-0 = <&sdhi0_pins>; - pinctrl-1 = <&sdhi0_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <&vcc_sdhi0>; - vqmmc-supply = <&vccq_sdhi0>; - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; - bus-width = <4>; - sd-uhs-sdr50; - status = "okay"; -}; - -&sdhi2 { - /* used for on-board 8bit eMMC */ - pinctrl-0 = <&sdhi2_pins>; - pinctrl-1 = <&sdhi2_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <®_3p3v>; - vqmmc-supply = <®_1p8v>; - bus-width = <8>; - non-removable; - status = "okay"; -}; - -&ssi1 { - shared-pin; -}; - -&wdt0 { - timeout-sec = <60>; - status = "okay"; -}; - -&audio_clk_a { - clock-frequency = <22579200>; -}; - -&avb { - pinctrl-0 = <&avb_pins>; - pinctrl-names = "default"; - renesas,no-ether-link; - phy-handle = <&phy0>; - status = "okay"; - - phy0: ethernet-phy@0 { - rxc-skew-ps = <1500>; - reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; - }; -}; - -&usb2_phy1 { - pinctrl-0 = <&usb1_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - -&ehci1 { - status = "okay"; -}; - -&ohci1 { - status = "okay"; }; diff --git a/arch/arm/dts/r8a7795-salvator-x.dts b/arch/arm/dts/r8a7795-salvator-x.dts index 639aa085d9..684fb3b9d1 100644 --- a/arch/arm/dts/r8a7795-salvator-x.dts +++ b/arch/arm/dts/r8a7795-salvator-x.dts @@ -8,577 +8,108 @@ * kind, whether express or implied. */ -/* - * SSI-AK4613 - * - * This command is required when Playback/Capture - * - * amixer set "DVC Out" 100% - * amixer set "DVC In" 100% - * - * You can use Mute - * - * amixer set "DVC Out Mute" on - * amixer set "DVC In Mute" on - * - * You can use Volume Ramp - * - * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" - * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" - * amixer set "DVC Out Ramp" on - * aplay xxx.wav & - * amixer set "DVC Out" 80% // Volume Down - * amixer set "DVC Out" 100% // Volume Up - */ +#define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 /dts-v1/; #include "r8a7795.dtsi" -#include <dt-bindings/gpio/gpio.h> +#include "salvator-x.dtsi" / { - model = "Renesas Salvator-X board based on r8a7795"; + model = "Renesas Salvator-X board based on r8a7795 ES2.0+"; compatible = "renesas,salvator-x", "renesas,r8a7795"; - aliases { - serial0 = &scif2; - serial1 = &scif1; - ethernet0 = &avb; - }; - - chosen { - bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; - stdout-path = "serial0:115200n8"; - }; - memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ reg = <0x0 0x48000000 0x0 0x38000000>; }; - x12_clk: x12 { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <24576000>; - }; - - reg_1p8v: regulator0 { - compatible = "regulator-fixed"; - regulator-name = "fixed-1.8V"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - reg_3p3v: regulator1 { - compatible = "regulator-fixed"; - regulator-name = "fixed-3.3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - regulator-always-on; - }; - - vcc_sdhi0: regulator-vcc-sdhi0 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI0 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - - vccq_sdhi0: regulator-vccq-sdhi0 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI0 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; - }; - - vcc_sdhi3: regulator-vcc-sdhi3 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI3 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - - vccq_sdhi3: regulator-vccq-sdhi3 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI3 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; + memory@500000000 { + device_type = "memory"; + reg = <0x5 0x00000000 0x0 0x40000000>; }; - vbus0_usb2: regulator-vbus0-usb2 { - compatible = "regulator-fixed"; - - regulator-name = "USB20_VBUS0"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - - gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; - enable-active-high; + memory@600000000 { + device_type = "memory"; + reg = <0x6 0x00000000 0x0 0x40000000>; }; - audio_clkout: audio_clkout { - /* - * This is same as <&rcar_sound 0> - * but needed to avoid cs2000/rcar_sound probe dead-lock - */ - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <11289600>; + memory@700000000 { + device_type = "memory"; + reg = <0x7 0x00000000 0x0 0x40000000>; }; +}; - rsnd_ak4613: sound { - compatible = "simple-audio-card"; - - simple-audio-card,format = "left_j"; - simple-audio-card,bitclock-master = <&sndcpu>; - simple-audio-card,frame-master = <&sndcpu>; - - sndcpu: simple-audio-card,cpu { - sound-dai = <&rcar_sound>; - }; - - sndcodec: simple-audio-card,codec { - sound-dai = <&ak4613>; - }; - }; +&du { + clocks = <&cpg CPG_MOD 724>, + <&cpg CPG_MOD 723>, + <&cpg CPG_MOD 722>, + <&cpg CPG_MOD 721>, + <&cpg CPG_MOD 727>, + <&versaclock5 1>, + <&x21_clk>, + <&x22_clk>, + <&versaclock5 2>; + clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", + "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; +}; - vga-encoder { - compatible = "adi,adv7123"; +&ehci2 { + status = "okay"; +}; - ports { - #address-cells = <1>; - #size-cells = <0>; +&hdmi0 { + status = "okay"; - port@0 { - reg = <0>; - adv7123_in: endpoint { - remote-endpoint = <&du_out_rgb>; - }; - }; - port@1 { - reg = <1>; - adv7123_out: endpoint { - remote-endpoint = <&vga_in>; - }; + ports { + port@1 { + reg = <1>; + rcar_dw_hdmi0_out: endpoint { + remote-endpoint = <&hdmi0_con>; }; }; }; +}; - vga { - compatible = "vga-connector"; - - port { - vga_in: endpoint { - remote-endpoint = <&adv7123_out>; - }; - }; - }; +&hdmi0_con { + remote-endpoint = <&rcar_dw_hdmi0_out>; }; -&du { - pinctrl-0 = <&du_pins>; - pinctrl-names = "default"; +&hdmi1 { status = "okay"; ports { - port@0 { - endpoint { - remote-endpoint = <&adv7123_in>; - }; - }; - port@3 { - lvds_connector: endpoint { + port@1 { + reg = <1>; + rcar_dw_hdmi1_out: endpoint { + remote-endpoint = <&hdmi1_con>; }; }; }; }; -&extal_clk { - clock-frequency = <16666666>; +&hdmi1_con { + remote-endpoint = <&rcar_dw_hdmi1_out>; }; -&extalr_clk { - clock-frequency = <32768>; +&ohci2 { + status = "okay"; }; &pfc { - pinctrl-0 = <&scif_clk_pins>; - pinctrl-names = "default"; - - scif1_pins: scif1 { - groups = "scif1_data_a", "scif1_ctrl"; - function = "scif1"; - }; - scif2_pins: scif2 { - groups = "scif2_data_a"; - function = "scif2"; - }; - scif_clk_pins: scif_clk { - groups = "scif_clk_a"; - function = "scif_clk"; - }; - - i2c2_pins: i2c2 { - groups = "i2c2_a"; - function = "i2c2"; - }; - - avb_pins: avb { - mux { - groups = "avb_link", "avb_phy_int", "avb_mdc", - "avb_mii"; - function = "avb"; - }; - - pins_mdc { - groups = "avb_mdc"; - drive-strength = <24>; - }; - - pins_mii_tx { - pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", - "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; - drive-strength = <12>; - }; - }; - - du_pins: du { - groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; - function = "du"; - }; - - 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>; - }; - - sdhi2_pins: sd2 { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <3300>; - }; - - sdhi2_pins_uhs: sd2_uhs { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <1800>; - }; - - sdhi3_pins: sd3 { - groups = "sdhi3_data4", "sdhi3_ctrl"; - function = "sdhi3"; - power-source = <3300>; - }; - - sdhi3_pins_uhs: sd3_uhs { - groups = "sdhi3_data4", "sdhi3_ctrl"; - function = "sdhi3"; - 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", "audio_clk_b_a", "audio_clk_c_a", - "audio_clkout_a", "audio_clkout3_a"; - function = "audio_clk"; - }; - - usb0_pins: usb0 { - groups = "usb0"; - function = "usb0"; - }; - - usb1_pins: usb1 { - mux { - groups = "usb1"; - function = "usb1"; - }; - - ovc { - pins = "GP_6_27"; - bias-pull-up; - }; - - pwen { - pins = "GP_6_26"; - bias-pull-down; - }; - }; - usb2_pins: usb2 { groups = "usb2"; function = "usb2"; }; }; -&scif1 { - pinctrl-0 = <&scif1_pins>; - pinctrl-names = "default"; - - uart-has-rtscts; - status = "okay"; -}; - -&scif2 { - pinctrl-0 = <&scif2_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - -&scif_clk { - clock-frequency = <14745600>; -}; - -&i2c2 { - pinctrl-0 = <&i2c2_pins>; - pinctrl-names = "default"; - - status = "okay"; - - clock-frequency = <100000>; - - ak4613: codec@10 { - compatible = "asahi-kasei,ak4613"; - #sound-dai-cells = <0>; - reg = <0x10>; - clocks = <&rcar_sound 3>; - - asahi-kasei,in1-single-end; - asahi-kasei,in2-single-end; - asahi-kasei,out1-single-end; - asahi-kasei,out2-single-end; - asahi-kasei,out3-single-end; - asahi-kasei,out4-single-end; - asahi-kasei,out5-single-end; - asahi-kasei,out6-single-end; - }; - - cs2000: clk_multiplier@4f { - #clock-cells = <0>; - compatible = "cirrus,cs2000-cp"; - reg = <0x4f>; - clocks = <&audio_clkout>, <&x12_clk>; - clock-names = "clk_in", "ref_clk"; - - assigned-clocks = <&cs2000>; - assigned-clock-rates = <24576000>; /* 1/1 divide */ - }; -}; - -&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"; - - /* update <audio_clk_b> to <cs2000> */ - 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>, <&cs2000>, - <&audio_clk_c>, - <&cpg CPG_CORE R8A7795_CLK_S0D4>; - - rcar_sound,dai { - dai0 { - playback = <&ssi0 &src0 &dvc0>; - capture = <&ssi1 &src1 &dvc1>; - }; - }; -}; - &sata { status = "okay"; }; -&sdhi0 { - pinctrl-0 = <&sdhi0_pins>; - pinctrl-1 = <&sdhi0_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <&vcc_sdhi0>; - vqmmc-supply = <&vccq_sdhi0>; - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; - wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; - bus-width = <4>; - sd-uhs-sdr50; - status = "okay"; -}; - -&sdhi2 { - /* used for on-board 8bit eMMC */ - pinctrl-0 = <&sdhi2_pins>; - pinctrl-1 = <&sdhi2_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <®_3p3v>; - vqmmc-supply = <®_1p8v>; - bus-width = <8>; - non-removable; - status = "okay"; -}; - -&sdhi3 { - pinctrl-0 = <&sdhi3_pins>; - pinctrl-1 = <&sdhi3_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <&vcc_sdhi3>; - vqmmc-supply = <&vccq_sdhi3>; - cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; - wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; - bus-width = <4>; - sd-uhs-sdr50; - status = "okay"; -}; - -&ssi1 { - shared-pin; -}; - -&wdt0 { - timeout-sec = <60>; - status = "okay"; -}; - -&audio_clk_a { - clock-frequency = <22579200>; -}; - -&i2c_dvfs { - status = "okay"; -}; - -&avb { - pinctrl-0 = <&avb_pins>; - pinctrl-names = "default"; - renesas,no-ether-link; - phy-handle = <&phy0>; - status = "okay"; - - phy0: ethernet-phy@0 { - rxc-skew-ps = <1500>; - reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; - }; -}; - -&xhci0 { - status = "okay"; -}; - -&usb2_phy0 { - pinctrl-0 = <&usb0_pins>; - pinctrl-names = "default"; - - vbus-supply = <&vbus0_usb2>; - status = "okay"; -}; - -&usb2_phy1 { - pinctrl-0 = <&usb1_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - &usb2_phy2 { pinctrl-0 = <&usb2_pins>; pinctrl-names = "default"; status = "okay"; }; - -&ehci0 { - status = "okay"; -}; - -&ehci1 { - status = "okay"; -}; - -&ehci2 { - status = "okay"; -}; - -&ohci0 { - status = "okay"; -}; - -&ohci1 { - status = "okay"; -}; - -&ohci2 { - status = "okay"; -}; - -&hsusb { - status = "okay"; -}; - -&pcie_bus_clk { - clock-frequency = <100000000>; -}; - -&pciec0 { - status = "okay"; -}; - -&pciec1 { - status = "okay"; -}; diff --git a/arch/arm/dts/r8a7795.dtsi b/arch/arm/dts/r8a7795.dtsi index 110d0681c8..615b652131 100644 --- a/arch/arm/dts/r8a7795.dtsi +++ b/arch/arm/dts/r8a7795.dtsi @@ -184,7 +184,7 @@ clock-frequency = <0>; }; - soc { + soc: soc { compatible = "simple-bus"; interrupt-parent = <&gic>; @@ -402,7 +402,7 @@ #power-domain-cells = <1>; }; - pfc: pfc@e6060000 { + pfc: pin-controller@e6060000 { compatible = "renesas,pfc-r8a7795"; reg = <0 0xe6060000 0 0x50c>; }; @@ -887,6 +887,8 @@ clocks = <&cpg CPG_MOD 926>; power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; resets = <&cpg 926>; + dmas = <&dmac0 0x11>, <&dmac0 0x10>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -1122,6 +1124,16 @@ "dvc.0", "dvc.1", "clk_a", "clk_b", "clk_c", "clk_i"; power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 1005>, + <&cpg 1006>, <&cpg 1007>, + <&cpg 1008>, <&cpg 1009>, + <&cpg 1010>, <&cpg 1011>, + <&cpg 1012>, <&cpg 1013>, + <&cpg 1014>, <&cpg 1015>; + reset-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", + "ssi.5", "ssi.4", "ssi.3", "ssi.2", + "ssi.1", "ssi.0"; status = "disabled"; rcar_sound,dvc { @@ -1278,16 +1290,6 @@ status = "disabled"; }; - xhci1: usb@ee0400000 { - compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci"; - reg = <0 0xee040000 0 0xc00>; - interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cpg CPG_MOD 327>; - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; - resets = <&cpg 327>; - status = "disabled"; - }; - usb_dmac0: dma-controller@e65a0000 { compatible = "renesas,r8a7795-usb-dmac", "renesas,usb-dmac"; @@ -1572,14 +1574,6 @@ resets = <&cpg 614>; }; - fcpf2: fcp@fe952000 { - compatible = "renesas,fcpf"; - reg = <0 0xfe952000 0 0x200>; - clocks = <&cpg CPG_MOD 613>; - power-domains = <&sysc R8A7795_PD_A3VP>; - resets = <&cpg 613>; - }; - vspbd: vsp@fe960000 { compatible = "renesas,vsp2"; reg = <0 0xfe960000 0 0x8000>; @@ -1637,25 +1631,6 @@ resets = <&cpg 610>; }; - vspi2: vsp@fe9c0000 { - compatible = "renesas,vsp2"; - reg = <0 0xfe9c0000 0 0x8000>; - interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cpg CPG_MOD 629>; - power-domains = <&sysc R8A7795_PD_A3VP>; - resets = <&cpg 629>; - - renesas,fcp = <&fcpvi2>; - }; - - fcpvi2: fcp@fe9cf000 { - compatible = "renesas,fcpv"; - reg = <0 0xfe9cf000 0 0x200>; - clocks = <&cpg CPG_MOD 609>; - power-domains = <&sysc R8A7795_PD_A3VP>; - resets = <&cpg 609>; - }; - vspd0: vsp@fea20000 { compatible = "renesas,vsp2"; reg = <0 0xfea20000 0 0x4000>; @@ -1713,25 +1688,6 @@ resets = <&cpg 601>; }; - vspd3: vsp@fea38000 { - compatible = "renesas,vsp2"; - reg = <0 0xfea38000 0 0x4000>; - interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cpg CPG_MOD 620>; - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; - resets = <&cpg 620>; - - renesas,fcp = <&fcpvd3>; - }; - - fcpvd3: fcp@fea3f000 { - compatible = "renesas,fcpv"; - reg = <0 0xfea3f000 0 0x200>; - clocks = <&cpg CPG_MOD 600>; - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; - resets = <&cpg 600>; - }; - fdp1@fe940000 { compatible = "renesas,fdp1"; reg = <0 0xfe940000 0 0x2400>; @@ -1752,18 +1708,57 @@ renesas,fcp = <&fcpf1>; }; - fdp1@fe948000 { - compatible = "renesas,fdp1"; - reg = <0 0xfe948000 0 0x2400>; - interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cpg CPG_MOD 117>; - power-domains = <&sysc R8A7795_PD_A3VP>; - resets = <&cpg 117>; - renesas,fcp = <&fcpf2>; + hdmi0: hdmi0@fead0000 { + compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; + reg = <0 0xfead0000 0 0x10000>; + interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 729>, <&cpg CPG_CORE R8A7795_CLK_HDMI>; + clock-names = "iahb", "isfr"; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 729>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + dw_hdmi0_in: endpoint { + remote-endpoint = <&du_out_hdmi0>; + }; + }; + port@1 { + reg = <1>; + }; + }; + }; + + hdmi1: hdmi1@feae0000 { + compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; + reg = <0 0xfeae0000 0 0x10000>; + interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 728>, <&cpg CPG_CORE R8A7795_CLK_HDMI>; + clock-names = "iahb", "isfr"; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 728>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + dw_hdmi1_in: endpoint { + remote-endpoint = <&du_out_hdmi1>; + }; + }; + port@1 { + reg = <1>; + }; + }; }; du: display@feb00000 { - compatible = "renesas,du-r8a7795"; reg = <0 0xfeb00000 0 0x80000>, <0 0xfeb90000 0 0x14>; reg-names = "du", "lvds.0"; @@ -1779,8 +1774,6 @@ clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0"; status = "disabled"; - vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; - ports { #address-cells = <1>; #size-cells = <0>; @@ -1793,11 +1786,13 @@ port@1 { reg = <1>; du_out_hdmi0: endpoint { + remote-endpoint = <&dw_hdmi0_in>; }; }; port@2 { reg = <2>; du_out_hdmi1: endpoint { + remote-endpoint = <&dw_hdmi1_in>; }; }; port@3 { diff --git a/arch/arm/dts/r8a7796-m3ulcb.dts b/arch/arm/dts/r8a7796-m3ulcb.dts index 372b2a9447..38b58b7fca 100644 --- a/arch/arm/dts/r8a7796-m3ulcb.dts +++ b/arch/arm/dts/r8a7796-m3ulcb.dts @@ -9,180 +9,24 @@ * kind, whether express or implied. */ +#define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 + /dts-v1/; #include "r8a7796.dtsi" -#include <dt-bindings/gpio/gpio.h> -#include <dt-bindings/input/input.h> +#include "ulcb.dtsi" / { model = "Renesas M3ULCB board based on r8a7796"; compatible = "renesas,m3ulcb", "renesas,r8a7796"; - aliases { - serial0 = &scif2; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ reg = <0x0 0x48000000 0x0 0x38000000>; }; - leds { - compatible = "gpio-leds"; - - led5 { - gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; - }; - led6 { - gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; - }; - }; - - keyboard { - compatible = "gpio-keys"; - - key-1 { - linux,code = <KEY_1>; - label = "SW3"; - wakeup-source; - debounce-interval = <20>; - gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; - }; - }; - - reg_1p8v: regulator0 { - compatible = "regulator-fixed"; - regulator-name = "fixed-1.8V"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - reg_3p3v: regulator1 { - compatible = "regulator-fixed"; - regulator-name = "fixed-3.3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - regulator-always-on; - }; - - vcc_sdhi0: regulator-vcc-sdhi0 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI0 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - - vccq_sdhi0: regulator-vccq-sdhi0 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI0 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; - }; -}; - -&extal_clk { - clock-frequency = <16666666>; -}; - -&extalr_clk { - clock-frequency = <32768>; -}; - -&pfc { - pinctrl-0 = <&scif_clk_pins>; - pinctrl-names = "default"; - - scif2_pins: scif2 { - groups = "scif2_data_a"; - function = "scif2"; - }; - - scif_clk_pins: scif_clk { - groups = "scif_clk_a"; - function = "scif_clk"; - }; - - 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>; - }; - - sdhi2_pins: sd2 { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <3300>; - }; - - sdhi2_pins_uhs: sd2_uhs { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <1800>; + memory@600000000 { + device_type = "memory"; + reg = <0x6 0x00000000 0x0 0x40000000>; }; }; - -&sdhi0 { - pinctrl-0 = <&sdhi0_pins>; - pinctrl-1 = <&sdhi0_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <&vcc_sdhi0>; - vqmmc-supply = <&vccq_sdhi0>; - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; - bus-width = <4>; - sd-uhs-sdr50; - status = "okay"; -}; - -&sdhi2 { - /* used for on-board 8bit eMMC */ - pinctrl-0 = <&sdhi2_pins>; - pinctrl-1 = <&sdhi2_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <®_3p3v>; - vqmmc-supply = <®_1p8v>; - bus-width = <8>; - non-removable; - status = "okay"; -}; - -&scif2 { - pinctrl-0 = <&scif2_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - -&scif_clk { - clock-frequency = <14745600>; -}; - -&wdt0 { - timeout-sec = <60>; - status = "okay"; -}; diff --git a/arch/arm/dts/r8a7796-salvator-x.dts b/arch/arm/dts/r8a7796-salvator-x.dts index c9f59b6ce3..db4f162d6b 100644 --- a/arch/arm/dts/r8a7796-salvator-x.dts +++ b/arch/arm/dts/r8a7796-salvator-x.dts @@ -8,25 +8,16 @@ * kind, whether express or implied. */ +#define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 + /dts-v1/; #include "r8a7796.dtsi" -#include <dt-bindings/gpio/gpio.h> +#include "salvator-x.dtsi" / { model = "Renesas Salvator-X board based on r8a7796"; compatible = "renesas,salvator-x", "renesas,r8a7796"; - aliases { - serial0 = &scif2; - serial1 = &scif1; - ethernet0 = &avb; - }; - - chosen { - bootargs = "ignore_loglevel"; - stdout-path = "serial0:115200n8"; - }; - memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ @@ -37,233 +28,4 @@ device_type = "memory"; reg = <0x6 0x00000000 0x0 0x80000000>; }; - - reg_1p8v: regulator0 { - compatible = "regulator-fixed"; - regulator-name = "fixed-1.8V"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - reg_3p3v: regulator1 { - compatible = "regulator-fixed"; - regulator-name = "fixed-3.3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - regulator-always-on; - }; - - vcc_sdhi0: regulator-vcc-sdhi0 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI0 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - - vccq_sdhi0: regulator-vccq-sdhi0 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI0 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; - }; - - vcc_sdhi3: regulator-vcc-sdhi3 { - compatible = "regulator-fixed"; - - regulator-name = "SDHI3 Vcc"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - - vccq_sdhi3: regulator-vccq-sdhi3 { - compatible = "regulator-gpio"; - - regulator-name = "SDHI3 VccQ"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - - gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; - gpios-states = <1>; - states = <3300000 1 - 1800000 0>; - }; -}; - -&pfc { - pinctrl-0 = <&scif_clk_pins>; - pinctrl-names = "default"; - - avb_pins: avb { - groups = "avb_mdc"; - function = "avb"; - }; - - scif1_pins: scif1 { - groups = "scif1_data_a", "scif1_ctrl"; - function = "scif1"; - }; - - scif2_pins: scif2 { - groups = "scif2_data_a"; - function = "scif2"; - }; - scif_clk_pins: scif_clk { - groups = "scif_clk_a"; - function = "scif_clk"; - }; - - i2c2_pins: i2c2 { - groups = "i2c2_a"; - function = "i2c2"; - }; - - 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>; - }; - - sdhi2_pins: sd2 { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <3300>; - }; - - sdhi2_pins_uhs: sd2_uhs { - groups = "sdhi2_data8", "sdhi2_ctrl"; - function = "sdhi2"; - power-source = <1800>; - }; - - sdhi3_pins: sd3 { - groups = "sdhi3_data4", "sdhi3_ctrl"; - function = "sdhi3"; - power-source = <3300>; - }; - - sdhi3_pins_uhs: sd3_uhs { - groups = "sdhi3_data4", "sdhi3_ctrl"; - function = "sdhi3"; - power-source = <1800>; - }; -}; - -&avb { - pinctrl-0 = <&avb_pins>; - pinctrl-names = "default"; - renesas,no-ether-link; - phy-handle = <&phy0>; - status = "okay"; - - phy0: ethernet-phy@0 { - rxc-skew-ps = <1500>; - reg = <0>; - interrupt-parent = <&gpio2>; - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; - }; -}; - -&extal_clk { - clock-frequency = <16666666>; -}; - -&extalr_clk { - clock-frequency = <32768>; -}; - -&sdhi0 { - pinctrl-0 = <&sdhi0_pins>; - pinctrl-1 = <&sdhi0_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <&vcc_sdhi0>; - vqmmc-supply = <&vccq_sdhi0>; - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; - wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; - bus-width = <4>; - sd-uhs-sdr50; - status = "okay"; -}; - -&sdhi2 { - /* used for on-board 8bit eMMC */ - pinctrl-0 = <&sdhi2_pins>; - pinctrl-1 = <&sdhi2_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <®_3p3v>; - vqmmc-supply = <®_1p8v>; - bus-width = <8>; - non-removable; - status = "okay"; -}; - -&sdhi3 { - pinctrl-0 = <&sdhi3_pins>; - pinctrl-1 = <&sdhi3_pins_uhs>; - pinctrl-names = "default", "state_uhs"; - - vmmc-supply = <&vcc_sdhi3>; - vqmmc-supply = <&vccq_sdhi3>; - cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; - wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; - bus-width = <4>; - sd-uhs-sdr50; - status = "okay"; -}; - -&scif1 { - pinctrl-0 = <&scif1_pins>; - pinctrl-names = "default"; - - uart-has-rtscts; - status = "okay"; -}; - -&scif2 { - pinctrl-0 = <&scif2_pins>; - pinctrl-names = "default"; - status = "okay"; -}; - -&scif_clk { - clock-frequency = <14745600>; -}; - -&i2c2 { - pinctrl-0 = <&i2c2_pins>; - pinctrl-names = "default"; - - status = "okay"; -}; - -&wdt0 { - timeout-sec = <60>; - status = "okay"; -}; - -&i2c_dvfs { - status = "okay"; }; diff --git a/arch/arm/dts/r8a7796.dtsi b/arch/arm/dts/r8a7796.dtsi index 298df5db9f..c0cb4a952f 100644 --- a/arch/arm/dts/r8a7796.dtsi +++ b/arch/arm/dts/r8a7796.dtsi @@ -122,6 +122,29 @@ u-boot,dm-pre-reloc; }; + /* + * The external audio clocks are configured as 0 Hz fixed frequency + * clocks by default. + * Boards that provide audio clocks should override them. + */ + audio_clk_a: audio_clk_a { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + audio_clk_b: audio_clk_b { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + audio_clk_c: audio_clk_c { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + /* External CAN clock - to be overridden by boards that provide it */ can_clk: can { compatible = "fixed-clock"; @@ -136,6 +159,13 @@ clock-frequency = <0>; }; + /* External PCIe clock - can be overridden by the board */ + pcie_bus_clk: pcie_bus { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + soc { compatible = "simple-bus"; interrupt-parent = <&gic>; @@ -366,6 +396,78 @@ clocks = <&cpg CPG_MOD 926>; power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; resets = <&cpg 926>; + dmas = <&dmac0 0x11>, <&dmac0 0x10>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + pwm0: pwm@e6e30000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e30000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; + + pwm1: pwm@e6e31000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e31000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; + + pwm2: pwm@e6e32000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e32000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; + + pwm3: pwm@e6e33000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e33000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; + + pwm4: pwm@e6e34000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e34000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; + + pwm5: pwm@e6e35000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e35000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + status = "disabled"; + }; + + pwm6: pwm@e6e36000 { + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; + reg = <0 0xe6e36000 0 8>; + #pwm-cells = <2>; + clocks = <&cpg CPG_MOD 523>; + resets = <&cpg 523>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; status = "disabled"; }; @@ -935,6 +1037,106 @@ dma-channels = <16>; }; + audma0: dma-controller@ec700000 { + compatible = "renesas,dmac-r8a7796", + "renesas,rcar-dmac"; + reg = <0 0xec700000 0 0x10000>; + interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14", "ch15"; + clocks = <&cpg CPG_MOD 502>; + clock-names = "fck"; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + resets = <&cpg 502>; + #dma-cells = <1>; + dma-channels = <16>; + }; + + audma1: dma-controller@ec720000 { + compatible = "renesas,dmac-r8a7796", + "renesas,rcar-dmac"; + reg = <0 0xec720000 0 0x10000>; + interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH + GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14", "ch15"; + clocks = <&cpg CPG_MOD 501>; + clock-names = "fck"; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + resets = <&cpg 501>; + #dma-cells = <1>; + dma-channels = <16>; + }; + + hsusb: usb@e6590000 { + /* placeholder */ + }; + + xhci0: usb@ee000000 { + /* placeholder */ + }; + + ohci0: usb@ee080000 { + /* placeholder */ + }; + + ehci0: usb@ee080100 { + /* placeholder */ + }; + + usb2_phy0: usb-phy@ee080200 { + /* placeholder */ + }; + + ohci1: usb@ee0a0000 { + /* placeholder */ + }; + + ehci1: usb@ee0a0100 { + /* placeholder */ + }; + + usb2_phy1: usb-phy@ee0a0200 { + /* placeholder */ + }; + sdhi0: sd@ee100000 { compatible = "renesas,sdhi-r8a7796"; reg = <0 0xee100000 0 0x2000>; @@ -1037,5 +1239,224 @@ }; }; }; + + rcar_sound: sound@ec500000 { + /* + * #sound-dai-cells is required + * + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; + */ + /* + * #clock-cells is required for audio_clkout0/1/2/3 + * + * clkout : #clock-cells = <0>; <&rcar_sound>; + * clkout0/1/2/3: #clock-cells = <1>; <&rcar_sound N>; + */ + compatible = "renesas,rcar_sound-r8a7796", "renesas,rcar_sound-gen3"; + reg = <0 0xec500000 0 0x1000>, /* SCU */ + <0 0xec5a0000 0 0x100>, /* ADG */ + <0 0xec540000 0 0x1000>, /* SSIU */ + <0 0xec541000 0 0x280>, /* SSI */ + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; + + 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 R8A7796_CLK_S0D4>; + clock-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", + "ssi.5", "ssi.4", "ssi.3", "ssi.2", + "ssi.1", "ssi.0", + "src.9", "src.8", "src.7", "src.6", + "src.5", "src.4", "src.3", "src.2", + "src.1", "src.0", + "mix.1", "mix.0", + "ctu.1", "ctu.0", + "dvc.0", "dvc.1", + "clk_a", "clk_b", "clk_c", "clk_i"; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + resets = <&cpg 1005>, + <&cpg 1006>, <&cpg 1007>, + <&cpg 1008>, <&cpg 1009>, + <&cpg 1010>, <&cpg 1011>, + <&cpg 1012>, <&cpg 1013>, + <&cpg 1014>, <&cpg 1015>; + reset-names = "ssi-all", + "ssi.9", "ssi.8", "ssi.7", "ssi.6", + "ssi.5", "ssi.4", "ssi.3", "ssi.2", + "ssi.1", "ssi.0"; + status = "disabled"; + + rcar_sound,dvc { + dvc0: dvc-0 { + dmas = <&audma1 0xbc>; + dma-names = "tx"; + }; + dvc1: dvc-1 { + dmas = <&audma1 0xbe>; + dma-names = "tx"; + }; + }; + + rcar_sound,mix { + mix0: mix-0 { }; + mix1: mix-1 { }; + }; + + rcar_sound,ctu { + ctu00: ctu-0 { }; + ctu01: ctu-1 { }; + ctu02: ctu-2 { }; + ctu03: ctu-3 { }; + ctu10: ctu-4 { }; + ctu11: ctu-5 { }; + ctu12: ctu-6 { }; + ctu13: ctu-7 { }; + }; + + rcar_sound,src { + src0: src-0 { + interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x85>, <&audma1 0x9a>; + dma-names = "rx", "tx"; + }; + src1: src-1 { + interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x87>, <&audma1 0x9c>; + dma-names = "rx", "tx"; + }; + src2: src-2 { + interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x89>, <&audma1 0x9e>; + dma-names = "rx", "tx"; + }; + src3: src-3 { + interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x8b>, <&audma1 0xa0>; + dma-names = "rx", "tx"; + }; + src4: src-4 { + interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x8d>, <&audma1 0xb0>; + dma-names = "rx", "tx"; + }; + src5: src-5 { + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x8f>, <&audma1 0xb2>; + dma-names = "rx", "tx"; + }; + src6: src-6 { + interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x91>, <&audma1 0xb4>; + dma-names = "rx", "tx"; + }; + src7: src-7 { + interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x93>, <&audma1 0xb6>; + dma-names = "rx", "tx"; + }; + src8: src-8 { + interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x95>, <&audma1 0xb8>; + dma-names = "rx", "tx"; + }; + src9: src-9 { + interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x97>, <&audma1 0xba>; + dma-names = "rx", "tx"; + }; + }; + + rcar_sound,ssi { + ssi0: ssi-0 { + interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi1: ssi-1 { + interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi2: ssi-2 { + interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi3: ssi-3 { + interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi4: ssi-4 { + interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi5: ssi-5 { + interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi6: ssi-6 { + interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi7: ssi-7 { + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi8: ssi-8 { + interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + ssi9: ssi-9 { + interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; + dma-names = "rx", "tx", "rxu", "txu"; + }; + }; + }; + + pciec0: pcie@fe000000 { + /* placeholder */ + }; + + pciec1: pcie@ee800000 { + /* placeholder */ + }; + + du: display@feb00000 { + /* placeholder */ + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + du_out_rgb: endpoint { + }; + }; + }; + }; }; }; diff --git a/arch/arm/dts/salvator-common.dtsi b/arch/arm/dts/salvator-common.dtsi new file mode 100644 index 0000000000..f903957da5 --- /dev/null +++ b/arch/arm/dts/salvator-common.dtsi @@ -0,0 +1,629 @@ +/* + * Device Tree Source for common parts of Salvator-X board variants + * + * Copyright (C) 2015-2016 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +/* + * SSI-AK4613 + * + * This command is required when Playback/Capture + * + * amixer set "DVC Out" 100% + * amixer set "DVC In" 100% + * + * You can use Mute + * + * amixer set "DVC Out Mute" on + * amixer set "DVC In Mute" on + * + * You can use Volume Ramp + * + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" + * amixer set "DVC Out Ramp" on + * aplay xxx.wav & + * amixer set "DVC Out" 80% // Volume Down + * amixer set "DVC Out" 100% // Volume Up + */ + +#include <dt-bindings/gpio/gpio.h> + +/ { + aliases { + serial0 = &scif2; + serial1 = &scif1; + ethernet0 = &avb; + }; + + chosen { + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; + stdout-path = "serial0:115200n8"; + }; + + audio_clkout: audio-clkout { + /* + * This is same as <&rcar_sound 0> + * but needed to avoid cs2000/rcar_sound probe dead-lock + */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <11289600>; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm1 0 50000>; + + brightness-levels = <256 128 64 16 8 4 0>; + default-brightness-level = <6>; + + enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; + }; + + reg_1p8v: regulator0 { + compatible = "regulator-fixed"; + regulator-name = "fixed-1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + reg_3p3v: regulator1 { + compatible = "regulator-fixed"; + regulator-name = "fixed-3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + rsnd_ak4613: sound { + compatible = "simple-audio-card"; + + simple-audio-card,format = "left_j"; + simple-audio-card,bitclock-master = <&sndcpu>; + simple-audio-card,frame-master = <&sndcpu>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&ak4613>; + }; + }; + + vbus0_usb2: regulator-vbus0-usb2 { + compatible = "regulator-fixed"; + + regulator-name = "USB20_VBUS0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + + gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vcc_sdhi0: regulator-vcc-sdhi0 { + compatible = "regulator-fixed"; + + regulator-name = "SDHI0 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vccq_sdhi0: regulator-vccq-sdhi0 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI0 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; + + vcc_sdhi3: regulator-vcc-sdhi3 { + compatible = "regulator-fixed"; + + regulator-name = "SDHI3 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vccq_sdhi3: regulator-vccq-sdhi3 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI3 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; + + hdmi0-out { + compatible = "hdmi-connector"; + label = "HDMI0 OUT"; + type = "a"; + + port { + hdmi0_con: endpoint { + }; + }; + }; + + hdmi1-out { + compatible = "hdmi-connector"; + label = "HDMI1 OUT"; + type = "a"; + + port { + hdmi1_con: endpoint { + }; + }; + }; + + vga { + compatible = "vga-connector"; + + port { + vga_in: endpoint { + remote-endpoint = <&adv7123_out>; + }; + }; + }; + + vga-encoder { + compatible = "adi,adv7123"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + adv7123_in: endpoint { + remote-endpoint = <&du_out_rgb>; + }; + }; + port@1 { + reg = <1>; + adv7123_out: endpoint { + remote-endpoint = <&vga_in>; + }; + }; + }; + }; + + x12_clk: x12 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24576000>; + }; + + /* External DU dot clocks */ + x21_clk: x21-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <33000000>; + }; + + x22_clk: x22-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <33000000>; + }; + + x23_clk: x23-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + }; +}; + +&audio_clk_a { + clock-frequency = <22579200>; +}; + +&avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + renesas,no-ether-link; + phy-handle = <&phy0>; + status = "okay"; + + phy0: ethernet-phy@0 { + rxc-skew-ps = <1500>; + reg = <0>; + interrupt-parent = <&gpio2>; + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +&du { + pinctrl-0 = <&du_pins>; + pinctrl-names = "default"; + status = "okay"; + + ports { + port@0 { + endpoint { + remote-endpoint = <&adv7123_in>; + }; + }; + port@3 { + lvds_connector: endpoint { + }; + }; + }; +}; + +&ehci0 { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; + +&extalr_clk { + clock-frequency = <32768>; +}; + +&hsusb { + status = "okay"; +}; + +&i2c2 { + pinctrl-0 = <&i2c2_pins>; + pinctrl-names = "default"; + + status = "okay"; + + clock-frequency = <100000>; + + ak4613: codec@10 { + compatible = "asahi-kasei,ak4613"; + #sound-dai-cells = <0>; + reg = <0x10>; + clocks = <&rcar_sound 3>; + + asahi-kasei,in1-single-end; + asahi-kasei,in2-single-end; + asahi-kasei,out1-single-end; + asahi-kasei,out2-single-end; + asahi-kasei,out3-single-end; + asahi-kasei,out4-single-end; + asahi-kasei,out5-single-end; + asahi-kasei,out6-single-end; + }; + + cs2000: clk_multiplier@4f { + #clock-cells = <0>; + compatible = "cirrus,cs2000-cp"; + reg = <0x4f>; + clocks = <&audio_clkout>, <&x12_clk>; + clock-names = "clk_in", "ref_clk"; + + assigned-clocks = <&cs2000>; + assigned-clock-rates = <24576000>; /* 1/1 divide */ + }; +}; + +&i2c4 { + status = "okay"; + + csa_vdd: adc@7c { + compatible = "maxim,max9611"; + reg = <0x7c>; + + shunt-resistor-micro-ohms = <5000>; + }; + + csa_dvfs: adc@7f { + compatible = "maxim,max9611"; + reg = <0x7f>; + + shunt-resistor-micro-ohms = <5000>; + }; +}; + +&i2c_dvfs { + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&pcie_bus_clk { + clock-frequency = <100000000>; +}; + +&pciec0 { + status = "okay"; +}; + +&pciec1 { + status = "okay"; +}; + +&pfc { + pinctrl-0 = <&scif_clk_pins>; + pinctrl-names = "default"; + + avb_pins: avb { + mux { + groups = "avb_link", "avb_phy_int", "avb_mdc", + "avb_mii"; + function = "avb"; + }; + + pins_mdc { + groups = "avb_mdc"; + drive-strength = <24>; + }; + + pins_mii_tx { + pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", + "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; + drive-strength = <12>; + }; + }; + + du_pins: du { + groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; + function = "du"; + }; + + i2c2_pins: i2c2 { + groups = "i2c2_a"; + function = "i2c2"; + }; + + pwm1_pins: pwm1 { + groups = "pwm1_a"; + function = "pwm1"; + }; + + scif1_pins: scif1 { + groups = "scif1_data_a", "scif1_ctrl"; + function = "scif1"; + }; + + scif2_pins: scif2 { + groups = "scif2_data_a"; + function = "scif2"; + }; + + scif_clk_pins: scif_clk { + groups = "scif_clk_a"; + function = "scif_clk"; + }; + + 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>; + }; + + sdhi2_pins: sd2 { + groups = "sdhi2_data8", "sdhi2_ctrl"; + function = "sdhi2"; + power-source = <3300>; + }; + + sdhi2_pins_uhs: sd2_uhs { + groups = "sdhi2_data8", "sdhi2_ctrl"; + function = "sdhi2"; + power-source = <1800>; + }; + + sdhi3_pins: sd3 { + groups = "sdhi3_data4", "sdhi3_ctrl"; + function = "sdhi3"; + power-source = <3300>; + }; + + sdhi3_pins_uhs: sd3_uhs { + groups = "sdhi3_data4", "sdhi3_ctrl"; + function = "sdhi3"; + 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", "audio_clk_b_a", "audio_clk_c_a", + "audio_clkout_a", "audio_clkout3_a"; + function = "audio_clk"; + }; + + usb0_pins: usb0 { + groups = "usb0"; + function = "usb0"; + }; + + usb1_pins: usb1 { + mux { + groups = "usb1"; + function = "usb1"; + }; + + ovc { + pins = "GP_6_27"; + bias-pull-up; + }; + + pwen { + pins = "GP_6_26"; + bias-pull-down; + }; + }; +}; + +&pwm1 { + pinctrl-0 = <&pwm1_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 = <12288000 11289600>; + + status = "okay"; + + /* update <audio_clk_b> to <cs2000> */ + 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>, <&cs2000>, + <&audio_clk_c>, + <&cpg CPG_CORE CPG_AUDIO_CLK_I>; + + rcar_sound,dai { + dai0 { + playback = <&ssi0 &src0 &dvc0>; + capture = <&ssi1 &src1 &dvc1>; + }; + }; +}; + +&scif1 { + pinctrl-0 = <&scif1_pins>; + pinctrl-names = "default"; + + uart-has-rtscts; + status = "okay"; +}; + +&scif2 { + pinctrl-0 = <&scif2_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 = <&vcc_sdhi0>; + vqmmc-supply = <&vccq_sdhi0>; + cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; + bus-width = <4>; + sd-uhs-sdr50; + status = "okay"; +}; + +&sdhi2 { + /* used for on-board 8bit eMMC */ + pinctrl-0 = <&sdhi2_pins>; + pinctrl-1 = <&sdhi2_pins_uhs>; + pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <®_1p8v>; + bus-width = <8>; + mmc-hs200-1_8v; + non-removable; + status = "okay"; +}; + +&sdhi3 { + pinctrl-0 = <&sdhi3_pins>; + pinctrl-1 = <&sdhi3_pins_uhs>; + pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <&vcc_sdhi3>; + vqmmc-supply = <&vccq_sdhi3>; + cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; + bus-width = <4>; + sd-uhs-sdr50; + status = "okay"; +}; + +&ssi1 { + shared-pin; +}; + +&usb2_phy0 { + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; + + vbus-supply = <&vbus0_usb2>; + status = "okay"; +}; + +&usb2_phy1 { + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&wdt0 { + timeout-sec = <60>; + status = "okay"; +}; + +&xhci0 { + status = "okay"; +}; diff --git a/arch/arm/dts/salvator-x.dtsi b/arch/arm/dts/salvator-x.dtsi new file mode 100644 index 0000000000..468868c8ed --- /dev/null +++ b/arch/arm/dts/salvator-x.dtsi @@ -0,0 +1,30 @@ +/* + * Device Tree Source for the Salvator-X board + * + * Copyright (C) 2015-2016 Renesas Electronics Corp. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include "salvator-common.dtsi" + +/ { + model = "Renesas Salvator-X board"; + compatible = "renesas,salvator-x"; +}; + +&extal_clk { + clock-frequency = <16666666>; +}; + +&i2c4 { + versaclock5: clock-generator@6a { + compatible = "idt,5p49v5923"; + reg = <0x6a>; + #clock-cells = <1>; + clocks = <&x23_clk>; + clock-names = "xin"; + }; +}; diff --git a/arch/arm/dts/ulcb.dtsi b/arch/arm/dts/ulcb.dtsi new file mode 100644 index 0000000000..d1a3f3b7a0 --- /dev/null +++ b/arch/arm/dts/ulcb.dtsi @@ -0,0 +1,367 @@ +/* + * Device Tree Source for the R-Car Gen3 ULCB board + * + * Copyright (C) 2016 Renesas Electronics Corp. + * Copyright (C) 2016 Cogent Embedded, Inc. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "Renesas R-Car Gen3 ULCB board"; + + aliases { + serial0 = &scif2; + ethernet0 = &avb; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + audio_clkout: audio-clkout { + /* + * This is same as <&rcar_sound 0> + * but needed to avoid cs2000/rcar_sound probe dead-lock + */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <11289600>; + }; + + keyboard { + compatible = "gpio-keys"; + + key-1 { + linux,code = <KEY_1>; + label = "SW3"; + wakeup-source; + debounce-interval = <20>; + gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led5 { + gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; + }; + led6 { + gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; + }; + }; + + reg_1p8v: regulator0 { + compatible = "regulator-fixed"; + regulator-name = "fixed-1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + reg_3p3v: regulator1 { + compatible = "regulator-fixed"; + regulator-name = "fixed-3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + rsnd_ak4613: sound { + compatible = "simple-audio-card"; + + simple-audio-card,format = "left_j"; + simple-audio-card,bitclock-master = <&sndcpu>; + simple-audio-card,frame-master = <&sndcpu>; + + sndcpu: simple-audio-card,cpu { + sound-dai = <&rcar_sound>; + }; + + sndcodec: simple-audio-card,codec { + sound-dai = <&ak4613>; + }; + }; + + vcc_sdhi0: regulator-vcc-sdhi0 { + compatible = "regulator-fixed"; + + regulator-name = "SDHI0 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vccq_sdhi0: regulator-vccq-sdhi0 { + compatible = "regulator-gpio"; + + regulator-name = "SDHI0 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; + gpios-states = <1>; + states = <3300000 1 + 1800000 0>; + }; + + x12_clk: x12 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24576000>; + }; +}; + +&audio_clk_a { + clock-frequency = <22579200>; +}; + +&avb { + pinctrl-0 = <&avb_pins>; + pinctrl-names = "default"; + renesas,no-ether-link; + phy-handle = <&phy0>; + status = "okay"; + + phy0: ethernet-phy@0 { + rxc-skew-ps = <1500>; + reg = <0>; + interrupt-parent = <&gpio2>; + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +&ehci1 { + status = "okay"; +}; + +&extal_clk { + clock-frequency = <16666666>; +}; + +&extalr_clk { + clock-frequency = <32768>; +}; + +&i2c2 { + pinctrl-0 = <&i2c2_pins>; + pinctrl-names = "default"; + + status = "okay"; + + clock-frequency = <100000>; + + ak4613: codec@10 { + compatible = "asahi-kasei,ak4613"; + #sound-dai-cells = <0>; + reg = <0x10>; + clocks = <&rcar_sound 3>; + + asahi-kasei,in1-single-end; + asahi-kasei,in2-single-end; + asahi-kasei,out1-single-end; + asahi-kasei,out2-single-end; + asahi-kasei,out3-single-end; + asahi-kasei,out4-single-end; + asahi-kasei,out5-single-end; + asahi-kasei,out6-single-end; + }; + + cs2000: clk-multiplier@4f { + #clock-cells = <0>; + compatible = "cirrus,cs2000-cp"; + reg = <0x4f>; + clocks = <&audio_clkout>, <&x12_clk>; + clock-names = "clk_in", "ref_clk"; + + assigned-clocks = <&cs2000>; + assigned-clock-rates = <24576000>; /* 1/1 divide */ + }; +}; + +&ohci1 { + status = "okay"; +}; + +&pfc { + pinctrl-0 = <&scif_clk_pins>; + pinctrl-names = "default"; + + avb_pins: avb { + mux { + groups = "avb_link", "avb_phy_int", "avb_mdc", + "avb_mii"; + function = "avb"; + }; + + pins_mdc { + groups = "avb_mdc"; + drive-strength = <24>; + }; + + pins_mii_tx { + pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", + "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; + drive-strength = <12>; + }; + }; + + i2c2_pins: i2c2 { + groups = "i2c2_a"; + function = "i2c2"; + }; + + scif2_pins: scif2 { + groups = "scif2_data_a"; + function = "scif2"; + }; + + scif_clk_pins: scif_clk { + groups = "scif_clk_a"; + function = "scif_clk"; + }; + + 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>; + }; + + sdhi2_pins: sd2 { + groups = "sdhi2_data8", "sdhi2_ctrl"; + function = "sdhi2"; + power-source = <3300>; + }; + + sdhi2_pins_uhs: sd2_uhs { + groups = "sdhi2_data8", "sdhi2_ctrl"; + function = "sdhi2"; + 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", "audio_clk_b_a", "audio_clk_c_a", + "audio_clkout_a", "audio_clkout3_a"; + function = "audio_clk"; + }; + + usb1_pins: usb1 { + groups = "usb1"; + function = "usb1"; + }; +}; + +&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 = <12288000 11289600>; + + status = "okay"; + + /* update <audio_clk_b> to <cs2000> */ + 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>, <&cs2000>, + <&audio_clk_c>, + <&cpg CPG_CORE CPG_AUDIO_CLK_I>; + + rcar_sound,dai { + dai0 { + playback = <&ssi0 &src0 &dvc0>; + capture = <&ssi1 &src1 &dvc1>; + }; + }; +}; + +&scif2 { + pinctrl-0 = <&scif2_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 = <&vcc_sdhi0>; + vqmmc-supply = <&vccq_sdhi0>; + cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; + bus-width = <4>; + sd-uhs-sdr50; + status = "okay"; +}; + +&sdhi2 { + /* used for on-board 8bit eMMC */ + pinctrl-0 = <&sdhi2_pins>; + pinctrl-1 = <&sdhi2_pins_uhs>; + pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <®_1p8v>; + bus-width = <8>; + mmc-hs200-1_8v; + non-removable; + status = "okay"; +}; + +&ssi1 { + shared-pin; +}; + +&usb2_phy1 { + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&wdt0 { + timeout-sec = <60>; + status = "okay"; +};
Import the RCar Gen3 DTS and headers from upstream Linux kernel v4.13, commit 569dbb88e80deb68974ef6fdd6a13edb9d686261 . This includes both M3 and H3 ULCB and Salvator-X boards. Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> --- arch/arm/dts/r8a7795-h3ulcb.dts | 342 +------------------- arch/arm/dts/r8a7795-salvator-x.dts | 565 +++----------------------------- arch/arm/dts/r8a7795.dtsi | 133 ++++---- arch/arm/dts/r8a7796-m3ulcb.dts | 168 +--------- arch/arm/dts/r8a7796-salvator-x.dts | 244 +------------- arch/arm/dts/r8a7796.dtsi | 421 ++++++++++++++++++++++++ arch/arm/dts/salvator-common.dtsi | 629 ++++++++++++++++++++++++++++++++++++ arch/arm/dts/salvator-x.dtsi | 30 ++ arch/arm/dts/ulcb.dtsi | 367 +++++++++++++++++++++ 9 files changed, 1572 insertions(+), 1327 deletions(-) create mode 100644 arch/arm/dts/salvator-common.dtsi create mode 100644 arch/arm/dts/salvator-x.dtsi create mode 100644 arch/arm/dts/ulcb.dtsi