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