1// SPDX-License-Identifier: GPL-2.0 2/dts-v1/; 3 4#include "jz4740.dtsi" 5 6#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/iio/adc/ingenic,adc.h> 8#include <dt-bindings/clock/ingenic,tcu.h> 9#include <dt-bindings/input/input.h> 10 11#define KEY_QI_QI KEY_F13 12#define KEY_QI_UPRED KEY_RIGHTALT 13#define KEY_QI_VOLUP KEY_VOLUMEUP 14#define KEY_QI_VOLDOWN KEY_VOLUMEDOWN 15#define KEY_QI_FN KEY_LEFTCTRL 16 17/ { 18 compatible = "qi,lb60", "ingenic,jz4740"; 19 model = "Ben Nanonote"; 20 21 memory { 22 device_type = "memory"; 23 reg = <0x0 0x2000000>; 24 }; 25 26 chosen { 27 stdout-path = &uart0; 28 }; 29 30 vcc: regulator@0 { 31 compatible = "regulator-fixed"; 32 regulator-name = "vcc"; 33 34 regulator-min-microvolt = <3300000>; 35 regulator-max-microvolt = <3300000>; 36 regulator-always-on; 37 }; 38 39 mmc_power: regulator@1 { 40 compatible = "regulator-fixed"; 41 regulator-name = "mmc_vcc"; 42 gpio = <&gpd 2 0>; 43 44 regulator-min-microvolt = <3300000>; 45 regulator-max-microvolt = <3300000>; 46 }; 47 48 amp_supply: regulator@2 { 49 compatible = "regulator-fixed"; 50 regulator-name = "amp_supply"; 51 gpio = <&gpd 4 0>; 52 enable-active-high; 53 54 regulator-min-microvolt = <3300000>; 55 regulator-max-microvolt = <3300000>; 56 }; 57 58 amp: analog-amplifier { 59 compatible = "simple-audio-amplifier"; 60 enable-gpios = <&gpb 29 GPIO_ACTIVE_HIGH>; 61 VCC-supply = <&_supply>; 62 }; 63 64 sound { 65 compatible = "simple-audio-card"; 66 67 simple-audio-card,name = "QI LB60"; 68 simple-audio-card,format = "i2s"; 69 70 simple-audio-card,widgets = 71 "Speaker", "Speaker", 72 "Microphone", "Mic"; 73 simple-audio-card,routing = 74 "MIC", "Mic", 75 "Speaker", "OUTL", 76 "Speaker", "OUTR", 77 "INL", "LOUT", 78 "INR", "ROUT"; 79 80 simple-audio-card,aux-devs = <&>; 81 82 simple-audio-card,bitclock-master = <&dai_codec>; 83 simple-audio-card,frame-master = <&dai_codec>; 84 85 dai_cpu: simple-audio-card,cpu { 86 sound-dai = <&aic>; 87 }; 88 89 dai_codec: simple-audio-card,codec { 90 sound-dai = <&codec>; 91 }; 92 }; 93 94 keys { 95 compatible = "gpio-keys"; 96 97 key { 98 label = "Power"; 99 wakeup-source; 100 linux,code = <KEY_POWER>; 101 gpios = <&gpd 29 GPIO_ACTIVE_LOW>; 102 }; 103 }; 104 105 keyboard { 106 compatible = "gpio-matrix-keypad"; 107 108 col-scan-delay-us = <10>; 109 debounce-delay-ms = <10>; 110 wakeup-source; 111 112 row-gpios = <&gpd 18 0>, <&gpd 19 0>, <&gpd 20 0>, <&gpd 21 0>, 113 <&gpd 22 0>, <&gpd 23 0>, <&gpd 24 0>, <&gpd 26 0>; 114 col-gpios = <&gpc 10 0>, <&gpc 11 0>, <&gpc 12 0>, <&gpc 13 0>, 115 <&gpc 14 0>, <&gpc 15 0>, <&gpc 16 0>, <&gpc 17 0>; 116 gpio-activelow; 117 118 linux,keymap = 119 <MATRIX_KEY(0, 0, KEY_F1)>, /* S2 */ 120 <MATRIX_KEY(0, 1, KEY_F2)>, /* S3 */ 121 <MATRIX_KEY(0, 2, KEY_F3)>, /* S4 */ 122 <MATRIX_KEY(0, 3, KEY_F4)>, /* S5 */ 123 <MATRIX_KEY(0, 4, KEY_F5)>, /* S6 */ 124 <MATRIX_KEY(0, 5, KEY_F6)>, /* S7 */ 125 <MATRIX_KEY(0, 6, KEY_F7)>, /* S8 */ 126 127 <MATRIX_KEY(1, 0, KEY_Q)>, /* S10 */ 128 <MATRIX_KEY(1, 1, KEY_W)>, /* S11 */ 129 <MATRIX_KEY(1, 2, KEY_E)>, /* S12 */ 130 <MATRIX_KEY(1, 3, KEY_R)>, /* S13 */ 131 <MATRIX_KEY(1, 4, KEY_T)>, /* S14 */ 132 <MATRIX_KEY(1, 5, KEY_Y)>, /* S15 */ 133 <MATRIX_KEY(1, 6, KEY_U)>, /* S16 */ 134 <MATRIX_KEY(1, 7, KEY_I)>, /* S17 */ 135 <MATRIX_KEY(2, 0, KEY_A)>, /* S18 */ 136 <MATRIX_KEY(2, 1, KEY_S)>, /* S19 */ 137 <MATRIX_KEY(2, 2, KEY_D)>, /* S20 */ 138 <MATRIX_KEY(2, 3, KEY_F)>, /* S21 */ 139 <MATRIX_KEY(2, 4, KEY_G)>, /* S22 */ 140 <MATRIX_KEY(2, 5, KEY_H)>, /* S23 */ 141 <MATRIX_KEY(2, 6, KEY_J)>, /* S24 */ 142 <MATRIX_KEY(2, 7, KEY_K)>, /* S25 */ 143 <MATRIX_KEY(3, 0, KEY_ESC)>, /* S26 */ 144 <MATRIX_KEY(3, 1, KEY_Z)>, /* S27 */ 145 <MATRIX_KEY(3, 2, KEY_X)>, /* S28 */ 146 <MATRIX_KEY(3, 3, KEY_C)>, /* S29 */ 147 <MATRIX_KEY(3, 4, KEY_V)>, /* S30 */ 148 <MATRIX_KEY(3, 5, KEY_B)>, /* S31 */ 149 <MATRIX_KEY(3, 6, KEY_N)>, /* S32 */ 150 <MATRIX_KEY(3, 7, KEY_M)>, /* S33 */ 151 <MATRIX_KEY(4, 0, KEY_TAB)>, /* S34 */ 152 <MATRIX_KEY(4, 1, KEY_CAPSLOCK)>, /* S35 */ 153 <MATRIX_KEY(4, 2, KEY_BACKSLASH)>, /* S36 */ 154 <MATRIX_KEY(4, 3, KEY_APOSTROPHE)>, /* S37 */ 155 <MATRIX_KEY(4, 4, KEY_COMMA)>, /* S38 */ 156 <MATRIX_KEY(4, 5, KEY_DOT)>, /* S39 */ 157 <MATRIX_KEY(4, 6, KEY_SLASH)>, /* S40 */ 158 <MATRIX_KEY(4, 7, KEY_UP)>, /* S41 */ 159 <MATRIX_KEY(5, 0, KEY_O)>, /* S42 */ 160 <MATRIX_KEY(5, 1, KEY_L)>, /* S43 */ 161 <MATRIX_KEY(5, 2, KEY_EQUAL)>, /* S44 */ 162 <MATRIX_KEY(5, 3, KEY_QI_UPRED)>, /* S45 */ 163 <MATRIX_KEY(5, 4, KEY_SPACE)>, /* S46 */ 164 <MATRIX_KEY(5, 5, KEY_QI_QI)>, /* S47 */ 165 <MATRIX_KEY(5, 6, KEY_RIGHTCTRL)>, /* S48 */ 166 <MATRIX_KEY(5, 7, KEY_LEFT)>, /* S49 */ 167 <MATRIX_KEY(6, 0, KEY_F8)>, /* S50 */ 168 <MATRIX_KEY(6, 1, KEY_P)>, /* S51 */ 169 <MATRIX_KEY(6, 2, KEY_BACKSPACE)>,/* S52 */ 170 <MATRIX_KEY(6, 3, KEY_ENTER)>, /* S53 */ 171 <MATRIX_KEY(6, 4, KEY_QI_VOLUP)>, /* S54 */ 172 <MATRIX_KEY(6, 5, KEY_QI_VOLDOWN)>, /* S55 */ 173 <MATRIX_KEY(6, 6, KEY_DOWN)>, /* S56 */ 174 <MATRIX_KEY(6, 7, KEY_RIGHT)>, /* S57 */ 175 176 <MATRIX_KEY(7, 0, KEY_LEFTSHIFT)>, /* S58 */ 177 <MATRIX_KEY(7, 1, KEY_LEFTALT)>, /* S59 */ 178 <MATRIX_KEY(7, 2, KEY_QI_FN)>; /* S60 */ 179 }; 180 181 spi { 182 compatible = "spi-gpio"; 183 #address-cells = <1>; 184 #size-cells = <0>; 185 186 sck-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>; 187 mosi-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>; 188 cs-gpios = <&gpc 21 GPIO_ACTIVE_LOW>; 189 num-chipselects = <1>; 190 }; 191 192 usb_charger: charger { 193 compatible = "gpio-charger"; 194 charger-type = "usb-sdp"; 195 gpios = <&gpd 28 GPIO_ACTIVE_LOW>; 196 status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>; 197 }; 198 199 simple_battery: battery { 200 compatible = "simple-battery"; 201 voltage-min-design-microvolt = <3600000>; 202 voltage-max-design-microvolt = <4200000>; 203 }; 204 205 pmu { 206 compatible = "ingenic,jz4740-battery"; 207 io-channels = <&adc INGENIC_ADC_BATTERY>; 208 io-channel-names = "battery"; 209 power-supplies = <&usb_charger>; 210 monitored-battery = <&simple_battery>; 211 }; 212 213 hwmon { 214 compatible = "iio-hwmon"; 215 io-channels = <&adc INGENIC_ADC_AUX>; 216 }; 217 218 panel: panel { 219 compatible = "giantplus,gpm940b0"; 220 221 power-supply = <&vcc>; 222 223 port { 224 panel_input: endpoint { 225 remote-endpoint = <&panel_output>; 226 }; 227 }; 228 }; 229 230 usb_phy: usb-phy { 231 compatible = "usb-nop-xceiv"; 232 #phy-cells = <0>; 233 234 vcc-supply = <&vcc>; 235 }; 236}; 237 238&ext { 239 clock-frequency = <12000000>; 240}; 241 242&rtc_dev { 243 system-power-controller; 244}; 245 246&uart0 { 247 pinctrl-names = "default"; 248 pinctrl-0 = <&pins_uart0>; 249}; 250 251&uart1 { 252 status = "disabled"; 253}; 254 255&nemc { 256 nandc: nand-controller@1 { 257 compatible = "ingenic,jz4740-nand"; 258 reg = <1 0 0x4000000>; 259 260 #address-cells = <1>; 261 #size-cells = <0>; 262 263 ecc-engine = <&ecc>; 264 265 pinctrl-names = "default"; 266 pinctrl-0 = <&pins_nemc>; 267 268 rb-gpios = <&gpc 30 GPIO_ACTIVE_HIGH>; 269 270 nand@1 { 271 reg = <1>; 272 273 nand-ecc-step-size = <512>; 274 nand-ecc-strength = <4>; 275 nand-ecc-mode = "hw"; 276 nand-is-boot-medium; 277 nand-on-flash-bbt; 278 279 partitions { 280 compatible = "fixed-partitions"; 281 #address-cells = <1>; 282 #size-cells = <1>; 283 284 partition@0 { 285 label = "boot"; 286 reg = <0x0 0x400000>; 287 }; 288 289 partition@400000 { 290 label = "kernel"; 291 reg = <0x400000 0x400000>; 292 }; 293 294 partition@800000 { 295 label = "rootfs"; 296 reg = <0x800000 0x0>; 297 }; 298 }; 299 }; 300 }; 301}; 302 303&lcd { 304 pinctrl-names = "default"; 305 pinctrl-0 = <&pins_lcd>; 306 307 port { 308 panel_output: endpoint { 309 remote-endpoint = <&panel_input>; 310 }; 311 }; 312}; 313 314&udc { 315 phys = <&usb_phy>; 316}; 317 318&pinctrl { 319 pins_lcd: lcd { 320 function = "lcd"; 321 groups = "lcd-8bit"; 322 }; 323 324 pins_nemc: nemc { 325 function = "nand"; 326 groups = "nand-fre-fwe", "nand-cs1"; 327 }; 328 329 pins_uart0: uart0 { 330 function = "uart0"; 331 groups = "uart0-data"; 332 bias-disable; 333 }; 334 335 pins_mmc: mmc { 336 mmc { 337 function = "mmc"; 338 groups = "mmc-1bit", "mmc-4bit"; 339 bias-disable; 340 }; 341 342 mmc-gpios { 343 pins = "PD0", "PD2"; 344 bias-disable; 345 }; 346 }; 347}; 348 349&mmc { 350 bus-width = <4>; 351 max-frequency = <24000000>; 352 cd-gpios = <&gpd 0 GPIO_ACTIVE_HIGH>; 353 vmmc-supply = <&mmc_power>; 354 355 pinctrl-names = "default"; 356 pinctrl-0 = <&pins_mmc>; 357}; 358 359&tcu { 360 /* 750 kHz for the system timer and clocksource */ 361 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>; 362 assigned-clock-rates = <750000>, <750000>; 363}; 364