[PATCH 7/9] ARM: SPMP8000: Add dts file of SPMP8000 SoC and Letcool board
Zoltan Devai
zoss at devai.org
Sun Oct 9 12:36:10 EDT 2011
Signed-off-by: Zoltan Devai <zoss at devai.org>
---
arch/arm/boot/dts/spmp8000-letcool.dts | 163 ++++++++++++++++++++++++++++++
arch/arm/boot/dts/spmp8000.dtsi | 169 ++++++++++++++++++++++++++++++++
2 files changed, 332 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/boot/dts/spmp8000-letcool.dts
create mode 100644 arch/arm/boot/dts/spmp8000.dtsi
diff --git a/arch/arm/boot/dts/spmp8000-letcool.dts b/arch/arm/boot/dts/spmp8000-letcool.dts
new file mode 100644
index 0000000..270f00e
--- /dev/null
+++ b/arch/arm/boot/dts/spmp8000-letcool.dts
@@ -0,0 +1,163 @@
+/dts-v1/;
+/include/ "spmp8000.dtsi"
+/ {
+ model = "Letcool N350JP handheld game console";
+ compatible = "gameware,letcool", "sunplus,spmp8000";
+
+ memory {
+ reg = <0x00000000 0x02000000>;
+ };
+
+ chosen {
+ bootargs = "console=tty0 mem=32M root=/dev/mmcblk0p1 console=ttyS0,115200 rootdelay=5 loglevel=8 earlyprintk";
+ linux,stdout-path = &uart0;
+ };
+
+ pwm-backlight {
+ compatible = "pwm-backlight";
+ reg = <0 0>; /* Hack to pass platform data as AUXDATA */
+ };
+
+ plat {
+ plat-apb {
+ mmc at 92B0B000 {
+ cd-gpios = <&gpio0 9 0>;
+ };
+ };
+ };
+
+ armapb {
+ gpio at 9000A000 {
+ polarity = <0>;
+ sticky = <0>;
+ direction = <0xFFFFFFFF>;
+ debounce-val = <100>;
+ debounce = <0xFFFFFFFF>;
+ };
+
+ gpio at 9000A004 {
+ polarity = <0>;
+ sticky = <0>;
+ direction = <0xFFFFFFFF>;
+ debounce-val = <100>;
+ debounce = <0xFFFFFFFF>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ autorepeat;
+
+ up {
+ label = "D-Pad Up";
+ gpios = <&gpio0 0 0>;
+ linux,code = <103>; /* KEY_UP */
+ gpio-key,wakeup;
+ };
+
+ right {
+ label = "D-Pad Right";
+ gpios = <&gpio0 1 0>;
+ linux,code = <106>; /* KEY_RIGHT */
+ gpio-key,wakeup;
+ };
+
+ down {
+ label = "D-Pad Down";
+ gpios = <&gpio0 2 0>;
+ linux,code = <108>; /* KEY_DOWN */
+ gpio-key,wakeup;
+ };
+
+ left {
+ label = "D-Pad Left";
+ gpios = <&gpio0 3 0>;
+ linux,code = <105>; /* KEY_LEFT */
+ gpio-key,wakeup;
+ };
+
+ button-x {
+ label = "Button X";
+ gpios = <&gpio0 4 0>;
+ linux,code = <45>; /* KEY_X */
+ gpio-key,wakeup;
+ };
+
+ button-a {
+ label = "Button A";
+ gpios = <&gpio0 5 0>;
+ linux,code = <30>; /* KEY_A */
+ gpio-key,wakeup;
+ };
+
+ button-y {
+ label = "Button Y";
+ gpios = <&gpio0 6 0>;
+ linux,code = <21>; /* KEY_Y */
+ gpio-key,wakeup;
+ };
+
+ button-b {
+ label = "Button B";
+ gpios = <&gpio0 7 0>;
+ linux,code = <48>; /* KEY_B */
+ gpio-key,wakeup;
+ };
+ };
+
+ analog-keys {
+ compatible = "spmp8000-ak";
+
+ channel-1 {
+ adc-channel = <1>;
+ idle-value = <0>;
+ tolerance = <10>;
+
+ button-left {
+ adc-value = <0x00B0>;
+ linux,code = <0x110>; /* BTN_LEFT */
+ };
+
+ button-right {
+ adc-value = <0xFEAB>;
+ linux,code = <0x111>; /* BTN_RIGHT */
+ };
+
+ button-volup {
+ adc-value = <0x015E>;
+ linux,code = <115>; /* KEY_VOLUMEUP */
+ };
+
+ button-voldown {
+ adc-value = <0xFF56>;
+ linux,code = <114>; /* KEY_VOLUMEDOWN */
+ };
+ };
+
+ channel-3 {
+ adc-channel = <3>;
+ idle-value = <5>;
+ tolerance = <10>;
+
+ button-select {
+ adc-value = <0x0113>;
+ linux,code = <0x13a>; /* BTN_SELECT */
+ };
+
+ button-start {
+ adc-value = <0xFEF7>;
+ linux,code = <0x13b>; /* BTN_START */
+ };
+ };
+
+ };
+
+ snd-card {
+ compatible = "spmp8000-sndcard";
+ hp-detect-gpios = <&gpio0 8 0>;
+ spk-enable-gpios = <&gpio3 12 0>;
+ };
+
+};
diff --git a/arch/arm/boot/dts/spmp8000.dtsi b/arch/arm/boot/dts/spmp8000.dtsi
new file mode 100644
index 0000000..74764b2c6
--- /dev/null
+++ b/arch/arm/boot/dts/spmp8000.dtsi
@@ -0,0 +1,169 @@
+/ {
+ compatible = "sunplus,spmp8000";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ armapb {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x90000000 0x90000000 0x10000>;
+
+ timer at 90000000 {
+ compatible = "sunplus,spmp8000-timer";
+ reg = <0x90000000 0x1000>;
+ interrupt-parent = <&vic0>;
+ interrupts = <7 8 9>;
+ };
+
+ pwm at 90000000 {
+ compatible = "sunplus,spmp8000-pwm";
+ reg = <0x90000000 0x1000>;
+ id = <0>;
+ };
+
+ gpio3: gpio at 90005070 {
+ compatible = "basic-mmio-gpio"; /* No DT binding yet */
+ reg = <0x90005070 0xC>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ gpio0: gpio at 9000A000 {
+ compatible = "sunplus,spmp8000-gpio";
+ reg = <0x9000A000 0x1000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ bits = <16>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ gpio1: gpio at 9000A004 {
+ compatible = "sunplus,spmp8000-gpio";
+ reg = <0x9000A004 0x1000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <1>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ bits = <32>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+ };
+
+ armahb {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x90010000 0x90010000 0x20000>;
+
+ vic0: interrupt-controller at 90010000 {
+ compatible = "arm,pl192";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ reg = <0x90010000 0x1000>;
+ };
+
+ vic1: interrupt-controller at 900020000 {
+ compatible = "arm,pl192";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ reg = <0x90020000 0x1000>;
+ };
+ };
+
+ plat {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x92000000 0x92000000 0x1000000>;
+
+ plat-apb {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x92B00000 0x92B00000 0x10000>;
+
+ dma at 92B00000 {
+ compatible = "sunplus,spmp8000-apbdma-c";
+ reg = <0x92B00000 0x1000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <28 29 30 31>;
+ };
+
+ uart0: uart-c0 at 92B04000 {
+ compatible = "ns16550a";
+ reg = <0x92B04000 0x1000>;
+ clock-frequency = <2076923>;
+ interrupt-parent = <&vic1>;
+ interrupts = <24>;
+ current-speed = <115200>;
+ reg-shift = <2>;
+ };
+
+ mmc at 92B0B000 {
+ compatible = "sunplus,mmc";
+ reg = <0x92B0B000 0x1000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <8>;
+ };
+ };
+ };
+
+ axi {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x93000000 0x93000000 0x800000>;
+
+ fb at 93000000 {
+ compatible = "sunplus,spmp8000-lcd";
+ reg = <0x93000000 0x1000>;
+ interrupt-parent = <&vic0>;
+ interrupts = <23>;
+ };
+
+ axi-apb {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x93010000 0x93010000 0x10000>;
+
+ dma at 93010000 {
+ compatible = "sunplus,spmp8000-apbdma-a";
+ reg = <0x93010000 0x1000>;
+ interrupt-parent = <&vic0>;
+ interrupts = <24 25 26 27>;
+ };
+
+ i2s at 93012000 {
+ compatible = "sunplus,spmp8000-i2s-tx";
+ reg = <0x93012000 0x1000>;
+ interrupt-parent = <&vic0>;
+ interrupts = <13>;
+ };
+
+ i2s at 9301D000 {
+ compatible = "sunplus,spmp8000-i2s-rx";
+ reg = <0x9301D000 0x1000>;
+ interrupt-parent = <&vic0>;
+ interrupts = <14>;
+ };
+
+ adc at 9301F000 {
+ compatible = "sunplus,spmp8000-adc";
+ reg = <0x9301F000 0x20>;
+ interrupt-parent = <&vic1>;
+ interrupts = <27>;
+ };
+
+ codec at 9301F020 {
+ compatible = "sunplus,spmp8000-codec";
+ reg = <0x9301F020 0x20>;
+ };
+ };
+ };
+};
--
1.7.4.1
More information about the linux-arm-kernel
mailing list