diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2013-11-14 15:04:33 +0530 |
---|---|---|
committer | Laxman Dewangan <ldewangan@nvidia.com> | 2013-11-18 01:40:29 -0800 |
commit | 937708071ba6a3040f162a49952b16bbf55333ac (patch) | |
tree | 6829170c4ff7c8ab7a740e55eb22f9936f184c4f /arch | |
parent | 490033e9f1babfa73e3942d51bd08aada7a34782 (diff) |
ARM: tegra: move key driver to DT for ardbeg, TN8 and Laguna
Change-Id: I3a8380f3789aa272335fc373f3cff3d80ba81f08
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/331048
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/tegra124-ardbeg-a03-00.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-ardbeg.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-e1782_sku1100.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-e1791.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-laguna.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-platforms/tegra124-e1780-keys.dtsi | 39 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8-a03-00.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8-battery.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8-e1769.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8-fury.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8-generic.dtsi | 35 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8.dts | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra124-tn8b-generic.dtsi | 35 | ||||
-rw-r--r-- | arch/arm/mach-tegra/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ardbeg-kbc.c | 91 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ardbeg.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ardbeg.h | 1 |
17 files changed, 49 insertions, 165 deletions
diff --git a/arch/arm/boot/dts/tegra124-ardbeg-a03-00.dts b/arch/arm/boot/dts/tegra124-ardbeg-a03-00.dts index 2d37c74b0d05..c620461f301e 100644 --- a/arch/arm/boot/dts/tegra124-ardbeg-a03-00.dts +++ b/arch/arm/boot/dts/tegra124-ardbeg-a03-00.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124-ardbeg-a03.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 Ardbeg"; diff --git a/arch/arm/boot/dts/tegra124-ardbeg.dts b/arch/arm/boot/dts/tegra124-ardbeg.dts index fcfc01f795de..c1efd38a7f12 100644 --- a/arch/arm/boot/dts/tegra124-ardbeg.dts +++ b/arch/arm/boot/dts/tegra124-ardbeg.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 Ardbeg"; diff --git a/arch/arm/boot/dts/tegra124-e1782_sku1100.dts b/arch/arm/boot/dts/tegra124-e1782_sku1100.dts index 797542472c17..a8bb353544ec 100644 --- a/arch/arm/boot/dts/tegra124-e1782_sku1100.dts +++ b/arch/arm/boot/dts/tegra124-e1782_sku1100.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 Ardbeg"; diff --git a/arch/arm/boot/dts/tegra124-e1791.dts b/arch/arm/boot/dts/tegra124-e1791.dts index 2899273c3c74..2071bc1aff57 100644 --- a/arch/arm/boot/dts/tegra124-e1791.dts +++ b/arch/arm/boot/dts/tegra124-e1791.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { diff --git a/arch/arm/boot/dts/tegra124-laguna.dts b/arch/arm/boot/dts/tegra124-laguna.dts index 68a0c6b44898..5562485d1292 100644 --- a/arch/arm/boot/dts/tegra124-laguna.dts +++ b/arch/arm/boot/dts/tegra124-laguna.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 Laguna"; diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-e1780-keys.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-e1780-keys.dtsi new file mode 100644 index 000000000000..3e8d9df20549 --- /dev/null +++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-e1780-keys.dtsi @@ -0,0 +1,39 @@ +#include <dt-bindings/gpio/tegra-gpio.h> +#include <dt-bindings/input/input.h> + +/ { + gpio-keys { + compatible = "gpio-keys"; + + camera_focus { + label = "Camera Focus"; + gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>; + linux,code = <KEY_CAMERA_FOCUS>; + }; + + home { + label = "Home"; + gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; + linux,code = <KEY_HOME>; + }; + + power { + label = "Power"; + gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; + linux,code = <KEY_POWER>; + gpio-key,wakeup; + }; + + volume_down { + label = "Volume Down"; + gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>; + linux,code = <KEY_VOLUMEDOWN>; + }; + + volume_up { + label = "Volume Up"; + gpios = <&gpio TEGRA_GPIO(Q, 6) GPIO_ACTIVE_LOW>; + linux,code = <KEY_VOLUMEUP>; + }; + }; +}; diff --git a/arch/arm/boot/dts/tegra124-tn8-a03-00.dts b/arch/arm/boot/dts/tegra124-tn8-a03-00.dts index 2360795121b4..f2b6c7961f12 100644 --- a/arch/arm/boot/dts/tegra124-tn8-a03-00.dts +++ b/arch/arm/boot/dts/tegra124-tn8-a03-00.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124-tn8-generic.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 TN8"; diff --git a/arch/arm/boot/dts/tegra124-tn8-battery.dts b/arch/arm/boot/dts/tegra124-tn8-battery.dts index f8d2d4c230b2..5399e1079314 100644 --- a/arch/arm/boot/dts/tegra124-tn8-battery.dts +++ b/arch/arm/boot/dts/tegra124-tn8-battery.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124-tn8-generic.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 TN8"; diff --git a/arch/arm/boot/dts/tegra124-tn8-e1769.dts b/arch/arm/boot/dts/tegra124-tn8-e1769.dts index bc01730e76b3..0a90cdee1911 100644 --- a/arch/arm/boot/dts/tegra124-tn8-e1769.dts +++ b/arch/arm/boot/dts/tegra124-tn8-e1769.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124-tn8b-generic.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 TN8"; diff --git a/arch/arm/boot/dts/tegra124-tn8-fury.dts b/arch/arm/boot/dts/tegra124-tn8-fury.dts index 2baae19f422b..ff20b67522f8 100644 --- a/arch/arm/boot/dts/tegra124-tn8-fury.dts +++ b/arch/arm/boot/dts/tegra124-tn8-fury.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124-tn8-generic.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 tn8 fury"; diff --git a/arch/arm/boot/dts/tegra124-tn8-generic.dtsi b/arch/arm/boot/dts/tegra124-tn8-generic.dtsi index 871f09049149..17fe31cb0ba5 100644 --- a/arch/arm/boot/dts/tegra124-tn8-generic.dtsi +++ b/arch/arm/boot/dts/tegra124-tn8-generic.dtsi @@ -144,41 +144,6 @@ spi-max-frequency = <25000000>; }; - gpio-keys { - compatible = "gpio-keys"; - - camera_focus { - label = "Camera Focus"; - gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>; - linux,code = <KEY_CAMERA_FOCUS>; - }; - - home { - label = "Home"; - gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; - linux,code = <KEY_HOME>; - }; - - power { - label = "Power"; - gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; - linux,code = <KEY_POWER>; - gpio-key,wakeup; - }; - - volume_down { - label = "Volume Down"; - gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>; - linux,code = <KEY_VOLUMEDOWN>; - }; - - volume_up { - label = "Volume Up"; - gpios = <&gpio TEGRA_GPIO(Q, 6) GPIO_ACTIVE_LOW>; - linux,code = <KEY_VOLUMEUP>; - }; - }; - regulators { compatible = "simple-bus"; #address-cells = <1>; diff --git a/arch/arm/boot/dts/tegra124-tn8.dts b/arch/arm/boot/dts/tegra124-tn8.dts index 08db25dc45e3..4727ea61191d 100644 --- a/arch/arm/boot/dts/tegra124-tn8.dts +++ b/arch/arm/boot/dts/tegra124-tn8.dts @@ -1,6 +1,7 @@ /dts-v1/; #include "tegra124-tn8-generic.dtsi" +#include "tegra124-platforms/tegra124-e1780-keys.dtsi" / { model = "NVIDIA Tegra124 TN8"; diff --git a/arch/arm/boot/dts/tegra124-tn8b-generic.dtsi b/arch/arm/boot/dts/tegra124-tn8b-generic.dtsi index 5908eea986fc..0a8b315840d6 100644 --- a/arch/arm/boot/dts/tegra124-tn8b-generic.dtsi +++ b/arch/arm/boot/dts/tegra124-tn8b-generic.dtsi @@ -144,41 +144,6 @@ spi-max-frequency = <25000000>; }; - gpio-keys { - compatible = "gpio-keys"; - - camera_focus { - label = "Camera Focus"; - gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>; - linux,code = <KEY_CAMERA_FOCUS>; - }; - - home { - label = "Home"; - gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; - linux,code = <KEY_HOME>; - }; - - power { - label = "Power"; - gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; - linux,code = <KEY_POWER>; - gpio-key,wakeup; - }; - - volume_down { - label = "Volume Down"; - gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>; - linux,code = <KEY_VOLUMEDOWN>; - }; - - volume_up { - label = "Volume Up"; - gpios = <&gpio TEGRA_GPIO(Q, 6) GPIO_ACTIVE_LOW>; - linux,code = <KEY_VOLUMEUP>; - }; - }; - regulators { compatible = "simple-bus"; #address-cells = <1>; diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index 521bde37f456..22b3b69a9da8 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile @@ -258,7 +258,6 @@ obj-${CONFIG_MACH_TEGRA_PLUTO} += panel-j-720p-4-7.o obj-${CONFIG_MACH_TEGRA_PLUTO} += panel-s-1080p-5.o obj-${CONFIG_MACH_ARDBEG} += board-ardbeg.o -obj-${CONFIG_MACH_ARDBEG} += board-ardbeg-kbc.o obj-${CONFIG_MACH_ARDBEG} += board-ardbeg-sdhci.o obj-${CONFIG_MACH_ARDBEG} += board-ardbeg-sata.o obj-${CONFIG_MACH_ARDBEG} += board-ardbeg-sensors.o @@ -299,7 +298,6 @@ obj-${CONFIG_MACH_LOKI} += panel-l-720p-5-loki.o obj-${CONFIG_MACH_LOKI} += panel-j-1440-810-5-8.o obj-${CONFIG_MACH_LAGUNA} += board-ardbeg.o -obj-${CONFIG_MACH_LAGUNA} += board-ardbeg-kbc.o obj-${CONFIG_MACH_LAGUNA} += board-ardbeg-sdhci.o obj-${CONFIG_MACH_LAGUNA} += board-ardbeg-sata.o obj-${CONFIG_MACH_LAGUNA} += board-ardbeg-sensors.o diff --git a/arch/arm/mach-tegra/board-ardbeg-kbc.c b/arch/arm/mach-tegra/board-ardbeg-kbc.c deleted file mode 100644 index 3ce8ed6d0e78..000000000000 --- a/arch/arm/mach-tegra/board-ardbeg-kbc.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * arch/arm/mach-tegra/board-ardbeg-kbc.c - * Keys configuration for Nvidia tegra4 ardbeg platform. - * - * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307, USA - */ - -#include <linux/kernel.h> -#include <linux/platform_device.h> -#include <linux/input.h> -#include <linux/io.h> -#include <linux/gpio.h> -#include <linux/gpio_keys.h> - -#include "iomap.h" -#include "wakeups-t12x.h" -#include "gpio-names.h" - -#define GPIO_KEY(_id, _gpio, _iswake) \ - { \ - .code = _id, \ - .gpio = TEGRA_GPIO_##_gpio, \ - .active_low = 1, \ - .desc = #_id, \ - .type = EV_KEY, \ - .wakeup = _iswake, \ - .debounce_interval = 10, \ - } - -#define PMC_WAKE2_STATUS 0x168 -#define TEGRA_WAKE_PWR_INT (1UL << 19) - -static int ardbeg_wakeup_key(void) -{ - u32 status; - int is_power_key; - - status = __raw_readl(IO_ADDRESS(TEGRA_PMC_BASE) + PMC_WAKE2_STATUS); - - is_power_key = !!(status & TEGRA_WAKE_PWR_INT); - if (is_power_key) { - pr_info("%s: Power key pressed\n", __func__); - return KEY_POWER; - } - return KEY_RESERVED; -} - -static struct gpio_keys_button ardbeg_int_keys[] = { - [0] = GPIO_KEY(KEY_POWER, PQ0, 1), - [1] = GPIO_KEY(KEY_VOLUMEUP, PQ6, 0), - [2] = GPIO_KEY(KEY_VOLUMEDOWN, PQ7, 0), - [3] = GPIO_KEY(KEY_HOME, PI5, 0), - [4] = GPIO_KEY(KEY_CAMERA_FOCUS, PQ2, 0), -}; - -static struct gpio_keys_platform_data ardbeg_int_keys_pdata = { - .buttons = ardbeg_int_keys, - .nbuttons = ARRAY_SIZE(ardbeg_int_keys), - .wakeup_key = ardbeg_wakeup_key, -}; - -static struct platform_device ardbeg_int_keys_device = { - .name = "gpio-keys", - .id = 0, - .dev = { - .platform_data = &ardbeg_int_keys_pdata, - }, -}; - -int __init ardbeg_kbc_init(void) -{ - /* GPIO-Keys from DT for TN8 */ - if (of_machine_is_compatible("nvidia,tn8")) - return 0; - - return platform_device_register(&ardbeg_int_keys_device); -} diff --git a/arch/arm/mach-tegra/board-ardbeg.c b/arch/arm/mach-tegra/board-ardbeg.c index f7a19dd2b28c..87796b90eada 100644 --- a/arch/arm/mach-tegra/board-ardbeg.c +++ b/arch/arm/mach-tegra/board-ardbeg.c @@ -1143,7 +1143,6 @@ static void __init tegra_ardbeg_late_init(void) isomgr_init(); ardbeg_touch_init(); ardbeg_panel_init(); - ardbeg_kbc_init(); if (board_info.board_id == BOARD_PM358) laguna_pm358_pmon_init(); else diff --git a/arch/arm/mach-tegra/board-ardbeg.h b/arch/arm/mach-tegra/board-ardbeg.h index c2f3758d3c41..0ae9f274066e 100644 --- a/arch/arm/mach-tegra/board-ardbeg.h +++ b/arch/arm/mach-tegra/board-ardbeg.h @@ -28,7 +28,6 @@ int ardbeg_pinmux_init(void); int ardbeg_emc_init(void); int ardbeg_panel_init(void); -int ardbeg_kbc_init(void); int ardbeg_sdhci_init(void); int ardbeg_sata_init(void); int ardbeg_sensors_init(void); |