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