359 lines
7.5 KiB
Plaintext
359 lines
7.5 KiB
Plaintext
// 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";
|
|
|
|
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",
|
|
"INL", "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>;
|
|
|
|
ingenic,bch-controller = <&ecc>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pins_nemc>;
|
|
|
|
rb-gpios = <&gpc 30 GPIO_ACTIVE_LOW>;
|
|
|
|
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-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>;
|
|
};
|