123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- // SPDX-License-Identifier: GPL-2.0
- /dts-v1/;
- #include "jz4725b.dtsi"
- #include <dt-bindings/gpio/gpio.h>
- #include <dt-bindings/iio/adc/ingenic,adc.h>
- #include <dt-bindings/input/linux-event-codes.h>
- / {
- compatible = "ylm,rs90", "ingenic,jz4725b";
- model = "RS-90";
- memory {
- device_type = "memory";
- reg = <0x0 0x2000000>;
- };
- reserved-memory {
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- vmem: video-memory@1f00000 {
- compatible = "shared-dma-pool";
- reg = <0x1f00000 0x100000>;
- reusable;
- };
- };
- vcc: regulator {
- compatible = "regulator-fixed";
- regulator-name = "vcc";
- regulaor-min-microvolt = <3300000>;
- regulaor-max-microvolt = <3300000>;
- regulator-always-on;
- };
- backlight: backlight {
- compatible = "pwm-backlight";
- pwms = <&pwm 3 40000 0>;
- brightness-levels = <0 16 32 48 64 80 112 144 192 255>;
- default-brightness-level = <8>;
- pinctrl-names = "default";
- pinctrl-0 = <&pins_pwm3>;
- power-supply = <&vcc>;
- };
- keys@0 {
- compatible = "gpio-keys";
- key-0 {
- label = "D-pad up";
- linux,code = <KEY_UP>;
- gpios = <&gpc 10 GPIO_ACTIVE_LOW>;
- };
- key-1 {
- label = "D-pad down";
- linux,code = <KEY_DOWN>;
- gpios = <&gpc 11 GPIO_ACTIVE_LOW>;
- };
- key-2 {
- label = "D-pad left";
- linux,code = <KEY_LEFT>;
- gpios = <&gpb 31 GPIO_ACTIVE_LOW>;
- };
- key-3 {
- label = "D-pad right";
- linux,code = <KEY_RIGHT>;
- gpios = <&gpd 21 GPIO_ACTIVE_LOW>;
- };
- key-4 {
- label = "Button A";
- linux,code = <KEY_LEFTCTRL>;
- gpios = <&gpc 31 GPIO_ACTIVE_LOW>;
- };
- key-5 {
- label = "Button B";
- linux,code = <KEY_LEFTALT>;
- gpios = <&gpc 30 GPIO_ACTIVE_LOW>;
- };
- key-6 {
- label = "Right shoulder button";
- linux,code = <KEY_BACKSPACE>;
- gpios = <&gpc 12 GPIO_ACTIVE_LOW>;
- debounce-interval = <10>;
- };
- key-7 {
- label = "Start button";
- linux,code = <KEY_ENTER>;
- gpios = <&gpd 17 GPIO_ACTIVE_LOW>;
- };
- };
- keys@1 {
- compatible = "adc-keys";
- io-channels = <&adc INGENIC_ADC_AUX>;
- io-channel-names = "buttons";
- keyup-threshold-microvolt = <1400000>;
- poll-interval = <30>;
- key@0 {
- label = "Left shoulder button";
- linux,code = <KEY_TAB>;
- press-threshold-microvolt = <800000>;
- };
- key@1 {
- label = "Select button";
- linux,code = <KEY_ESC>;
- press-threshold-microvolt = <1100000>;
- };
- };
- amp: analog-amplifier {
- compatible = "simple-audio-amplifier";
- enable-gpios = <&gpc 15 GPIO_ACTIVE_HIGH>;
- VCC-supply = <&vcc>;
- };
- sound {
- compatible = "simple-audio-card";
- simple-audio-card,name = "rs90-audio";
- simple-audio-card,format = "i2s";
- simple-audio-card,widgets =
- "Speaker", "Speaker",
- "Headphone", "Headphones";
- simple-audio-card,routing =
- "INL", "LHPOUT",
- "INR", "RHPOUT",
- "Headphones", "LHPOUT",
- "Headphones", "RHPOUT",
- "Speaker", "OUTL",
- "Speaker", "OUTR";
- simple-audio-card,pin-switches = "Speaker";
- simple-audio-card,hp-det-gpio = <&gpd 16 GPIO_ACTIVE_LOW>;
- 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>;
- };
- };
- usb_phy: usb-phy {
- compatible = "usb-nop-xceiv";
- #phy-cells = <0>;
- clocks = <&cgu JZ4725B_CLK_UDC_PHY>;
- clock-names = "main_clk";
- vcc-supply = <&vcc>;
- };
- panel {
- compatible = "sharp,ls020b1dd01d";
- backlight = <&backlight>;
- power-supply = <&vcc>;
- port {
- panel_input: endpoint {
- remote-endpoint = <&panel_output>;
- };
- };
- };
- };
- &ext {
- clock-frequency = <12000000>;
- };
- &rtc_dev {
- system-power-controller;
- };
- &udc {
- phys = <&usb_phy>;
- };
- &pinctrl {
- pins_mmc1: mmc1 {
- function = "mmc1";
- groups = "mmc1-1bit";
- };
- pins_nemc: nemc {
- function = "nand";
- groups = "nand-cs1", "nand-cle-ale", "nand-fre-fwe";
- };
- pins_pwm3: pwm3 {
- function = "pwm3";
- groups = "pwm3";
- bias-disable;
- };
- pins_lcd: lcd {
- function = "lcd";
- groups = "lcd-8bit", "lcd-16bit", "lcd-special";
- };
- };
- &mmc0 {
- status = "disabled";
- };
- &mmc1 {
- bus-width = <1>;
- max-frequency = <48000000>;
- pinctrl-names = "default";
- pinctrl-0 = <&pins_mmc1>;
- cd-gpios = <&gpc 20 GPIO_ACTIVE_LOW>;
- };
- &uart {
- /*
- * The pins for RX/TX are used for the right shoulder button and
- * backlight PWM.
- */
- status = "disabled";
- };
- &nemc {
- nandc: nand-controller@1 {
- compatible = "ingenic,jz4725b-nand";
- reg = <1 0 0x4000000>;
- #address-cells = <1>;
- #size-cells = <0>;
- ecc-engine = <&bch>;
- ingenic,nemc-tAS = <10>;
- ingenic,nemc-tAH = <5>;
- ingenic,nemc-tBP = <10>;
- ingenic,nemc-tAW = <15>;
- ingenic,nemc-tSTRV = <100>;
- pinctrl-names = "default";
- pinctrl-0 = <&pins_nemc>;
- rb-gpios = <&gpc 27 GPIO_ACTIVE_HIGH>;
- nand@1 {
- reg = <1>;
- nand-ecc-step-size = <512>;
- nand-ecc-strength = <8>;
- 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 = "bootloader";
- reg = <0x0 0x20000>;
- };
- partition@20000 {
- label = "system";
- reg = <0x20000 0x0>;
- };
- };
- };
- };
- };
- &cgu {
- /* Use 32kHz oscillator as the parent of the RTC clock */
- assigned-clocks = <&cgu JZ4725B_CLK_RTC>;
- assigned-clock-parents = <&cgu JZ4725B_CLK_OSC32K>;
- };
- &tcu {
- /*
- * 750 kHz for the system timer and clocksource, and use RTC as the
- * parent for the watchdog clock.
- */
- assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>;
- assigned-clock-parents = <0>, <0>, <&cgu JZ4725B_CLK_RTC>;
- assigned-clock-rates = <750000>, <750000>;
- };
- &lcd {
- memory-region = <&vmem>;
- pinctrl-names = "default";
- pinctrl-0 = <&pins_lcd>;
- };
- &lcd_ports {
- port@0 {
- reg = <0>;
- panel_output: endpoint {
- remote-endpoint = <&panel_input>;
- };
- };
- };
|