1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2c66ec88fSEmmanuel Vadot/dts-v1/; 3c66ec88fSEmmanuel Vadot 4c66ec88fSEmmanuel Vadot#include "jz4725b.dtsi" 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 7c66ec88fSEmmanuel Vadot#include <dt-bindings/iio/adc/ingenic,adc.h> 8c66ec88fSEmmanuel Vadot#include <dt-bindings/input/linux-event-codes.h> 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel Vadot/ { 11c66ec88fSEmmanuel Vadot compatible = "ylm,rs90", "ingenic,jz4725b"; 12c66ec88fSEmmanuel Vadot model = "RS-90"; 13c66ec88fSEmmanuel Vadot 14c66ec88fSEmmanuel Vadot memory { 15c66ec88fSEmmanuel Vadot device_type = "memory"; 16c66ec88fSEmmanuel Vadot reg = <0x0 0x2000000>; 17c66ec88fSEmmanuel Vadot }; 18c66ec88fSEmmanuel Vadot 195956d97fSEmmanuel Vadot reserved-memory { 205956d97fSEmmanuel Vadot #address-cells = <1>; 215956d97fSEmmanuel Vadot #size-cells = <1>; 225956d97fSEmmanuel Vadot ranges; 235956d97fSEmmanuel Vadot 245956d97fSEmmanuel Vadot vmem: video-memory@1f00000 { 255956d97fSEmmanuel Vadot compatible = "shared-dma-pool"; 265956d97fSEmmanuel Vadot reg = <0x1f00000 0x100000>; 275956d97fSEmmanuel Vadot reusable; 285956d97fSEmmanuel Vadot }; 295956d97fSEmmanuel Vadot }; 305956d97fSEmmanuel Vadot 31c66ec88fSEmmanuel Vadot vcc: regulator { 32c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 33c66ec88fSEmmanuel Vadot 34c66ec88fSEmmanuel Vadot regulator-name = "vcc"; 35c66ec88fSEmmanuel Vadot regulaor-min-microvolt = <3300000>; 36c66ec88fSEmmanuel Vadot regulaor-max-microvolt = <3300000>; 37c66ec88fSEmmanuel Vadot regulator-always-on; 38c66ec88fSEmmanuel Vadot }; 39c66ec88fSEmmanuel Vadot 40c66ec88fSEmmanuel Vadot backlight: backlight { 41c66ec88fSEmmanuel Vadot compatible = "pwm-backlight"; 42c66ec88fSEmmanuel Vadot pwms = <&pwm 3 40000 0>; 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot brightness-levels = <0 16 32 48 64 80 112 144 192 255>; 45c66ec88fSEmmanuel Vadot default-brightness-level = <8>; 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 48c66ec88fSEmmanuel Vadot pinctrl-0 = <&pins_pwm3>; 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot power-supply = <&vcc>; 51c66ec88fSEmmanuel Vadot }; 52c66ec88fSEmmanuel Vadot 53c66ec88fSEmmanuel Vadot keys@0 { 54c66ec88fSEmmanuel Vadot compatible = "gpio-keys"; 55c66ec88fSEmmanuel Vadot 56*b97ee269SEmmanuel Vadot key-0 { 57c66ec88fSEmmanuel Vadot label = "D-pad up"; 58c66ec88fSEmmanuel Vadot linux,code = <KEY_UP>; 59c66ec88fSEmmanuel Vadot gpios = <&gpc 10 GPIO_ACTIVE_LOW>; 60c66ec88fSEmmanuel Vadot }; 61c66ec88fSEmmanuel Vadot 62*b97ee269SEmmanuel Vadot key-1 { 63c66ec88fSEmmanuel Vadot label = "D-pad down"; 64c66ec88fSEmmanuel Vadot linux,code = <KEY_DOWN>; 65c66ec88fSEmmanuel Vadot gpios = <&gpc 11 GPIO_ACTIVE_LOW>; 66c66ec88fSEmmanuel Vadot }; 67c66ec88fSEmmanuel Vadot 68*b97ee269SEmmanuel Vadot key-2 { 69c66ec88fSEmmanuel Vadot label = "D-pad left"; 70c66ec88fSEmmanuel Vadot linux,code = <KEY_LEFT>; 71c66ec88fSEmmanuel Vadot gpios = <&gpb 31 GPIO_ACTIVE_LOW>; 72c66ec88fSEmmanuel Vadot }; 73c66ec88fSEmmanuel Vadot 74*b97ee269SEmmanuel Vadot key-3 { 75c66ec88fSEmmanuel Vadot label = "D-pad right"; 76c66ec88fSEmmanuel Vadot linux,code = <KEY_RIGHT>; 77c66ec88fSEmmanuel Vadot gpios = <&gpd 21 GPIO_ACTIVE_LOW>; 78c66ec88fSEmmanuel Vadot }; 79c66ec88fSEmmanuel Vadot 80*b97ee269SEmmanuel Vadot key-4 { 81c66ec88fSEmmanuel Vadot label = "Button A"; 82c66ec88fSEmmanuel Vadot linux,code = <KEY_LEFTCTRL>; 83c66ec88fSEmmanuel Vadot gpios = <&gpc 31 GPIO_ACTIVE_LOW>; 84c66ec88fSEmmanuel Vadot }; 85c66ec88fSEmmanuel Vadot 86*b97ee269SEmmanuel Vadot key-5 { 87c66ec88fSEmmanuel Vadot label = "Button B"; 88c66ec88fSEmmanuel Vadot linux,code = <KEY_LEFTALT>; 89c66ec88fSEmmanuel Vadot gpios = <&gpc 30 GPIO_ACTIVE_LOW>; 90c66ec88fSEmmanuel Vadot }; 91c66ec88fSEmmanuel Vadot 92*b97ee269SEmmanuel Vadot key-6 { 93c66ec88fSEmmanuel Vadot label = "Right shoulder button"; 94c66ec88fSEmmanuel Vadot linux,code = <KEY_BACKSPACE>; 95c66ec88fSEmmanuel Vadot gpios = <&gpc 12 GPIO_ACTIVE_LOW>; 96c66ec88fSEmmanuel Vadot debounce-interval = <10>; 97c66ec88fSEmmanuel Vadot }; 98c66ec88fSEmmanuel Vadot 99*b97ee269SEmmanuel Vadot key-7 { 100c66ec88fSEmmanuel Vadot label = "Start button"; 101c66ec88fSEmmanuel Vadot linux,code = <KEY_ENTER>; 102c66ec88fSEmmanuel Vadot gpios = <&gpd 17 GPIO_ACTIVE_LOW>; 103c66ec88fSEmmanuel Vadot }; 104c66ec88fSEmmanuel Vadot }; 105c66ec88fSEmmanuel Vadot 106c66ec88fSEmmanuel Vadot keys@1 { 107c66ec88fSEmmanuel Vadot compatible = "adc-keys"; 108c66ec88fSEmmanuel Vadot io-channels = <&adc INGENIC_ADC_AUX>; 109c66ec88fSEmmanuel Vadot io-channel-names = "buttons"; 110c66ec88fSEmmanuel Vadot keyup-threshold-microvolt = <1400000>; 111c66ec88fSEmmanuel Vadot poll-interval = <30>; 112c66ec88fSEmmanuel Vadot 113c66ec88fSEmmanuel Vadot key@0 { 114c66ec88fSEmmanuel Vadot label = "Left shoulder button"; 115c66ec88fSEmmanuel Vadot linux,code = <KEY_TAB>; 116c66ec88fSEmmanuel Vadot press-threshold-microvolt = <800000>; 117c66ec88fSEmmanuel Vadot }; 118c66ec88fSEmmanuel Vadot 119c66ec88fSEmmanuel Vadot key@1 { 120c66ec88fSEmmanuel Vadot label = "Select button"; 121c66ec88fSEmmanuel Vadot linux,code = <KEY_ESC>; 122c66ec88fSEmmanuel Vadot press-threshold-microvolt = <1100000>; 123c66ec88fSEmmanuel Vadot }; 124c66ec88fSEmmanuel Vadot }; 125c66ec88fSEmmanuel Vadot 126c66ec88fSEmmanuel Vadot amp: analog-amplifier { 127c66ec88fSEmmanuel Vadot compatible = "simple-audio-amplifier"; 128c66ec88fSEmmanuel Vadot enable-gpios = <&gpc 15 GPIO_ACTIVE_HIGH>; 129c66ec88fSEmmanuel Vadot 130c66ec88fSEmmanuel Vadot VCC-supply = <&vcc>; 131c66ec88fSEmmanuel Vadot }; 132c66ec88fSEmmanuel Vadot 133c66ec88fSEmmanuel Vadot sound { 134c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 135c66ec88fSEmmanuel Vadot 136c66ec88fSEmmanuel Vadot simple-audio-card,name = "rs90-audio"; 137c66ec88fSEmmanuel Vadot simple-audio-card,format = "i2s"; 138c66ec88fSEmmanuel Vadot 139c66ec88fSEmmanuel Vadot simple-audio-card,widgets = 140c66ec88fSEmmanuel Vadot "Speaker", "Speaker", 141c66ec88fSEmmanuel Vadot "Headphone", "Headphones"; 142c66ec88fSEmmanuel Vadot simple-audio-card,routing = 143c66ec88fSEmmanuel Vadot "INL", "LHPOUT", 144c66ec88fSEmmanuel Vadot "INR", "RHPOUT", 145c66ec88fSEmmanuel Vadot "Headphones", "LHPOUT", 146c66ec88fSEmmanuel Vadot "Headphones", "RHPOUT", 147c66ec88fSEmmanuel Vadot "Speaker", "OUTL", 148c66ec88fSEmmanuel Vadot "Speaker", "OUTR"; 149c66ec88fSEmmanuel Vadot simple-audio-card,pin-switches = "Speaker"; 150c66ec88fSEmmanuel Vadot 151c66ec88fSEmmanuel Vadot simple-audio-card,hp-det-gpio = <&gpd 16 GPIO_ACTIVE_LOW>; 152c66ec88fSEmmanuel Vadot simple-audio-card,aux-devs = <&>; 153c66ec88fSEmmanuel Vadot 154c66ec88fSEmmanuel Vadot simple-audio-card,bitclock-master = <&dai_codec>; 155c66ec88fSEmmanuel Vadot simple-audio-card,frame-master = <&dai_codec>; 156c66ec88fSEmmanuel Vadot 157c66ec88fSEmmanuel Vadot dai_cpu: simple-audio-card,cpu { 158c66ec88fSEmmanuel Vadot sound-dai = <&aic>; 159c66ec88fSEmmanuel Vadot }; 160c66ec88fSEmmanuel Vadot 161c66ec88fSEmmanuel Vadot dai_codec: simple-audio-card,codec { 162c66ec88fSEmmanuel Vadot sound-dai = <&codec>; 163c66ec88fSEmmanuel Vadot }; 164c66ec88fSEmmanuel Vadot 165c66ec88fSEmmanuel Vadot }; 166c66ec88fSEmmanuel Vadot 167c66ec88fSEmmanuel Vadot usb_phy: usb-phy { 168c66ec88fSEmmanuel Vadot compatible = "usb-nop-xceiv"; 169c66ec88fSEmmanuel Vadot #phy-cells = <0>; 170c66ec88fSEmmanuel Vadot 171c66ec88fSEmmanuel Vadot clocks = <&cgu JZ4725B_CLK_UDC_PHY>; 172c66ec88fSEmmanuel Vadot clock-names = "main_clk"; 173c66ec88fSEmmanuel Vadot vcc-supply = <&vcc>; 174c66ec88fSEmmanuel Vadot }; 175c66ec88fSEmmanuel Vadot 176c66ec88fSEmmanuel Vadot panel { 177c66ec88fSEmmanuel Vadot compatible = "sharp,ls020b1dd01d"; 178c66ec88fSEmmanuel Vadot 179c66ec88fSEmmanuel Vadot backlight = <&backlight>; 180c66ec88fSEmmanuel Vadot power-supply = <&vcc>; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot port { 183c66ec88fSEmmanuel Vadot panel_input: endpoint { 184c66ec88fSEmmanuel Vadot remote-endpoint = <&panel_output>; 185c66ec88fSEmmanuel Vadot }; 186c66ec88fSEmmanuel Vadot }; 187c66ec88fSEmmanuel Vadot }; 188c66ec88fSEmmanuel Vadot}; 189c66ec88fSEmmanuel Vadot 190c66ec88fSEmmanuel Vadot&ext { 191c66ec88fSEmmanuel Vadot clock-frequency = <12000000>; 192c66ec88fSEmmanuel Vadot}; 193c66ec88fSEmmanuel Vadot 194c66ec88fSEmmanuel Vadot&rtc_dev { 195c66ec88fSEmmanuel Vadot system-power-controller; 196c66ec88fSEmmanuel Vadot}; 197c66ec88fSEmmanuel Vadot 198c66ec88fSEmmanuel Vadot&udc { 199c66ec88fSEmmanuel Vadot phys = <&usb_phy>; 200c66ec88fSEmmanuel Vadot}; 201c66ec88fSEmmanuel Vadot 202c66ec88fSEmmanuel Vadot&pinctrl { 203c66ec88fSEmmanuel Vadot pins_mmc1: mmc1 { 204c66ec88fSEmmanuel Vadot function = "mmc1"; 205c66ec88fSEmmanuel Vadot groups = "mmc1-1bit"; 206c66ec88fSEmmanuel Vadot }; 207c66ec88fSEmmanuel Vadot 208c66ec88fSEmmanuel Vadot pins_nemc: nemc { 209c66ec88fSEmmanuel Vadot function = "nand"; 210c66ec88fSEmmanuel Vadot groups = "nand-cs1", "nand-cle-ale", "nand-fre-fwe"; 211c66ec88fSEmmanuel Vadot }; 212c66ec88fSEmmanuel Vadot 213c66ec88fSEmmanuel Vadot pins_pwm3: pwm3 { 214c66ec88fSEmmanuel Vadot function = "pwm3"; 215c66ec88fSEmmanuel Vadot groups = "pwm3"; 216c66ec88fSEmmanuel Vadot bias-disable; 217c66ec88fSEmmanuel Vadot }; 218c66ec88fSEmmanuel Vadot 219c66ec88fSEmmanuel Vadot pins_lcd: lcd { 220c66ec88fSEmmanuel Vadot function = "lcd"; 221c66ec88fSEmmanuel Vadot groups = "lcd-8bit", "lcd-16bit", "lcd-special"; 222c66ec88fSEmmanuel Vadot }; 223c66ec88fSEmmanuel Vadot}; 224c66ec88fSEmmanuel Vadot 225c66ec88fSEmmanuel Vadot&mmc0 { 226c66ec88fSEmmanuel Vadot status = "disabled"; 227c66ec88fSEmmanuel Vadot}; 228c66ec88fSEmmanuel Vadot 229c66ec88fSEmmanuel Vadot&mmc1 { 230c66ec88fSEmmanuel Vadot bus-width = <1>; 231c66ec88fSEmmanuel Vadot max-frequency = <48000000>; 232c66ec88fSEmmanuel Vadot 233c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 234c66ec88fSEmmanuel Vadot pinctrl-0 = <&pins_mmc1>; 235c66ec88fSEmmanuel Vadot 236c66ec88fSEmmanuel Vadot cd-gpios = <&gpc 20 GPIO_ACTIVE_LOW>; 237c66ec88fSEmmanuel Vadot}; 238c66ec88fSEmmanuel Vadot 239c66ec88fSEmmanuel Vadot&uart { 240c66ec88fSEmmanuel Vadot /* 241c66ec88fSEmmanuel Vadot * The pins for RX/TX are used for the right shoulder button and 242c66ec88fSEmmanuel Vadot * backlight PWM. 243c66ec88fSEmmanuel Vadot */ 244c66ec88fSEmmanuel Vadot status = "disabled"; 245c66ec88fSEmmanuel Vadot}; 246c66ec88fSEmmanuel Vadot 247c66ec88fSEmmanuel Vadot&nemc { 248c66ec88fSEmmanuel Vadot nandc: nand-controller@1 { 249c66ec88fSEmmanuel Vadot compatible = "ingenic,jz4725b-nand"; 250c66ec88fSEmmanuel Vadot reg = <1 0 0x4000000>; 251c66ec88fSEmmanuel Vadot 252c66ec88fSEmmanuel Vadot #address-cells = <1>; 253c66ec88fSEmmanuel Vadot #size-cells = <0>; 254c66ec88fSEmmanuel Vadot 255c66ec88fSEmmanuel Vadot ecc-engine = <&bch>; 256c66ec88fSEmmanuel Vadot 257c66ec88fSEmmanuel Vadot ingenic,nemc-tAS = <10>; 258c66ec88fSEmmanuel Vadot ingenic,nemc-tAH = <5>; 259c66ec88fSEmmanuel Vadot ingenic,nemc-tBP = <10>; 260c66ec88fSEmmanuel Vadot ingenic,nemc-tAW = <15>; 261c66ec88fSEmmanuel Vadot ingenic,nemc-tSTRV = <100>; 262c66ec88fSEmmanuel Vadot 263c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 264c66ec88fSEmmanuel Vadot pinctrl-0 = <&pins_nemc>; 265c66ec88fSEmmanuel Vadot 266c66ec88fSEmmanuel Vadot rb-gpios = <&gpc 27 GPIO_ACTIVE_HIGH>; 267c66ec88fSEmmanuel Vadot 268c66ec88fSEmmanuel Vadot nand@1 { 269c66ec88fSEmmanuel Vadot reg = <1>; 270c66ec88fSEmmanuel Vadot 271c66ec88fSEmmanuel Vadot nand-ecc-step-size = <512>; 272c66ec88fSEmmanuel Vadot nand-ecc-strength = <8>; 273c66ec88fSEmmanuel Vadot nand-ecc-mode = "hw"; 274c66ec88fSEmmanuel Vadot nand-is-boot-medium; 275c66ec88fSEmmanuel Vadot nand-on-flash-bbt; 276c66ec88fSEmmanuel Vadot 277c66ec88fSEmmanuel Vadot partitions { 278c66ec88fSEmmanuel Vadot compatible = "fixed-partitions"; 279c66ec88fSEmmanuel Vadot #address-cells = <1>; 280c66ec88fSEmmanuel Vadot #size-cells = <1>; 281c66ec88fSEmmanuel Vadot 282c66ec88fSEmmanuel Vadot partition@0 { 283c66ec88fSEmmanuel Vadot label = "bootloader"; 284c66ec88fSEmmanuel Vadot reg = <0x0 0x20000>; 285c66ec88fSEmmanuel Vadot }; 286c66ec88fSEmmanuel Vadot 287c66ec88fSEmmanuel Vadot partition@20000 { 288c66ec88fSEmmanuel Vadot label = "system"; 289c66ec88fSEmmanuel Vadot reg = <0x20000 0x0>; 290c66ec88fSEmmanuel Vadot }; 291c66ec88fSEmmanuel Vadot }; 292c66ec88fSEmmanuel Vadot }; 293c66ec88fSEmmanuel Vadot }; 294c66ec88fSEmmanuel Vadot}; 295c66ec88fSEmmanuel Vadot 296c66ec88fSEmmanuel Vadot&cgu { 297c66ec88fSEmmanuel Vadot /* Use 32kHz oscillator as the parent of the RTC clock */ 298c66ec88fSEmmanuel Vadot assigned-clocks = <&cgu JZ4725B_CLK_RTC>; 299c66ec88fSEmmanuel Vadot assigned-clock-parents = <&cgu JZ4725B_CLK_OSC32K>; 300c66ec88fSEmmanuel Vadot}; 301c66ec88fSEmmanuel Vadot 302c66ec88fSEmmanuel Vadot&tcu { 303c66ec88fSEmmanuel Vadot /* 304c66ec88fSEmmanuel Vadot * 750 kHz for the system timer and clocksource, and use RTC as the 305c66ec88fSEmmanuel Vadot * parent for the watchdog clock. 306c66ec88fSEmmanuel Vadot */ 307c66ec88fSEmmanuel Vadot assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>; 308c66ec88fSEmmanuel Vadot assigned-clock-parents = <0>, <0>, <&cgu JZ4725B_CLK_RTC>; 309c66ec88fSEmmanuel Vadot assigned-clock-rates = <750000>, <750000>; 310c66ec88fSEmmanuel Vadot}; 311c66ec88fSEmmanuel Vadot 312c66ec88fSEmmanuel Vadot&lcd { 3135956d97fSEmmanuel Vadot memory-region = <&vmem>; 3145956d97fSEmmanuel Vadot 315c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 316c66ec88fSEmmanuel Vadot pinctrl-0 = <&pins_lcd>; 317c66ec88fSEmmanuel Vadot}; 318c66ec88fSEmmanuel Vadot 319c66ec88fSEmmanuel Vadot&lcd_ports { 320c66ec88fSEmmanuel Vadot port@0 { 321c66ec88fSEmmanuel Vadot reg = <0>; 322c66ec88fSEmmanuel Vadot 323c66ec88fSEmmanuel Vadot panel_output: endpoint { 324c66ec88fSEmmanuel Vadot remote-endpoint = <&panel_input>; 325c66ec88fSEmmanuel Vadot }; 326c66ec88fSEmmanuel Vadot }; 327c66ec88fSEmmanuel Vadot}; 328