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