The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/mips/ingenic/qi_lb60.dts

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 = <&amp_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 = <&amp>;
   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 };

Cache object: c8a78ac91214ed14865fc2f666130ca5


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.