Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /dts-v1/;
0003 
0004 #include "jz4740.dtsi"
0005 
0006 #include <dt-bindings/gpio/gpio.h>
0007 #include <dt-bindings/iio/adc/ingenic,adc.h>
0008 #include <dt-bindings/clock/ingenic,tcu.h>
0009 #include <dt-bindings/input/input.h>
0010 
0011 #define KEY_QI_QI       KEY_F13
0012 #define KEY_QI_UPRED    KEY_RIGHTALT
0013 #define KEY_QI_VOLUP    KEY_VOLUMEUP
0014 #define KEY_QI_VOLDOWN  KEY_VOLUMEDOWN
0015 #define KEY_QI_FN       KEY_LEFTCTRL
0016 
0017 / {
0018         compatible = "qi,lb60", "ingenic,jz4740";
0019         model = "Ben Nanonote";
0020 
0021         memory {
0022                 device_type = "memory";
0023                 reg = <0x0 0x2000000>;
0024         };
0025 
0026         chosen {
0027                 stdout-path = &uart0;
0028         };
0029 
0030         vcc: regulator@0 {
0031                 compatible = "regulator-fixed";
0032                 regulator-name = "vcc";
0033 
0034                 regulator-min-microvolt = <3300000>;
0035                 regulator-max-microvolt = <3300000>;
0036                 regulator-always-on;
0037         };
0038 
0039         mmc_power: regulator@1 {
0040                 compatible = "regulator-fixed";
0041                 regulator-name = "mmc_vcc";
0042                 gpio = <&gpd 2 0>;
0043 
0044                 regulator-min-microvolt = <3300000>;
0045                 regulator-max-microvolt = <3300000>;
0046         };
0047 
0048         amp_supply: regulator@2 {
0049                 compatible = "regulator-fixed";
0050                 regulator-name = "amp_supply";
0051                 gpio = <&gpd 4 0>;
0052                 enable-active-high;
0053 
0054                 regulator-min-microvolt = <3300000>;
0055                 regulator-max-microvolt = <3300000>;
0056         };
0057 
0058         amp: analog-amplifier {
0059                 compatible = "simple-audio-amplifier";
0060                 enable-gpios = <&gpb 29 GPIO_ACTIVE_HIGH>;
0061                 VCC-supply = <&amp_supply>;
0062         };
0063 
0064         sound {
0065                 compatible = "simple-audio-card";
0066 
0067                 simple-audio-card,name = "QI LB60";
0068                 simple-audio-card,format = "i2s";
0069 
0070                 simple-audio-card,widgets =
0071                         "Speaker", "Speaker",
0072                         "Microphone", "Mic";
0073                 simple-audio-card,routing =
0074                         "MIC", "Mic",
0075                         "Speaker", "OUTL",
0076                         "Speaker", "OUTR",
0077                         "INL", "LOUT",
0078                         "INR", "ROUT";
0079 
0080                 simple-audio-card,aux-devs = <&amp>;
0081 
0082                 simple-audio-card,bitclock-master = <&dai_codec>;
0083                 simple-audio-card,frame-master = <&dai_codec>;
0084 
0085                 dai_cpu: simple-audio-card,cpu {
0086                         sound-dai = <&aic>;
0087                 };
0088 
0089                 dai_codec: simple-audio-card,codec {
0090                         sound-dai = <&codec>;
0091                 };
0092         };
0093 
0094         keys {
0095                 compatible = "gpio-keys";
0096 
0097                 key {
0098                         label = "Power";
0099                         wakeup-source;
0100                         linux,code = <KEY_POWER>;
0101                         gpios = <&gpd 29 GPIO_ACTIVE_LOW>;
0102                 };
0103         };
0104 
0105         keyboard {
0106                 compatible = "gpio-matrix-keypad";
0107 
0108                 col-scan-delay-us = <10>;
0109                 debounce-delay-ms = <10>;
0110                 wakeup-source;
0111 
0112                 row-gpios = <&gpd 18 0>, <&gpd 19 0>, <&gpd 20 0>, <&gpd 21 0>,
0113                             <&gpd 22 0>, <&gpd 23 0>, <&gpd 24 0>, <&gpd 26 0>;
0114                 col-gpios = <&gpc 10 0>, <&gpc 11 0>, <&gpc 12 0>, <&gpc 13 0>,
0115                             <&gpc 14 0>, <&gpc 15 0>, <&gpc 16 0>, <&gpc 17 0>;
0116                 gpio-activelow;
0117 
0118                 linux,keymap =
0119                         <MATRIX_KEY(0, 0, KEY_F1)>,     /* S2 */
0120                         <MATRIX_KEY(0, 1, KEY_F2)>,     /* S3 */
0121                         <MATRIX_KEY(0, 2, KEY_F3)>,     /* S4 */
0122                         <MATRIX_KEY(0, 3, KEY_F4)>,     /* S5 */
0123                         <MATRIX_KEY(0, 4, KEY_F5)>,     /* S6 */
0124                         <MATRIX_KEY(0, 5, KEY_F6)>,     /* S7 */
0125                         <MATRIX_KEY(0, 6, KEY_F7)>,     /* S8 */
0126 
0127                         <MATRIX_KEY(1, 0, KEY_Q)>,      /* S10 */
0128                         <MATRIX_KEY(1, 1, KEY_W)>,      /* S11 */
0129                         <MATRIX_KEY(1, 2, KEY_E)>,      /* S12 */
0130                         <MATRIX_KEY(1, 3, KEY_R)>,      /* S13 */
0131                         <MATRIX_KEY(1, 4, KEY_T)>,      /* S14 */
0132                         <MATRIX_KEY(1, 5, KEY_Y)>,      /* S15 */
0133                         <MATRIX_KEY(1, 6, KEY_U)>,      /* S16 */
0134                         <MATRIX_KEY(1, 7, KEY_I)>,      /* S17 */
0135                         <MATRIX_KEY(2, 0, KEY_A)>,      /* S18 */
0136                         <MATRIX_KEY(2, 1, KEY_S)>,      /* S19 */
0137                         <MATRIX_KEY(2, 2, KEY_D)>,      /* S20 */
0138                         <MATRIX_KEY(2, 3, KEY_F)>,      /* S21 */
0139                         <MATRIX_KEY(2, 4, KEY_G)>,      /* S22 */
0140                         <MATRIX_KEY(2, 5, KEY_H)>,      /* S23 */
0141                         <MATRIX_KEY(2, 6, KEY_J)>,      /* S24 */
0142                         <MATRIX_KEY(2, 7, KEY_K)>,      /* S25 */
0143                         <MATRIX_KEY(3, 0, KEY_ESC)>,    /* S26 */
0144                         <MATRIX_KEY(3, 1, KEY_Z)>,      /* S27 */
0145                         <MATRIX_KEY(3, 2, KEY_X)>,      /* S28 */
0146                         <MATRIX_KEY(3, 3, KEY_C)>,      /* S29 */
0147                         <MATRIX_KEY(3, 4, KEY_V)>,      /* S30 */
0148                         <MATRIX_KEY(3, 5, KEY_B)>,      /* S31 */
0149                         <MATRIX_KEY(3, 6, KEY_N)>,      /* S32 */
0150                         <MATRIX_KEY(3, 7, KEY_M)>,      /* S33 */
0151                         <MATRIX_KEY(4, 0, KEY_TAB)>,    /* S34 */
0152                         <MATRIX_KEY(4, 1, KEY_CAPSLOCK)>,       /* S35 */
0153                         <MATRIX_KEY(4, 2, KEY_BACKSLASH)>,      /* S36 */
0154                         <MATRIX_KEY(4, 3, KEY_APOSTROPHE)>,     /* S37 */
0155                         <MATRIX_KEY(4, 4, KEY_COMMA)>,  /* S38 */
0156                         <MATRIX_KEY(4, 5, KEY_DOT)>,    /* S39 */
0157                         <MATRIX_KEY(4, 6, KEY_SLASH)>,  /* S40 */
0158                         <MATRIX_KEY(4, 7, KEY_UP)>,     /* S41 */
0159                         <MATRIX_KEY(5, 0, KEY_O)>,      /* S42 */
0160                         <MATRIX_KEY(5, 1, KEY_L)>,      /* S43 */
0161                         <MATRIX_KEY(5, 2, KEY_EQUAL)>,  /* S44 */
0162                         <MATRIX_KEY(5, 3, KEY_QI_UPRED)>,       /* S45 */
0163                         <MATRIX_KEY(5, 4, KEY_SPACE)>,  /* S46 */
0164                         <MATRIX_KEY(5, 5, KEY_QI_QI)>,  /* S47 */
0165                         <MATRIX_KEY(5, 6, KEY_RIGHTCTRL)>,      /* S48 */
0166                         <MATRIX_KEY(5, 7, KEY_LEFT)>,   /* S49 */
0167                         <MATRIX_KEY(6, 0, KEY_F8)>,     /* S50 */
0168                         <MATRIX_KEY(6, 1, KEY_P)>,      /* S51 */
0169                         <MATRIX_KEY(6, 2, KEY_BACKSPACE)>,/* S52 */
0170                         <MATRIX_KEY(6, 3, KEY_ENTER)>,  /* S53 */
0171                         <MATRIX_KEY(6, 4, KEY_QI_VOLUP)>,       /* S54 */
0172                         <MATRIX_KEY(6, 5, KEY_QI_VOLDOWN)>,     /* S55 */
0173                         <MATRIX_KEY(6, 6, KEY_DOWN)>,   /* S56 */
0174                         <MATRIX_KEY(6, 7, KEY_RIGHT)>,  /* S57 */
0175 
0176                         <MATRIX_KEY(7, 0, KEY_LEFTSHIFT)>,      /* S58 */
0177                         <MATRIX_KEY(7, 1, KEY_LEFTALT)>, /* S59 */
0178                         <MATRIX_KEY(7, 2, KEY_QI_FN)>;  /* S60 */
0179         };
0180 
0181         spi {
0182                 compatible = "spi-gpio";
0183                 #address-cells = <1>;
0184                 #size-cells = <0>;
0185 
0186                 sck-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>;
0187                 mosi-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>;
0188                 cs-gpios = <&gpc 21 GPIO_ACTIVE_LOW>;
0189                 num-chipselects = <1>;
0190         };
0191 
0192         usb_charger: charger {
0193                 compatible = "gpio-charger";
0194                 charger-type = "usb-sdp";
0195                 gpios = <&gpd 28 GPIO_ACTIVE_LOW>;
0196                 status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>;
0197         };
0198 
0199         simple_battery: battery {
0200                 compatible = "simple-battery";
0201                 voltage-min-design-microvolt = <3600000>;
0202                 voltage-max-design-microvolt = <4200000>;
0203         };
0204 
0205         pmu {
0206                 compatible = "ingenic,jz4740-battery";
0207                 io-channels = <&adc INGENIC_ADC_BATTERY>;
0208                 io-channel-names = "battery";
0209                 power-supplies = <&usb_charger>;
0210                 monitored-battery = <&simple_battery>;
0211         };
0212 
0213         hwmon {
0214                 compatible = "iio-hwmon";
0215                 io-channels = <&adc INGENIC_ADC_AUX>;
0216         };
0217 
0218         panel: panel {
0219                 compatible = "giantplus,gpm940b0";
0220 
0221                 power-supply = <&vcc>;
0222 
0223                 port {
0224                         panel_input: endpoint {
0225                                 remote-endpoint = <&panel_output>;
0226                         };
0227                 };
0228         };
0229 
0230         usb_phy: usb-phy {
0231                 compatible = "usb-nop-xceiv";
0232                 #phy-cells = <0>;
0233 
0234                 vcc-supply = <&vcc>;
0235         };
0236 };
0237 
0238 &ext {
0239         clock-frequency = <12000000>;
0240 };
0241 
0242 &rtc_dev {
0243         system-power-controller;
0244 };
0245 
0246 &uart0 {
0247         pinctrl-names = "default";
0248         pinctrl-0 = <&pins_uart0>;
0249 };
0250 
0251 &uart1 {
0252         status = "disabled";
0253 };
0254 
0255 &nemc {
0256         nandc: nand-controller@1 {
0257                 compatible = "ingenic,jz4740-nand";
0258                 reg = <1 0 0x4000000>;
0259 
0260                 #address-cells = <1>;
0261                 #size-cells = <0>;
0262 
0263                 ecc-engine = <&ecc>;
0264 
0265                 pinctrl-names = "default";
0266                 pinctrl-0 = <&pins_nemc>;
0267 
0268                 rb-gpios = <&gpc 30 GPIO_ACTIVE_HIGH>;
0269 
0270                 nand@1 {
0271                         reg = <1>;
0272 
0273                         nand-ecc-step-size = <512>;
0274                         nand-ecc-strength = <4>;
0275                         nand-ecc-mode = "hw";
0276                         nand-is-boot-medium;
0277                         nand-on-flash-bbt;
0278 
0279                         partitions {
0280                                 compatible = "fixed-partitions";
0281                                 #address-cells = <1>;
0282                                 #size-cells = <1>;
0283 
0284                                 partition@0 {
0285                                         label = "boot";
0286                                         reg = <0x0 0x400000>;
0287                                 };
0288 
0289                                 partition@400000 {
0290                                         label = "kernel";
0291                                         reg = <0x400000 0x400000>;
0292                                 };
0293 
0294                                 partition@800000 {
0295                                         label = "rootfs";
0296                                         reg = <0x800000 0x0>;
0297                                 };
0298                         };
0299                 };
0300         };
0301 };
0302 
0303 &lcd {
0304         pinctrl-names = "default";
0305         pinctrl-0 = <&pins_lcd>;
0306 
0307         port {
0308                 panel_output: endpoint {
0309                         remote-endpoint = <&panel_input>;
0310                 };
0311         };
0312 };
0313 
0314 &udc {
0315         phys = <&usb_phy>;
0316 };
0317 
0318 &pinctrl {
0319         pins_lcd: lcd {
0320                 function = "lcd";
0321                 groups = "lcd-8bit";
0322         };
0323 
0324         pins_nemc: nemc {
0325                 function = "nand";
0326                 groups = "nand-fre-fwe", "nand-cs1";
0327         };
0328 
0329         pins_uart0: uart0 {
0330                 function = "uart0";
0331                 groups = "uart0-data";
0332                 bias-disable;
0333         };
0334 
0335         pins_mmc: mmc {
0336                 mmc {
0337                         function = "mmc";
0338                         groups = "mmc-1bit", "mmc-4bit";
0339                         bias-disable;
0340                 };
0341 
0342                 mmc-gpios {
0343                         pins = "PD0", "PD2";
0344                         bias-disable;
0345                 };
0346         };
0347 };
0348 
0349 &mmc {
0350         bus-width = <4>;
0351         max-frequency = <24000000>;
0352         cd-gpios = <&gpd 0 GPIO_ACTIVE_HIGH>;
0353         vmmc-supply = <&mmc_power>;
0354 
0355         pinctrl-names = "default";
0356         pinctrl-0 = <&pins_mmc>;
0357 };
0358 
0359 &tcu {
0360         /* 750 kHz for the system timer and clocksource */
0361         assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
0362         assigned-clock-rates = <750000>, <750000>;
0363 };