From 682d5e4d5ac6c5fae8140070eafea09ee3fd13a8 Mon Sep 17 00:00:00 2001 From: Suguru Saito Date: Mon, 22 Jan 2024 17:53:05 +0900 Subject: [PATCH] arm: brain: fix pwa7400 support --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/imx28-pwa7200.dts | 2 +- arch/arm/boot/dts/imx28-pwa7400.dts | 154 ++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/imx28-pwa7400.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 656e38b573d4..c59b10f3a7d9 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -744,6 +744,7 @@ dtb-$(CONFIG_ARCH_MXS) += \ imx28-ts4600.dtb \ imx28-tx28.dtb \ imx28-pwa7200.dtb \ + imx28-pwa7400.dtb \ imx28-pwsh1.dtb \ imx28-pwsh2.dtb \ imx28-pwsh3.dtb \ diff --git a/arch/arm/boot/dts/imx28-pwa7200.dts b/arch/arm/boot/dts/imx28-pwa7200.dts index b23db566f1d2..48bb8a1a6ecf 100644 --- a/arch/arm/boot/dts/imx28-pwa7200.dts +++ b/arch/arm/boot/dts/imx28-pwa7200.dts @@ -8,7 +8,7 @@ / { // Compatible with: - // PW-G4200, PW-G5200, PW-G5300, PW-A7200, PW-A7300, PW-A7400, + // PW-G4200, PW-G5200, PW-G5300, PW-A7200, PW-A7300, // PW-A9100, PW-A9200, PW-A9300 model = "SHARP Brain PW-A7200 series"; compatible = "sharp,pw-a7200", "sharp,brain", "fsl,imx28"; diff --git a/arch/arm/boot/dts/imx28-pwa7400.dts b/arch/arm/boot/dts/imx28-pwa7400.dts new file mode 100644 index 000000000000..6de6c57c5404 --- /dev/null +++ b/arch/arm/boot/dts/imx28-pwa7400.dts @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: GPL-2.0+ +// +// Copyright 2012 Freescale Semiconductor, Inc. + +/dts-v1/; +#include +#include "imx28-brain.dtsi" + +/ { + model = "SHARP Brain PW-A7400"; + compatible = "sharp,pw-a7400", "sharp,brain", "fsl,imx28"; +}; + +&ssp2 { + status = "okay"; +}; + +&saif1 { + status = "disabled"; +}; + +&pwm { + pinctrl-0 = <&lcd_backlight_pins &slcd_backlight_pin &buzzer_pins>; +}; + +&duart { + status = "disabled"; +}; + +&brainlcd { + status = "okay"; + compatible = "sharp,brainlcd-2g"; + pinctrl-0 = <&lcdif_pins &lcdif_reset_pin>; + + sharp,lcd-width = <480>; + sharp,lcd-height = <320>; + sharp,lcd-width-mm = <152>; + sharp,lcd-height-mm = <73>; + + sharp,en-gpios = + <&gpio0 26 GPIO_ACTIVE_HIGH>, + <&gpio0 27 GPIO_ACTIVE_HIGH>, + <&gpio4 16 GPIO_ACTIVE_HIGH>; +}; + +&slcd { + status = "okay"; +}; + +&keyboard_i2c { + status = "okay"; + symbol-keycode = <0x0c>; /* Page Down */ + keymap = + <0x01 KEY_POWER>, /* Power On / Off */ + <0x07 KEY_ESC>, /* Global Search */ + <0x0d KEY_TAB>, /* Daijirin */ + <0x11 KEY_PAGEUP>, /* Eiwa / Waei */ + <0x15 KEY_PAGEDOWN>, /* Kogo */ + <0x1c KEY_INSERT>, /* Britannica */ + <0x1d KEY_DELETE>, /* Switch */ + /* <0x25 >, */ /* Bookmark */ + /* <0x24 >, */ /* Home */ + /* <0x2b >, */ /* Dictionary Menu */ + <0x02 KEY_Q>, /* Q */ + <0x08 KEY_W>, /* W */ + <0x0e KEY_E>, /* E */ + <0x12 KEY_R>, /* R */ + <0x16 KEY_T>, /* T */ + <0x1e KEY_Y>, /* Y */ + <0x26 KEY_U>, /* U */ + <0x2c KEY_I>, /* I */ + <0x27 KEY_O>, /* O */ + <0x2d KEY_P>, /* P */ + <0x03 KEY_A>, /* A */ + <0x09 KEY_S>, /* S */ + <0x0f KEY_D>, /* D */ + <0x13 KEY_F>, /* F */ + <0x17 KEY_G>, /* G */ + <0x1f KEY_H>, /* H */ + <0x20 KEY_J>, /* J */ + <0x28 KEY_K>, /* K */ + <0x2e KEY_L>, /* L */ + <0x05 KEY_LEFTSHIFT>, /* Function */ + <0x04 KEY_Z>, /* Z */ + <0x0a KEY_X>, /* X */ + <0x10 KEY_C>, /* C */ + <0x14 KEY_V>, /* V */ + <0x18 KEY_B>, /* B */ + <0x21 KEY_N>, /* N */ + <0x29 KEY_M>, /* M */ + <0x2f KEY_MINUS>, /* Minus */ + <0x31 KEY_BACKSPACE>, /* Backward */ + <0x06 KEY_LEFTCTRL>, /* Audio */ + <0x0b KEY_LEFTALT>, /* Page Up */ + /* <0x0c Symbol>, */ /* Page Down */ + <0x19 KEY_SPACE>, /* S Jump */ + <0x1b KEY_ESC>, /* Go Back */ + <0x23 KEY_ENTER>, /* Search / Enter */ + <0x1a KEY_LEFT>, /* Left */ + <0x22 KEY_UP>, /* Up */ + <0x2a KEY_DOWN>, /* Down */ + <0x30 KEY_RIGHT>; /* Right */ + keymap-symbol = + <0x01 KEY_POWER>, /* Power On / Off */ + <0x07 KEY_ESC>, /* Global Search */ + <0x0d KEY_TAB>, /* Daijirin */ + <0x11 KEY_PAGEUP>, /* Eiwa / Waei */ + <0x15 KEY_PAGEDOWN>, /* Kogo */ + <0x1c KEY_INSERT>, /* Britannica */ + <0x1d KEY_DELETE>, /* Switch */ + /* <0x25 >, */ /* Bookmark */ + /* <0x24 >, */ /* Home */ + /* <0x2b >, */ /* Dictionary Menu */ + <0x02 KEY_1>, /* Q */ + <0x08 KEY_2>, /* W */ + <0x0e KEY_3>, /* E */ + <0x12 KEY_4>, /* R */ + <0x16 KEY_5>, /* T */ + <0x1e KEY_6>, /* Y */ + <0x26 KEY_7>, /* U */ + <0x2c KEY_8>, /* I */ + <0x27 KEY_9>, /* O */ + <0x2d KEY_0>, /* P */ + <0x0f KEY_GRAVE>, /* D */ + <0x13 KEY_EQUAL>, /* F */ + <0x17 KEY_BACKSLASH>, /* G */ + <0x1f KEY_SEMICOLON>, /* H */ + <0x20 KEY_APOSTROPHE>, /* J */ + <0x28 KEY_LEFTBRACE>, /* K */ + <0x2e KEY_RIGHTBRACE>, /* L */ + <0x05 KEY_LEFTSHIFT>, /* Function */ + <0x21 KEY_COMMA>, /* N */ + <0x29 KEY_DOT>, /* M */ + <0x2f KEY_SLASH>, /* Minus */ + <0x31 KEY_BACKSPACE>, /* Backward */ + <0x06 KEY_LEFTCTRL>, /* Audio */ + <0x0b KEY_LEFTALT>; /* Page Up */ +}; + +&lcd_touchscreen_i2c { + status = "okay"; +}; + +&slcd_backlight { + status = "okay"; +}; + +&buzzer_cold { + status = "okay"; +}; + +&buzzer { + status = "okay"; +};