Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/mips/boot/dts/ingenic/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 7 kB image not shown  

Quelle  qi_lb60.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "jz4740.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/iio/adc/ingenic,adc.h>
#include <dt-bindings/clock/ingenic,tcu.h>
#include <dt-bindings/input/input.h>

#define KEY_QI_QI KEY_F13
#define KEY_QI_UPRED KEY_RIGHTALT
#define KEY_QI_VOLUP KEY_VOLUMEUP
#define KEY_QI_VOLDOWN KEY_VOLUMEDOWN
#define KEY_QI_FN KEY_LEFTCTRL

/ {
 compatible = "qi,lb60", "ingenic,jz4740";
 model = "Ben Nanonote";

 memory {
  device_type = "memory";
  reg = <0x0 0x2000000>;
 };

 chosen {
  stdout-path = &uart0;
 };

 vcc: regulator-0 {
  compatible = "regulator-fixed";
  regulator-name = "vcc";

  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-always-on;
 };

 mmc_power: regulator-1 {
  compatible = "regulator-fixed";
  regulator-name = "mmc_vcc";
  gpio = <&gpd 2 0>;

  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
 };

 amp_supply: regulator-2 {
  compatible = "regulator-fixed";
  regulator-name = "amp_supply";
  gpio = <&gpd 4 0>;
  enable-active-high;

  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
 };

 amp: analog-amplifier {
  compatible = "simple-audio-amplifier";
  enable-gpios = <&gpb 29 GPIO_ACTIVE_HIGH>;
  VCC-supply = <&_supply>;
 };

 sound {
  compatible = "simple-audio-card";

  simple-audio-card,name = "QI LB60";
  simple-audio-card,format = "i2s";

  simple-audio-card,widgets =
   "Speaker", "Speaker",
   "Microphone", "Mic";
  simple-audio-card,routing =
   "MIC", "Mic",
   "Speaker", "OUTL",
   "Speaker", "OUTR",
   "INL", "LOUT",
   "INR", "ROUT";

  simple-audio-card,aux-devs = <&>;

  simple-audio-card,bitclock-master = <&dai_codec>;
  simple-audio-card,frame-master = <&dai_codec>;

  dai_cpu: simple-audio-card,cpu {
   sound-dai = <&aic>;
  };

  dai_codec: simple-audio-card,codec {
   sound-dai = <&codec>;
  };
 };

 keys {
  compatible = "gpio-keys";

  key {
   label = "Power";
   wakeup-source;
   linux,code = <KEY_POWER>;
   gpios = <&gpd 29 GPIO_ACTIVE_LOW>;
  };
 };

 keyboard {
  compatible = "gpio-matrix-keypad";

  col-scan-delay-us = <10>;
  debounce-delay-ms = <10>;
  wakeup-source;

  row-gpios = <&gpd 18 0>, <&gpd 19 0>, <&gpd 20 0>, <&gpd 21 0>,
       <&gpd 22 0>, <&gpd 23 0>, <&gpd 24 0>, <&gpd 26 0>;
  col-gpios = <&gpc 10 0>, <&gpc 11 0>, <&gpc 12 0>, <&gpc 13 0>,
       <&gpc 14 0>, <&gpc 15 0>, <&gpc 16 0>, <&gpc 17 0>;
  gpio-activelow;

  linux,keymap =
   <MATRIX_KEY(0, 0, KEY_F1)>, /* S2 */
   <MATRIX_KEY(0, 1, KEY_F2)>, /* S3 */
   <MATRIX_KEY(0, 2, KEY_F3)>, /* S4 */
   <MATRIX_KEY(0, 3, KEY_F4)>, /* S5 */
   <MATRIX_KEY(0, 4, KEY_F5)>, /* S6 */
   <MATRIX_KEY(0, 5, KEY_F6)>, /* S7 */
   <MATRIX_KEY(0, 6, KEY_F7)>, /* S8 */

   <MATRIX_KEY(1, 0, KEY_Q)>, /* S10 */
   <MATRIX_KEY(1, 1, KEY_W)>, /* S11 */
   <MATRIX_KEY(1, 2, KEY_E)>, /* S12 */
   <MATRIX_KEY(1, 3, KEY_R)>, /* S13 */
   <MATRIX_KEY(1, 4, KEY_T)>, /* S14 */
   <MATRIX_KEY(1, 5, KEY_Y)>, /* S15 */
   <MATRIX_KEY(1, 6, KEY_U)>, /* S16 */
   <MATRIX_KEY(1, 7, KEY_I)>, /* S17 */
   <MATRIX_KEY(2, 0, KEY_A)>, /* S18 */
   <MATRIX_KEY(2, 1, KEY_S)>, /* S19 */
   <MATRIX_KEY(2, 2, KEY_D)>, /* S20 */
   <MATRIX_KEY(2, 3, KEY_F)>, /* S21 */
   <MATRIX_KEY(2, 4, KEY_G)>, /* S22 */
   <MATRIX_KEY(2, 5, KEY_H)>, /* S23 */
   <MATRIX_KEY(2, 6, KEY_J)>, /* S24 */
   <MATRIX_KEY(2, 7, KEY_K)>, /* S25 */
   <MATRIX_KEY(3, 0, KEY_ESC)>, /* S26 */
   <MATRIX_KEY(3, 1, KEY_Z)>, /* S27 */
   <MATRIX_KEY(3, 2, KEY_X)>, /* S28 */
   <MATRIX_KEY(3, 3, KEY_C)>, /* S29 */
   <MATRIX_KEY(3, 4, KEY_V)>, /* S30 */
   <MATRIX_KEY(3, 5, KEY_B)>, /* S31 */
   <MATRIX_KEY(3, 6, KEY_N)>, /* S32 */
   <MATRIX_KEY(3, 7, KEY_M)>, /* S33 */
   <MATRIX_KEY(4, 0, KEY_TAB)>, /* S34 */
   <MATRIX_KEY(4, 1, KEY_CAPSLOCK)>, /* S35 */
   <MATRIX_KEY(4, 2, KEY_BACKSLASH)>, /* S36 */
   <MATRIX_KEY(4, 3, KEY_APOSTROPHE)>, /* S37 */
   <MATRIX_KEY(4, 4, KEY_COMMA)>, /* S38 */
   <MATRIX_KEY(4, 5, KEY_DOT)>, /* S39 */
   <MATRIX_KEY(4, 6, KEY_SLASH)>, /* S40 */
   <MATRIX_KEY(4, 7, KEY_UP)>, /* S41 */
   <MATRIX_KEY(5, 0, KEY_O)>, /* S42 */
   <MATRIX_KEY(5, 1, KEY_L)>, /* S43 */
   <MATRIX_KEY(5, 2, KEY_EQUAL)>, /* S44 */
   <MATRIX_KEY(5, 3, KEY_QI_UPRED)>, /* S45 */
   <MATRIX_KEY(5, 4, KEY_SPACE)>, /* S46 */
   <MATRIX_KEY(5, 5, KEY_QI_QI)>, /* S47 */
   <MATRIX_KEY(5, 6, KEY_RIGHTCTRL)>, /* S48 */
   <MATRIX_KEY(5, 7, KEY_LEFT)>, /* S49 */
   <MATRIX_KEY(6, 0, KEY_F8)>, /* S50 */
   <MATRIX_KEY(6, 1, KEY_P)>, /* S51 */
   <MATRIX_KEY(6, 2, KEY_BACKSPACE)>,/* S52 */
   <MATRIX_KEY(6, 3, KEY_ENTER)>, /* S53 */
   <MATRIX_KEY(6, 4, KEY_QI_VOLUP)>, /* S54 */
   <MATRIX_KEY(6, 5, KEY_QI_VOLDOWN)>, /* S55 */
   <MATRIX_KEY(6, 6, KEY_DOWN)>, /* S56 */
   <MATRIX_KEY(6, 7, KEY_RIGHT)>, /* S57 */

   <MATRIX_KEY(7, 0, KEY_LEFTSHIFT)>, /* S58 */
   <MATRIX_KEY(7, 1, KEY_LEFTALT)>, /* S59 */
   <MATRIX_KEY(7, 2, KEY_QI_FN)>; /* S60 */
 };

 spi {
  compatible = "spi-gpio";
  #address-cells = <1>;
  #size-cells = <0>;

  sck-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>;
  mosi-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>;
  cs-gpios = <&gpc 21 GPIO_ACTIVE_LOW>;
  num-chipselects = <1>;
 };

 usb_charger: charger {
  compatible = "gpio-charger";
  charger-type = "usb-sdp";
  gpios = <&gpd 28 GPIO_ACTIVE_LOW>;
  status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>;
 };

 simple_battery: battery {
  compatible = "simple-battery";
  voltage-min-design-microvolt = <3600000>;
  voltage-max-design-microvolt = <4200000>;
 };

 pmu {
  compatible = "ingenic,jz4740-battery";
  io-channels = <&adc INGENIC_ADC_BATTERY>;
  io-channel-names = "battery";
  power-supplies = <&usb_charger>;
  monitored-battery = <&simple_battery>;
 };

 hwmon {
  compatible = "iio-hwmon";
  io-channels = <&adc INGENIC_ADC_AUX>;
 };

 panel: panel {
  compatible = "giantplus,gpm940b0";

  power-supply = <&vcc>;

  port {
   panel_input: endpoint {
    remote-endpoint = <&panel_output>;
   };
  };
 };

 usb_phy: usb-phy {
  compatible = "usb-nop-xceiv";
  #phy-cells = <0>;

  vcc-supply = <&vcc>;
 };
};

&ext {
 clock-frequency = <12000000>;
};

&rtc_dev {
 system-power-controller;
};

&uart0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pins_uart0>;
};

&uart1 {
 status = "disabled";
};

&nemc {
 nandc: nand-controller@1 {
  compatible = "ingenic,jz4740-nand";
  reg = <1 0 0x4000000>;

  #address-cells = <1>;
  #size-cells = <0>;

  ecc-engine = <&ecc>;

  pinctrl-names = "default";
  pinctrl-0 = <&pins_nemc>;

  rb-gpios = <&gpc 30 GPIO_ACTIVE_HIGH>;

  nand@1 {
   reg = <1>;

   nand-ecc-step-size = <512>;
   nand-ecc-strength = <4>;
   nand-ecc-mode = "hw";
   nand-is-boot-medium;
   nand-on-flash-bbt;

   partitions {
    compatible = "fixed-partitions";
    #address-cells = <1>;
    #size-cells = <1>;

    partition@0 {
     label = "boot";
     reg = <0x0 0x400000>;
    };

    partition@400000 {
     label = "kernel";
     reg = <0x400000 0x400000>;
    };

    partition@800000 {
     label = "rootfs";
     reg = <0x800000 0x0>;
    };
   };
  };
 };
};

&lcd {
 pinctrl-names = "default";
 pinctrl-0 = <&pins_lcd>;

 port {
  panel_output: endpoint {
   remote-endpoint = <&panel_input>;
  };
 };
};

&udc {
 phys = <&usb_phy>;
};

&pinctrl {
 pins_lcd: lcd {
  function = "lcd";
  groups = "lcd-8bit";
 };

 pins_nemc: nemc {
  function = "nand";
  groups = "nand-fre-fwe", "nand-cs1";
 };

 pins_uart0: uart0 {
  function = "uart0";
  groups = "uart0-data";
  bias-disable;
 };

 pins_mmc: mmc {
  mmc {
   function = "mmc";
   groups = "mmc-1bit", "mmc-4bit";
   bias-disable;
  };

  mmc-gpios {
   pins = "PD0", "PD2";
   bias-disable;
  };
 };
};

&mmc {
 bus-width = <4>;
 max-frequency = <24000000>;
 cd-gpios = <&gpd 0 GPIO_ACTIVE_HIGH>;
 vmmc-supply = <&mmc_power>;

 pinctrl-names = "default";
 pinctrl-0 = <&pins_mmc>;
};

&tcu {
 /* 750 kHz for the system timer and clocksource */
 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
 assigned-clock-rates = <750000>, <750000>;
};

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]