From c36f7f97d49d5dfd0d5c2a8ea1dc4792602b9a86 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 20 Aug 2014 15:45:48 -0500 Subject: [PATCH 01/63] backport: gpio_backlight.c from: v3.15.10 Signed-off-by: Robert Nelson --- drivers/video/backlight/gpio_backlight.c | 58 +++++++++++++++++++++--- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c index 81fb12770c2a2..a2eba12e1cb78 100644 --- a/drivers/video/backlight/gpio_backlight.c +++ b/drivers/video/backlight/gpio_backlight.c @@ -13,6 +13,8 @@ #include #include #include +#include +#include #include #include #include @@ -23,6 +25,7 @@ struct gpio_backlight { int gpio; int active; + int def_value; }; static int gpio_backlight_update_status(struct backlight_device *bl) @@ -60,6 +63,29 @@ static const struct backlight_ops gpio_backlight_ops = { .check_fb = gpio_backlight_check_fb, }; +static int gpio_backlight_probe_dt(struct platform_device *pdev, + struct gpio_backlight *gbl) +{ + struct device_node *np = pdev->dev.of_node; + enum of_gpio_flags gpio_flags; + + gbl->gpio = of_get_gpio_flags(np, 0, &gpio_flags); + + if (!gpio_is_valid(gbl->gpio)) { + if (gbl->gpio != -EPROBE_DEFER) { + dev_err(&pdev->dev, + "Error: The gpios parameter is missing or invalid.\n"); + } + return gbl->gpio; + } + + gbl->active = (gpio_flags & OF_GPIO_ACTIVE_LOW) ? 0 : 1; + + gbl->def_value = of_property_read_bool(np, "default-on"); + + return 0; +} + static int gpio_backlight_probe(struct platform_device *pdev) { struct gpio_backlight_platform_data *pdata = @@ -67,10 +93,12 @@ static int gpio_backlight_probe(struct platform_device *pdev) struct backlight_properties props; struct backlight_device *bl; struct gpio_backlight *gbl; + struct device_node *np = pdev->dev.of_node; int ret; - if (!pdata) { - dev_err(&pdev->dev, "failed to find platform data\n"); + if (!pdata && !np) { + dev_err(&pdev->dev, + "failed to find platform data or device tree node.\n"); return -ENODEV; } @@ -79,14 +107,22 @@ static int gpio_backlight_probe(struct platform_device *pdev) return -ENOMEM; gbl->dev = &pdev->dev; - gbl->fbdev = pdata->fbdev; - gbl->gpio = pdata->gpio; - gbl->active = pdata->active_low ? 0 : 1; + + if (np) { + ret = gpio_backlight_probe_dt(pdev, gbl); + if (ret) + return ret; + } else { + gbl->fbdev = pdata->fbdev; + gbl->gpio = pdata->gpio; + gbl->active = pdata->active_low ? 0 : 1; + gbl->def_value = pdata->def_value; + } ret = devm_gpio_request_one(gbl->dev, gbl->gpio, GPIOF_DIR_OUT | (gbl->active ? GPIOF_INIT_LOW : GPIOF_INIT_HIGH), - pdata->name); + pdata ? pdata->name : "backlight"); if (ret < 0) { dev_err(&pdev->dev, "unable to request GPIO\n"); return ret; @@ -103,17 +139,25 @@ static int gpio_backlight_probe(struct platform_device *pdev) return PTR_ERR(bl); } - bl->props.brightness = pdata->def_value; + bl->props.brightness = gbl->def_value; backlight_update_status(bl); platform_set_drvdata(pdev, bl); return 0; } +#ifdef CONFIG_OF +static struct of_device_id gpio_backlight_of_match[] = { + { .compatible = "gpio-backlight" }, + { /* sentinel */ } +}; +#endif + static struct platform_driver gpio_backlight_driver = { .driver = { .name = "gpio-backlight", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(gpio_backlight_of_match), }, .probe = gpio_backlight_probe, }; From 3015b2fbe42448346add8066fcb56e33353bc6c2 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Mon, 22 Sep 2014 10:15:34 -0500 Subject: [PATCH 02/63] firmware: am335x-pm-firmware.elf #git://git.ti.com/ti-cm3-pm-firmware/amx3-cm3.git #4e219d5053ee41b8fa8f85b48b1529ae4c6feb48 Signed-off-by: Robert Nelson --- firmware/am335x-bone-scale-data.bin | Bin 0 -> 72 bytes firmware/am335x-evm-scale-data.bin | Bin 0 -> 16 bytes firmware/am335x-pm-firmware.bin | Bin 0 -> 11472 bytes firmware/am335x-pm-firmware.elf | Bin 0 -> 154768 bytes firmware/am43x-evm-scale-data.bin | Bin 0 -> 40 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 firmware/am335x-bone-scale-data.bin create mode 100644 firmware/am335x-evm-scale-data.bin create mode 100755 firmware/am335x-pm-firmware.bin create mode 100755 firmware/am335x-pm-firmware.elf create mode 100644 firmware/am43x-evm-scale-data.bin diff --git a/firmware/am335x-bone-scale-data.bin b/firmware/am335x-bone-scale-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..296903ec2c0fe1518566039b601b445c270e1c98 GIT binary patch literal 72 ocmd-HXHa4=VN&7FWl|AfLZWk+R0P|Ad@v1H!2wkPqES=;07<$Dx&QzG literal 0 HcmV?d00001 diff --git a/firmware/am335x-evm-scale-data.bin b/firmware/am335x-evm-scale-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e18ce7208b7d0d669dd6e199a7969bf98a74ee8 GIT binary patch literal 16 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 literal 0 HcmV?d00001 diff --git a/firmware/am335x-pm-firmware.elf b/firmware/am335x-pm-firmware.elf new file mode 100755 index 0000000000000000000000000000000000000000..ae700057c2c6eb6705546b4c54cf6dc44ede6987 GIT binary patch literal 154768 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 literal 0 HcmV?d00001 diff --git a/firmware/am43x-evm-scale-data.bin b/firmware/am43x-evm-scale-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..805338a032540ab0f1cab3b44693768bd2dab018 GIT binary patch literal 40 gcmd-HXAojAVNwyuW>OLB0@CSBDpGB5k(n?N0C+M6fdBvi literal 0 HcmV?d00001 From c252c4cdfa8fc053ba1364de499fe519f4d39179 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Fri, 28 Dec 2012 20:56:48 +0200 Subject: [PATCH 03/63] BeagleBone pinmux helper This patch was derived from 2 commits, but I removed the non-pinmux-helper portions and added the helper to the bb.org_defconfig: capemgr: Capemgr makefiles and Kconfig fragments. Introduce a cape loader using DT overlays and dynamic DT objects. Makefile and Kconfig fragments. Signed-off-by: Pantelis Antoniou Conflicts: arch/arm/mach-omap2/Kconfig drivers/misc/Kconfig drivers/misc/Makefile And: Pinmux helper driver. That's just a hack to get a pinmux helper driver working. Define in the DT helper { compatible = "bone-pinmux-helper"; pinctrl-names = "default"; pinctrl-0 = <&helper_pins>; status = "okay"; }; --- drivers/misc/Kconfig | 2 + drivers/misc/Makefile | 1 + drivers/misc/cape/Kconfig | 5 ++ drivers/misc/cape/Makefile | 5 ++ drivers/misc/cape/beaglebone/Kconfig | 10 +++ drivers/misc/cape/beaglebone/Makefile | 5 ++ .../misc/cape/beaglebone/bone-pinmux-helper.c | 72 +++++++++++++++++++ 7 files changed, 100 insertions(+) create mode 100644 drivers/misc/cape/Kconfig create mode 100644 drivers/misc/cape/Makefile create mode 100644 drivers/misc/cape/beaglebone/Kconfig create mode 100644 drivers/misc/cape/beaglebone/Makefile create mode 100644 drivers/misc/cape/beaglebone/bone-pinmux-helper.c diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 6cb388e8fb7d5..bfa3093c54d8a 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -526,4 +526,6 @@ source "drivers/misc/mei/Kconfig" source "drivers/misc/vmw_vmci/Kconfig" source "drivers/misc/mic/Kconfig" source "drivers/misc/genwqe/Kconfig" +source "drivers/misc/cape/Kconfig" + endmenu diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 99b9424ce31d8..698af195968c3 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -54,3 +54,4 @@ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_SRAM) += sram.o obj-y += mic/ obj-$(CONFIG_GENWQE) += genwqe/ +obj-y += cape/ diff --git a/drivers/misc/cape/Kconfig b/drivers/misc/cape/Kconfig new file mode 100644 index 0000000000000..a2ef85e0415c5 --- /dev/null +++ b/drivers/misc/cape/Kconfig @@ -0,0 +1,5 @@ +# +# Capes +# + +source "drivers/misc/cape/beaglebone/Kconfig" diff --git a/drivers/misc/cape/Makefile b/drivers/misc/cape/Makefile new file mode 100644 index 0000000000000..7c4eb96ab29e4 --- /dev/null +++ b/drivers/misc/cape/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for cape like devices +# + +obj-y += beaglebone/ diff --git a/drivers/misc/cape/beaglebone/Kconfig b/drivers/misc/cape/beaglebone/Kconfig new file mode 100644 index 0000000000000..eeb67828fd829 --- /dev/null +++ b/drivers/misc/cape/beaglebone/Kconfig @@ -0,0 +1,10 @@ +# +# Beaglebone capes +# + +config BEAGLEBONE_PINMUX_HELPER + tristate "Beaglebone Pinmux Helper" + depends on ARCH_OMAP2PLUS && OF + default n + help + Say Y here to include support for the pinmux helper diff --git a/drivers/misc/cape/beaglebone/Makefile b/drivers/misc/cape/beaglebone/Makefile new file mode 100644 index 0000000000000..7f4617a01e262 --- /dev/null +++ b/drivers/misc/cape/beaglebone/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for beaglebone capes +# + +obj-$(CONFIG_BEAGLEBONE_PINMUX_HELPER) += bone-pinmux-helper.o diff --git a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c new file mode 100644 index 0000000000000..ba3922d6ac67a --- /dev/null +++ b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c @@ -0,0 +1,72 @@ +/* + * Pinmux helper driver + * + * Copyright (C) 2013 Pantelis Antoniou + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static const struct of_device_id bone_pinmux_helper_of_match[] = { + { + .compatible = "bone-pinmux-helper", + }, + { }, +}; +MODULE_DEVICE_TABLE(of, bone_pinmux_helper_of_match); + +static int bone_pinmux_helper_probe(struct platform_device *pdev) +{ + struct pinctrl *pinctrl; + + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); + + /* don't bother with anything */ + return PTR_RET(pinctrl); +} + +static int bone_pinmux_helper_remove(struct platform_device *pdev) +{ + /* nothing more is needed */ + return 0; +} + +struct platform_driver bone_pinmux_helper_driver = { + .probe = bone_pinmux_helper_probe, + .remove = bone_pinmux_helper_remove, + .driver = { + .name = "bone-pinmux-helper", + .owner = THIS_MODULE, + .of_match_table = bone_pinmux_helper_of_match, + }, +}; + +module_platform_driver(bone_pinmux_helper_driver); + +MODULE_AUTHOR("Pantelis Antoniou"); +MODULE_DESCRIPTION("Beaglebone pinmux helper driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:bone-pinmux-helper"); From c37c2f6d0edd04bb76db9f1a43a86ee387161cbf Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 6 Mar 2013 19:37:53 +0200 Subject: [PATCH 04/63] pinmux-helper: Add runtime configuration capability Pinctrl already supports multiple states. Just make them visible. --- .../misc/cape/beaglebone/bone-pinmux-helper.c | 143 +++++++++++++++++- 1 file changed, 138 insertions(+), 5 deletions(-) diff --git a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c index ba3922d6ac67a..84058e1402593 100644 --- a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c +++ b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c @@ -38,19 +38,152 @@ static const struct of_device_id bone_pinmux_helper_of_match[] = { }; MODULE_DEVICE_TABLE(of, bone_pinmux_helper_of_match); +struct pinmux_helper_data { + struct pinctrl *pinctrl; + char *selected_state_name; +}; + +static ssize_t pinmux_helper_show_state(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct platform_device *pdev = to_platform_device(dev); + struct pinmux_helper_data *data = platform_get_drvdata(pdev); + const char *name; + int len; + + name = data->selected_state_name; + if (name == NULL || strlen(name) == 0) + name = "none"; + return sprintf(buf, "%s\n", name); +} + +static ssize_t pinmux_helper_store_state(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct platform_device *pdev = to_platform_device(dev); + struct pinmux_helper_data *data = platform_get_drvdata(pdev); + struct pinctrl_state *state; + char *state_name; + char *s; + int err; + + /* duplicate (as a null terminated string) */ + state_name = devm_kzalloc(dev, count + 1, GFP_KERNEL); + if (state_name == NULL) + return -ENOMEM; + memcpy(state_name, buf, count); + state_name[count] = '\0'; + + /* and chop off newline */ + s = strchr(state_name, '\n'); + if (s != NULL) + *s = '\0'; + + /* try to select default state at first (if it exists) */ + state = pinctrl_lookup_state(data->pinctrl, state_name); + if (!IS_ERR(state)) { + err = pinctrl_select_state(data->pinctrl, state); + if (err != 0) + dev_err(dev, "Failed to select state %s\n", + state_name); + } else { + dev_err(dev, "Failed to find state %s\n", state_name); + err = PTR_RET(state); + } + + if (err == 0) { + devm_kfree(dev, data->selected_state_name); + data->selected_state_name = state_name; + } + + return err ? err : count; +} + +static DEVICE_ATTR(state, S_IWUSR | S_IRUGO, + pinmux_helper_show_state, pinmux_helper_store_state); + +static struct attribute *pinmux_helper_attributes[] = { + &dev_attr_state.attr, + NULL +}; + +static const struct attribute_group pinmux_helper_attr_group = { + .attrs = pinmux_helper_attributes, +}; + static int bone_pinmux_helper_probe(struct platform_device *pdev) { - struct pinctrl *pinctrl; + struct device *dev = &pdev->dev; + struct pinmux_helper_data *data; + struct pinctrl_state *state; + char *state_name; + int err; + + data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); + if (data == NULL) { + dev_err(dev, "Failed to allocate data\n"); + err = -ENOMEM; + goto err_no_mem; + } + state_name = devm_kzalloc(dev, strlen(PINCTRL_STATE_DEFAULT) + 1, + GFP_KERNEL); + if (state_name == NULL) { + dev_err(dev, "Failed to allocate state name\n"); + err = -ENOMEM; + goto err_no_mem; + } + data->selected_state_name = state_name; + strcpy(data->selected_state_name, PINCTRL_STATE_DEFAULT); - pinctrl = devm_pinctrl_get_select_default(&pdev->dev); + platform_set_drvdata(pdev, data); - /* don't bother with anything */ - return PTR_RET(pinctrl); + data->pinctrl = devm_pinctrl_get(dev); + if (IS_ERR(data->pinctrl)) { + dev_err(dev, "Failed to get pinctrl\n"); + err = PTR_RET(data->pinctrl); + goto err_no_pinctrl; + } + + /* try to select default state at first (if it exists) */ + state = pinctrl_lookup_state(data->pinctrl, + data->selected_state_name); + if (!IS_ERR(state)) { + err = pinctrl_select_state(data->pinctrl, state); + if (err != 0) { + dev_err(dev, "Failed to select default state\n"); + goto err_no_state; + } + } else { + data->selected_state_name = '\0'; + } + + /* Register sysfs hooks */ + err = sysfs_create_group(&dev->kobj, &pinmux_helper_attr_group); + if (err) { + dev_err(dev, "Failed to create sysfs group\n"); + goto err_no_sysfs; + } + + return 0; + +err_no_sysfs: +err_no_state: + devm_pinctrl_put(data->pinctrl); +err_no_pinctrl: + devm_kfree(dev, data); +err_no_mem: + return err; } static int bone_pinmux_helper_remove(struct platform_device *pdev) { - /* nothing more is needed */ + struct pinmux_helper_data *data = platform_get_drvdata(pdev); + struct device *dev = &pdev->dev; + + sysfs_remove_group(&dev->kobj, &pinmux_helper_attr_group); + devm_pinctrl_put(data->pinctrl); + devm_kfree(dev, data); + return 0; } From be9e6ecd39fe101c810f63a8d822d5d37c9475e8 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Thu, 7 Mar 2013 09:54:38 +0200 Subject: [PATCH 05/63] pinmux-helper: Switch to using kmalloc devm_kfree warned out... why? no idea. --- drivers/misc/cape/beaglebone/bone-pinmux-helper.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c index 84058e1402593..50743657ef242 100644 --- a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c +++ b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -49,7 +50,6 @@ static ssize_t pinmux_helper_show_state(struct device *dev, struct platform_device *pdev = to_platform_device(dev); struct pinmux_helper_data *data = platform_get_drvdata(pdev); const char *name; - int len; name = data->selected_state_name; if (name == NULL || strlen(name) == 0) @@ -68,7 +68,7 @@ static ssize_t pinmux_helper_store_state(struct device *dev, int err; /* duplicate (as a null terminated string) */ - state_name = devm_kzalloc(dev, count + 1, GFP_KERNEL); + state_name = kmalloc(count + 1, GFP_KERNEL); if (state_name == NULL) return -ENOMEM; memcpy(state_name, buf, count); @@ -92,7 +92,7 @@ static ssize_t pinmux_helper_store_state(struct device *dev, } if (err == 0) { - devm_kfree(dev, data->selected_state_name); + kfree(data->selected_state_name); data->selected_state_name = state_name; } @@ -125,7 +125,7 @@ static int bone_pinmux_helper_probe(struct platform_device *pdev) err = -ENOMEM; goto err_no_mem; } - state_name = devm_kzalloc(dev, strlen(PINCTRL_STATE_DEFAULT) + 1, + state_name = kmalloc(strlen(PINCTRL_STATE_DEFAULT) + 1, GFP_KERNEL); if (state_name == NULL) { dev_err(dev, "Failed to allocate state name\n"); @@ -181,6 +181,7 @@ static int bone_pinmux_helper_remove(struct platform_device *pdev) struct device *dev = &pdev->dev; sysfs_remove_group(&dev->kobj, &pinmux_helper_attr_group); + kfree(data->selected_state_name); devm_pinctrl_put(data->pinctrl); devm_kfree(dev, data); From f74377e3ba667e4608f8c8c4f6c474554264ba72 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Tue, 4 Jun 2013 16:23:59 +0300 Subject: [PATCH 06/63] gpio: Introduce GPIO OF helper A gpio OF helper driver that allows configuration to be done via DT. --- drivers/gpio/Kconfig | 14 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-of-helper.c | 414 ++++++++++++++++++++++++++++++++++ 3 files changed, 429 insertions(+) create mode 100644 drivers/gpio/gpio-of-helper.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 903f24d28ba06..9b54bdd8fad37 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -81,6 +81,20 @@ config GPIO_SYSFS Kernel drivers may also request that a particular GPIO be exported to userspace; this can be useful when debugging. +config GPIO_OF_HELPER + bool "GPIO OF helper device" + depends on OF_GPIO && EXPERIMENTAL + help + Say Y here to add an GPIO OF helper driver + + Allows you specify a GPIO helper based on OF + which allows simple export of GPIO functionality + in user-space. + + Features include, value set/get, direction control, + interrupt/value change poll support, event counting + and others. + config GPIO_GENERIC tristate diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 5d50179ece160..792e1dc5f3f39 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_GPIO_DEVRES) += devres.o obj-$(CONFIG_GPIOLIB) += gpiolib.o obj-$(CONFIG_OF_GPIO) += gpiolib-of.o obj-$(CONFIG_GPIO_ACPI) += gpiolib-acpi.o +obj-$(CONFIG_GPIO_OF_HELPER) += gpio-of-helper.o # Device drivers. Generally keep list sorted alphabetically obj-$(CONFIG_GPIO_GENERIC) += gpio-generic.o diff --git a/drivers/gpio/gpio-of-helper.c b/drivers/gpio/gpio-of-helper.c new file mode 100644 index 0000000000000..16a607f9c052a --- /dev/null +++ b/drivers/gpio/gpio-of-helper.c @@ -0,0 +1,414 @@ +/* + * GPIO OF based helper + * + * A simple DT based driver to provide access to GPIO functionality + * to user-space via sysfs. + * + * Copyright (C) 2013 Pantelis Antoniou + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* fwd decl. */ +struct gpio_of_helper_info; + +enum gpio_type { + GPIO_TYPE_INPUT = 0, + GPIO_TYPE_OUTPUT = 1, +}; + +struct gpio_of_entry { + int id; + struct gpio_of_helper_info *info; + struct device_node *node; + enum gpio_type type; + int gpio; + enum of_gpio_flags gpio_flags; + int irq; + const char *name; + atomic64_t counter; + unsigned int count_flags; +#define COUNT_RISING_EDGE (1 << 0) +#define COUNT_FALLING_EDGE (1 << 1) +}; + +struct gpio_of_helper_info { + struct platform_device *pdev; + struct idr idr; +}; + +static const struct of_device_id gpio_of_helper_of_match[] = { + { + .compatible = "gpio-of-helper", + }, + { }, +}; +MODULE_DEVICE_TABLE(of, gpio_of_helper_of_match); + +static ssize_t gpio_of_helper_show_status(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct platform_device *pdev = to_platform_device(dev); + struct gpio_of_helper_info *info = platform_get_drvdata(pdev); + struct gpio_of_entry *entry; + char *p, *e; + int id, n; + + p = buf; + e = p + PAGE_SIZE; + n = 0; + idr_for_each_entry(&info->idr, entry, id) { + switch (entry->type) { + case GPIO_TYPE_INPUT: + n = snprintf(p, e - p, "%2d %-24s %3d %-3s %llu\n", + entry->id, entry->name, entry->gpio, "IN", + (unsigned long long) + atomic64_read(&entry->counter)); + break; + case GPIO_TYPE_OUTPUT: + n = snprintf(p, e - p, "%2d %-24s %3d %-3s\n", + entry->id, entry->name, entry->gpio, "OUT"); + break; + } + p += n; + } + + return p - buf; +} + +static DEVICE_ATTR(status, S_IRUGO, + gpio_of_helper_show_status, NULL); + +static irqreturn_t gpio_of_helper_handler(int irq, void *ptr) +{ + struct gpio_of_entry *entry = ptr; + + /* caution - low speed interfaces only! */ + atomic64_inc(&entry->counter); + + return IRQ_HANDLED; +} + +static struct gpio_of_entry * +gpio_of_entry_create(struct gpio_of_helper_info *info, + struct device_node *node) +{ + struct platform_device *pdev = info->pdev; + struct device *dev = &pdev->dev; + struct gpio_of_entry *entry; + int err, gpio, irq; + unsigned int req_flags, count_flags, irq_flags; + enum gpio_type type; + enum of_gpio_flags gpio_flags; + const char *name; + + /* get the type of the node first */ + if (of_property_read_bool(node, "input")) + type = GPIO_TYPE_INPUT; + else if (of_property_read_bool(node, "output")) + type = GPIO_TYPE_OUTPUT; + else { + dev_err(dev, "Not valid gpio node type\n"); + err = -EINVAL; + goto err_bad_node; + } + + /* get the name */ + err = of_property_read_string(node, "gpio-name", &name); + if (err != 0) { + dev_err(dev, "Failed to get name property\n"); + goto err_bad_node; + } + + err = of_get_named_gpio_flags(node, "gpio", 0, &gpio_flags); + if (IS_ERR_VALUE(err)) { + dev_err(dev, "Failed to get gpio property of '%s'\n", name); + goto err_bad_node; + } + gpio = err; + + req_flags = 0; + count_flags = 0; + + /* set the request flags */ + switch (type) { + case GPIO_TYPE_INPUT: + req_flags = GPIOF_DIR_IN | GPIOF_EXPORT; + if (of_property_read_bool(node, "count-falling-edge")) + count_flags |= COUNT_FALLING_EDGE; + if (of_property_read_bool(node, "count-rising-edge")) + count_flags |= COUNT_RISING_EDGE; + break; + case GPIO_TYPE_OUTPUT: + req_flags = GPIOF_DIR_OUT | GPIOF_EXPORT; + if (of_property_read_bool(node, "init-high")) + req_flags |= GPIOF_OUT_INIT_HIGH; + else if (of_property_read_bool(node, "init-low")) + req_flags |= GPIOF_OUT_INIT_LOW; + break; + } + + /* request the gpio */ + err = devm_gpio_request_one(dev, gpio, req_flags, name); + if (err != 0) { + dev_err(dev, "Failed to request gpio '%s'\n", name); + goto err_bad_node; + } + + irq = -1; + irq_flags = 0; + + /* counter mode requested - need an interrupt */ + if (count_flags != 0) { + irq = gpio_to_irq(gpio); + if (IS_ERR_VALUE(irq)) { + dev_err(dev, "Failed to request gpio '%s'\n", name); + goto err_bad_node; + } + + if (count_flags & COUNT_RISING_EDGE) + irq_flags |= IRQF_TRIGGER_RISING; + if (count_flags & COUNT_FALLING_EDGE) + irq_flags |= IRQF_TRIGGER_FALLING; + } + + if (!idr_pre_get(&info->idr, GFP_KERNEL)) { + dev_err(dev, "Failed on idr_pre_get of '%s'\n", name); + err = -ENOMEM; + goto err_no_mem; + } + + entry = devm_kzalloc(dev, sizeof(*entry), GFP_KERNEL); + if (entry == NULL) { + dev_err(dev, "Failed to allocate gpio entry of '%s'\n", name); + err = -ENOMEM; + goto err_no_mem; + } + + entry->id = -1; + entry->info = info; + entry->node = of_node_get(node); /* get node reference */ + entry->type = type; + entry->gpio = gpio; + entry->gpio_flags = gpio_flags; + entry->irq = irq; + entry->name = name; + + /* interrupt enable is last thing done */ + if (irq >= 0) { + atomic64_set(&entry->counter, 0); + entry->count_flags = count_flags; + err = devm_request_irq(dev, irq, gpio_of_helper_handler, + irq_flags, name, entry); + if (err != 0) { + dev_err(dev, "Failed to request irq of '%s'\n", name); + goto err_no_irq; + } + } + + /* all done; insert */ + err = idr_get_new(&info->idr, entry, &entry->id); + if (IS_ERR_VALUE(err)) { + dev_err(dev, "Failed to idr_get_new of '%s'\n", name); + goto err_fail_idr; + } + + dev_info(dev, "Allocated GPIO id=%d\n", entry->id); + + return entry; + +err_fail_idr: + /* nothing to do */ +err_no_irq: + /* release node ref */ + of_node_put(node); + /* nothing else needs to be done, devres handles it */ +err_no_mem: +err_bad_node: + return ERR_PTR(err); +} + +static int gpio_of_entry_destroy(struct gpio_of_entry *entry) +{ + struct gpio_of_helper_info *info = entry->info; + struct platform_device *pdev = info->pdev; + struct device *dev = &pdev->dev; + + dev_info(dev, "Destroying GPIO id=%d\n", entry->id); + + /* remove from the IDR */ + idr_remove(&info->idr, entry->id); + + /* remove node ref */ + of_node_put(entry->node); + + /* free gpio */ + devm_gpio_free(dev, entry->gpio); + + /* gree irq */ + if (entry->irq >= 0) + devm_free_irq(dev, entry->irq, entry); + + /* and free */ + devm_kfree(dev, entry); + + return 0; +} + +static int gpio_of_helper_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct gpio_of_helper_info *info; + struct gpio_of_entry *entry; + struct device_node *pnode = pdev->dev.of_node; + struct device_node *cnode; + struct pinctrl *pinctrl; + int err; + + /* we only support OF */ + if (pnode == NULL) { + dev_err(&pdev->dev, "No platform of_node!\n"); + return -ENODEV; + } + + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); + if (IS_ERR(pinctrl)) { + /* special handling for probe defer */ + if (PTR_ERR(pinctrl) == -EPROBE_DEFER) + return -EPROBE_DEFER; + + dev_warn(&pdev->dev, + "pins are not configured from the driver\n"); + } + + info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); + if (info == NULL) { + dev_err(&pdev->dev, "Failed to allocate info\n"); + err = -ENOMEM; + goto err_no_mem; + } + platform_set_drvdata(pdev, info); + info->pdev = pdev; + + idr_init(&info->idr); + + err = device_create_file(dev, &dev_attr_status); + if (err != 0) { + dev_err(dev, "Failed to create status sysfs attribute\n"); + goto err_no_sysfs; + } + + for_each_child_of_node(pnode, cnode) { + + entry = gpio_of_entry_create(info, cnode); + if (IS_ERR_OR_NULL(entry)) { + dev_err(dev, "Failed to create gpio entry\n"); + err = PTR_ERR(entry); + goto err_fail_entry; + } + } + + dev_info(&pdev->dev, "ready\n"); + + return 0; +err_fail_entry: + device_remove_file(&pdev->dev, &dev_attr_status); +err_no_sysfs: +err_no_mem: + return err; +} + +static int gpio_of_helper_remove(struct platform_device *pdev) +{ + struct gpio_of_helper_info *info = platform_get_drvdata(pdev); + struct gpio_of_entry *entry; + int id; + + dev_info(&pdev->dev, "removing\n"); + + device_remove_file(&pdev->dev, &dev_attr_status); + + id = 0; + idr_for_each_entry(&info->idr, entry, id) { + /* destroy each and every one */ + gpio_of_entry_destroy(entry); + } + + return 0; +} + +#ifdef CONFIG_PM +#ifdef CONFIG_PM_RUNTIME +static int gpio_of_helper_runtime_suspend(struct device *dev) +{ + /* place holder */ + return 0; +} + +static int gpio_of_helper_runtime_resume(struct device *dev) +{ + /* place holder */ + return 0; +} +#endif /* CONFIG_PM_RUNTIME */ + +static struct dev_pm_ops gpio_of_helper_pm_ops = { + SET_RUNTIME_PM_OPS(gpio_of_helper_runtime_suspend, + gpio_of_helper_runtime_resume, NULL) +}; +#define GPIO_OF_HELPER_PM_OPS (&gpio_of_helper_pm_ops) +#else +#define GPIO_OF_HELPER_PM_OPS NULL +#endif /* CONFIG_PM */ + +struct platform_driver gpio_of_helper_driver = { + .probe = gpio_of_helper_probe, + .remove = gpio_of_helper_remove, + .driver = { + .name = "gpio-of-helper", + .owner = THIS_MODULE, + .pm = GPIO_OF_HELPER_PM_OPS, + .of_match_table = gpio_of_helper_of_match, + }, +}; + +module_platform_driver(gpio_of_helper_driver); + +MODULE_AUTHOR("Pantelis Antoniou "); +MODULE_DESCRIPTION("GPIO OF Helper driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:gpio-of-helper"); From 062566596e9607b85b7711b98487c17a3813dc3c Mon Sep 17 00:00:00 2001 From: Charles Steinkuehler Date: Sun, 26 Jan 2014 16:17:09 +0100 Subject: [PATCH 07/63] Add dir-changeable property to gpio-of-helper Signed-off-by: Charles Steinkuehler --- drivers/gpio/gpio-of-helper.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpio/gpio-of-helper.c b/drivers/gpio/gpio-of-helper.c index 16a607f9c052a..1c289b23a7dff 100644 --- a/drivers/gpio/gpio-of-helper.c +++ b/drivers/gpio/gpio-of-helper.c @@ -181,6 +181,8 @@ gpio_of_entry_create(struct gpio_of_helper_info *info, req_flags |= GPIOF_OUT_INIT_LOW; break; } + if (of_property_read_bool(node, "dir-changeable")) + req_flags |= GPIOF_EXPORT_CHANGEABLE; /* request the gpio */ err = devm_gpio_request_one(dev, gpio, req_flags, name); From 88b6a77389c70280d99d3b4181c03ff59b386b6a Mon Sep 17 00:00:00 2001 From: Jason Kridner Date: Thu, 4 Sep 2014 18:45:39 +0000 Subject: [PATCH 08/63] am33xx.dtsi: add ocp label Signed-off-by: Jason Kridner --- arch/arm/boot/dts/am33xx.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 63eb0484f966a..2a7a09dba3161 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -87,7 +87,7 @@ * for the moment, just use a fake OCP bus entry to represent * the whole bus hierarchy. */ - ocp { + ocp: ocp { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; From adf64225232b6e6ad3ca935750e17525c7122272 Mon Sep 17 00:00:00 2001 From: Jason Kridner Date: Thu, 4 Sep 2014 18:53:16 +0000 Subject: [PATCH 09/63] beaglebone: added expansion header to dtb This adds gpio and pinmux helpers to the majority of available expansion header pins based on the cape-universal work from Charles Steinkuehler making them userspace configurable. This is not a substitute for Capemgr as it doesn't perform the configuration based on cape detection, nor does it enable dynamic configuration of all types of peripherals that could be on a cape. It does, however, enable many developers to rapidly experiment with a lesser degree of complexity. Derived from: https://github.com/cdsteinkuehler/beaglebone-universal-io/blob/52461b52ef3203e648399c16c7e160c848a04b5c$ Signed-off-by: Jason Kridner Cc: Charles Steinkuehler Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 1319 +++++++++++++++++ 1 file changed, 1319 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi new file mode 100644 index 0000000000000..8bddcd28595c7 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -0,0 +1,1319 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&am33xx_pinmux { + /************************/ + /* P8 Header */ + /************************/ + + /* P8_01 GND */ + /* P8_02 GND */ + /* P8_03 (ZCZ ball R9 ) emmc */ + /* P8_04 (ZCZ ball T9 ) emmc */ + /* P8_05 (ZCZ ball R8 ) emmc */ + /* P8_06 (ZCZ ball T8 ) emmc */ + + /* P8_07 (ZCZ ball R7 ) */ + P8_07_default_pin: pinmux_P8_07_default_pin { + pinctrl-single,pins = <0x090 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_07_gpio_pin: pinmux_P8_07_gpio_pin { + pinctrl-single,pins = <0x090 0x2F>; }; /* Mode 7, RxActive */ + P8_07_gpio_pu_pin: pinmux_P8_07_gpio_pu_pin { + pinctrl-single,pins = <0x090 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_07_gpio_pd_pin: pinmux_P8_07_gpio_pd_pin { + pinctrl-single,pins = <0x090 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_07_timer_pin: pinmux_P8_07_timer_pin { + pinctrl-single,pins = <0x090 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + + /* P8_08 (ZCZ ball T7 ) */ + P8_08_default_pin: pinmux_P8_08_default_pin { + pinctrl-single,pins = <0x094 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_08_gpio_pin: pinmux_P8_08_gpio_pin { + pinctrl-single,pins = <0x094 0x2F>; }; /* Mode 7, RxActive */ + P8_08_gpio_pu_pin: pinmux_P8_08_gpio_pu_pin { + pinctrl-single,pins = <0x094 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_08_gpio_pd_pin: pinmux_P8_08_gpio_pd_pin { + pinctrl-single,pins = <0x094 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_08_timer_pin: pinmux_P8_08_timer_pin { + pinctrl-single,pins = <0x094 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + + /* P8_09 (ZCZ ball T6 ) */ + P8_09_default_pin: pinmux_P8_09_default_pin { + pinctrl-single,pins = <0x09c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_09_gpio_pin: pinmux_P8_09_gpio_pin { + pinctrl-single,pins = <0x09c 0x2F>; }; /* Mode 7, RxActive */ + P8_09_gpio_pu_pin: pinmux_P8_09_gpio_pu_pin { + pinctrl-single,pins = <0x09c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_09_gpio_pd_pin: pinmux_P8_09_gpio_pd_pin { + pinctrl-single,pins = <0x09c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_09_timer_pin: pinmux_P8_09_timer_pin { + pinctrl-single,pins = <0x09c 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + + /* P8_10 (ZCZ ball U6 ) */ + P8_10_default_pin: pinmux_P8_10_default_pin { + pinctrl-single,pins = <0x098 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_10_gpio_pin: pinmux_P8_10_gpio_pin { + pinctrl-single,pins = <0x098 0x2F>; }; /* Mode 7, RxActive */ + P8_10_gpio_pu_pin: pinmux_P8_10_gpio_pu_pin { + pinctrl-single,pins = <0x098 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_10_gpio_pd_pin: pinmux_P8_10_gpio_pd_pin { + pinctrl-single,pins = <0x098 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_10_timer_pin: pinmux_P8_10_timer_pin { + pinctrl-single,pins = <0x098 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + + /* P8_11 (ZCZ ball R12) */ + P8_11_default_pin: pinmux_P8_11_default_pin { + pinctrl-single,pins = <0x034 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_11_gpio_pin: pinmux_P8_11_gpio_pin { + pinctrl-single,pins = <0x034 0x2F>; }; /* Mode 7, RxActive */ + P8_11_gpio_pu_pin: pinmux_P8_11_gpio_pu_pin { + pinctrl-single,pins = <0x034 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_11_gpio_pd_pin: pinmux_P8_11_gpio_pd_pin { + pinctrl-single,pins = <0x034 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_11_pruout_pin: pinmux_P8_11_pruout_pin { + pinctrl-single,pins = <0x034 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_11_qep_pin: pinmux_P8_11_qep_pin { + pinctrl-single,pins = <0x034 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_12 (ZCZ ball T12) */ + P8_12_default_pin: pinmux_P8_12_default_pin { + pinctrl-single,pins = <0x030 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_12_gpio_pin: pinmux_P8_12_gpio_pin { + pinctrl-single,pins = <0x030 0x2F>; }; /* Mode 7, RxActive */ + P8_12_gpio_pu_pin: pinmux_P8_12_gpio_pu_pin { + pinctrl-single,pins = <0x030 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_12_gpio_pd_pin: pinmux_P8_12_gpio_pd_pin { + pinctrl-single,pins = <0x030 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_12_pruout_pin: pinmux_P8_12_pruout_pin { + pinctrl-single,pins = <0x030 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_12_qep_pin: pinmux_P8_12_qep_pin { + pinctrl-single,pins = <0x030 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_13 (ZCZ ball T10) */ + P8_13_default_pin: pinmux_P8_13_default_pin { + pinctrl-single,pins = <0x024 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_13_gpio_pin: pinmux_P8_13_gpio_pin { + pinctrl-single,pins = <0x024 0x2F>; }; /* Mode 7, RxActive */ + P8_13_gpio_pu_pin: pinmux_P8_13_gpio_pu_pin { + pinctrl-single,pins = <0x024 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_13_gpio_pd_pin: pinmux_P8_13_gpio_pd_pin { + pinctrl-single,pins = <0x024 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_13_pwm_pin: pinmux_P8_13_pwm_pin { + pinctrl-single,pins = <0x024 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_14 (ZCZ ball T11) */ + P8_14_default_pin: pinmux_P8_14_default_pin { + pinctrl-single,pins = <0x028 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_14_gpio_pin: pinmux_P8_14_gpio_pin { + pinctrl-single,pins = <0x028 0x2F>; }; /* Mode 7, RxActive */ + P8_14_gpio_pu_pin: pinmux_P8_14_gpio_pu_pin { + pinctrl-single,pins = <0x028 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_14_gpio_pd_pin: pinmux_P8_14_gpio_pd_pin { + pinctrl-single,pins = <0x028 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_14_pwm_pin: pinmux_P8_14_pwm_pin { + pinctrl-single,pins = <0x028 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_15 (ZCZ ball U13) */ + P8_15_default_pin: pinmux_P8_15_default_pin { + pinctrl-single,pins = <0x03c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_15_gpio_pin: pinmux_P8_15_gpio_pin { + pinctrl-single,pins = <0x03c 0x2F>; }; /* Mode 7, RxActive */ + P8_15_gpio_pu_pin: pinmux_P8_15_gpio_pu_pin { + pinctrl-single,pins = <0x03c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_15_gpio_pd_pin: pinmux_P8_15_gpio_pd_pin { + pinctrl-single,pins = <0x03c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_15_pruin_pin: pinmux_P8_15_pruin_pin { + pinctrl-single,pins = <0x03c 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_15_qep_pin: pinmux_P8_15_qep_pin { + pinctrl-single,pins = <0x03c 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_16 (ZCZ ball V13) */ + P8_16_default_pin: pinmux_P8_16_default_pin { + pinctrl-single,pins = <0x038 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_16_gpio_pin: pinmux_P8_16_gpio_pin { + pinctrl-single,pins = <0x038 0x2F>; }; /* Mode 7, RxActive */ + P8_16_gpio_pu_pin: pinmux_P8_16_gpio_pu_pin { + pinctrl-single,pins = <0x038 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_16_gpio_pd_pin: pinmux_P8_16_gpio_pd_pin { + pinctrl-single,pins = <0x038 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_16_pruin_pin: pinmux_P8_16_pruin_pin { + pinctrl-single,pins = <0x038 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_16_qep_pin: pinmux_P8_16_qep_pin { + pinctrl-single,pins = <0x038 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_17 (ZCZ ball U12) */ + P8_17_default_pin: pinmux_P8_17_default_pin { + pinctrl-single,pins = <0x02c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_17_gpio_pin: pinmux_P8_17_gpio_pin { + pinctrl-single,pins = <0x02c 0x2F>; }; /* Mode 7, RxActive */ + P8_17_gpio_pu_pin: pinmux_P8_17_gpio_pu_pin { + pinctrl-single,pins = <0x02c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_17_gpio_pd_pin: pinmux_P8_17_gpio_pd_pin { + pinctrl-single,pins = <0x02c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_17_pwm_pin: pinmux_P8_17_pwm_pin { + pinctrl-single,pins = <0x02c 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_18 (ZCZ ball V12) */ + P8_18_default_pin: pinmux_P8_18_default_pin { + pinctrl-single,pins = <0x08c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_18_gpio_pin: pinmux_P8_18_gpio_pin { + pinctrl-single,pins = <0x08c 0x2F>; }; /* Mode 7, RxActive */ + P8_18_gpio_pu_pin: pinmux_P8_18_gpio_pu_pin { + pinctrl-single,pins = <0x08c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_18_gpio_pd_pin: pinmux_P8_18_gpio_pd_pin { + pinctrl-single,pins = <0x08c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + + /* P8_19 (ZCZ ball U10) */ + P8_19_default_pin: pinmux_P8_19_default_pin { + pinctrl-single,pins = <0x020 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_19_gpio_pin: pinmux_P8_19_gpio_pin { + pinctrl-single,pins = <0x020 0x2F>; }; /* Mode 7, RxActive */ + P8_19_gpio_pu_pin: pinmux_P8_19_gpio_pu_pin { + pinctrl-single,pins = <0x020 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_19_gpio_pd_pin: pinmux_P8_19_gpio_pd_pin { + pinctrl-single,pins = <0x020 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_19_pwm_pin: pinmux_P8_19_pwm_pin { + pinctrl-single,pins = <0x020 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P8_20 (ZCZ ball V9 ) emmc */ + /* P8_21 (ZCZ ball U9 ) emmc */ + /* P8_22 (ZCZ ball V8 ) emmc */ + /* P8_23 (ZCZ ball U8 ) emmc */ + /* P8_24 (ZCZ ball V7 ) emmc */ + /* P8_25 (ZCZ ball U7 ) emmc */ + + /* P8_26 (ZCZ ball V6 ) */ + P8_26_default_pin: pinmux_P8_26_default_pin { + pinctrl-single,pins = <0x07c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_26_gpio_pin: pinmux_P8_26_gpio_pin { + pinctrl-single,pins = <0x07c 0x2F>; }; /* Mode 7, RxActive */ + P8_26_gpio_pu_pin: pinmux_P8_26_gpio_pu_pin { + pinctrl-single,pins = <0x07c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_26_gpio_pd_pin: pinmux_P8_26_gpio_pd_pin { + pinctrl-single,pins = <0x07c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + + /* P8_27 (ZCZ ball U5 ) hdmi */ + /* P8_28 (ZCZ ball V5 ) hdmi */ + /* P8_29 (ZCZ ball R5 ) hdmi */ + /* P8_30 (ZCZ ball R6 ) hdmi */ + /* P8_31 (ZCZ ball V4 ) hdmi */ + /* P8_32 (ZCZ ball T5 ) hdmi */ + /* P8_33 (ZCZ ball V3 ) hdmi */ + /* P8_34 (ZCZ ball U4 ) hdmi */ + /* P8_35 (ZCZ ball V2 ) hdmi */ + /* P8_36 (ZCZ ball U3 ) hdmi */ + /* P8_37 (ZCZ ball U1 ) hdmi */ + /* P8_38 (ZCZ ball U2 ) hdmi */ + /* P8_39 (ZCZ ball T3 ) hdmi */ + /* P8_40 (ZCZ ball T4 ) hdmi */ + /* P8_41 (ZCZ ball T1 ) hdmi */ + /* P8_42 (ZCZ ball T2 ) hdmi */ + /* P8_43 (ZCZ ball R3 ) hdmi */ + /* P8_44 (ZCZ ball R4 ) hdmi */ + /* P8_45 (ZCZ ball R1 ) hdmi */ + /* P8_46 (ZCZ ball R2 ) hdmi */ + + /************************/ + /* P9 Header */ + /************************/ + + /* P9_01 GND */ + /* P9_02 GND */ + /* P9_03 3.3V */ + /* P9_04 3.3V */ + /* P9_05 VDD_5V */ + /* P9_06 VDD_5V */ + /* P9_07 SYS_5V */ + /* P9_08 SYS_5V */ + /* P9_09 PWR_BUT */ + /* P9_10 (ZCZ ball A10) RESETn */ + + /* P9_11 (ZCZ ball T17) */ + P9_11_default_pin: pinmux_P9_11_default_pin { + pinctrl-single,pins = <0x070 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_11_gpio_pin: pinmux_P9_11_gpio_pin { + pinctrl-single,pins = <0x070 0x2F>; }; /* Mode 7, RxActive */ + P9_11_gpio_pu_pin: pinmux_P9_11_gpio_pu_pin { + pinctrl-single,pins = <0x070 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_11_gpio_pd_pin: pinmux_P9_11_gpio_pd_pin { + pinctrl-single,pins = <0x070 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_11_uart_pin: pinmux_P9_11_uart_pin { + pinctrl-single,pins = <0x070 0x36>; }; /* Mode 6, Pull-Up, RxActive */ + + /* P9_12 (ZCZ ball U18) */ + P9_12_default_pin: pinmux_P9_12_default_pin { + pinctrl-single,pins = <0x078 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_12_gpio_pin: pinmux_P9_12_gpio_pin { + pinctrl-single,pins = <0x078 0x2F>; }; /* Mode 7, RxActive */ + P9_12_gpio_pu_pin: pinmux_P9_12_gpio_pu_pin { + pinctrl-single,pins = <0x078 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_12_gpio_pd_pin: pinmux_P9_12_gpio_pd_pin { + pinctrl-single,pins = <0x078 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + + /* P9_13 (ZCZ ball U17) */ + P9_13_default_pin: pinmux_P9_13_default_pin { + pinctrl-single,pins = <0x074 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_13_gpio_pin: pinmux_P9_13_gpio_pin { + pinctrl-single,pins = <0x074 0x2F>; }; /* Mode 7, RxActive */ + P9_13_gpio_pu_pin: pinmux_P9_13_gpio_pu_pin { + pinctrl-single,pins = <0x074 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_13_gpio_pd_pin: pinmux_P9_13_gpio_pd_pin { + pinctrl-single,pins = <0x074 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_13_uart_pin: pinmux_P9_13_uart_pin { + pinctrl-single,pins = <0x074 0x36>; }; /* Mode 6, Pull-Up, RxActive */ + + /* P9_14 (ZCZ ball U14) */ + P9_14_default_pin: pinmux_P9_14_default_pin { + pinctrl-single,pins = <0x048 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_14_gpio_pin: pinmux_P9_14_gpio_pin { + pinctrl-single,pins = <0x048 0x2F>; }; /* Mode 7, RxActive */ + P9_14_gpio_pu_pin: pinmux_P9_14_gpio_pu_pin { + pinctrl-single,pins = <0x048 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_14_gpio_pd_pin: pinmux_P9_14_gpio_pd_pin { + pinctrl-single,pins = <0x048 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_14_pwm_pin: pinmux_P9_14_pwm_pin { + pinctrl-single,pins = <0x048 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_15 (ZCZ ball R13) */ + P9_15_default_pin: pinmux_P9_15_default_pin { + pinctrl-single,pins = <0x040 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_15_gpio_pin: pinmux_P9_15_gpio_pin { + pinctrl-single,pins = <0x040 0x2F>; }; /* Mode 7, RxActive */ + P9_15_gpio_pu_pin: pinmux_P9_15_gpio_pu_pin { + pinctrl-single,pins = <0x040 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_15_gpio_pd_pin: pinmux_P9_15_gpio_pd_pin { + pinctrl-single,pins = <0x040 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_15_pwm_pin: pinmux_P9_15_pwm_pin { + pinctrl-single,pins = <0x040 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_16 (ZCZ ball T14) */ + P9_16_default_pin: pinmux_P9_16_default_pin { + pinctrl-single,pins = <0x04c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_16_gpio_pin: pinmux_P9_16_gpio_pin { + pinctrl-single,pins = <0x04c 0x2F>; }; /* Mode 7, RxActive */ + P9_16_gpio_pu_pin: pinmux_P9_16_gpio_pu_pin { + pinctrl-single,pins = <0x04c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_16_gpio_pd_pin: pinmux_P9_16_gpio_pd_pin { + pinctrl-single,pins = <0x04c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_16_pwm_pin: pinmux_P9_16_pwm_pin { + pinctrl-single,pins = <0x04c 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_17 (ZCZ ball A16) */ + P9_17_default_pin: pinmux_P9_17_default_pin { + pinctrl-single,pins = <0x15c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_17_gpio_pin: pinmux_P9_17_gpio_pin { + pinctrl-single,pins = <0x15c 0x2F>; }; /* Mode 7, RxActive */ + P9_17_gpio_pu_pin: pinmux_P9_17_gpio_pu_pin { + pinctrl-single,pins = <0x15c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_17_gpio_pd_pin: pinmux_P9_17_gpio_pd_pin { + pinctrl-single,pins = <0x15c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_17_spi_pin: pinmux_P9_17_spi_pin { + pinctrl-single,pins = <0x15c 0x30>; }; /* Mode 0, Pull-Up, RxActive */ + P9_17_i2c_pin: pinmux_P9_17_i2c_pin { + pinctrl-single,pins = <0x15c 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + P9_17_pwm_pin: pinmux_P9_17_pwm_pin { + pinctrl-single,pins = <0x15c 0x33>; }; /* Mode 3, Pull-Up, RxActive */ + + /* P9_18 (ZCZ ball B16) */ + P9_18_default_pin: pinmux_P9_18_default_pin { + pinctrl-single,pins = <0x158 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_18_gpio_pin: pinmux_P9_18_gpio_pin { + pinctrl-single,pins = <0x158 0x2F>; }; /* Mode 7, RxActive */ + P9_18_gpio_pu_pin: pinmux_P9_18_gpio_pu_pin { + pinctrl-single,pins = <0x158 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_18_gpio_pd_pin: pinmux_P9_18_gpio_pd_pin { + pinctrl-single,pins = <0x158 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_18_spi_pin: pinmux_P9_18_spi_pin { + pinctrl-single,pins = <0x158 0x30>; }; /* Mode 0, Pull-Up, RxActive */ + P9_18_i2c_pin: pinmux_P9_18_i2c_pin { + pinctrl-single,pins = <0x158 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + P9_18_pwm_pin: pinmux_P9_18_pwm_pin { + pinctrl-single,pins = <0x158 0x33>; }; /* Mode 3, Pull-Up, RxActive */ + + // Leave the cape I2C EEPROM bus alone + /* P9_19 (ZCZ ball D17) I2C */ + /* P9_20 (ZCZ ball D18) I2C */ + + /* P9_21 (ZCZ ball B17) */ + P9_21_default_pin: pinmux_P9_21_default_pin { + pinctrl-single,pins = <0x154 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_21_gpio_pin: pinmux_P9_21_gpio_pin { + pinctrl-single,pins = <0x154 0x2F>; }; /* Mode 7, RxActive */ + P9_21_gpio_pu_pin: pinmux_P9_21_gpio_pu_pin { + pinctrl-single,pins = <0x154 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_21_gpio_pd_pin: pinmux_P9_21_gpio_pd_pin { + pinctrl-single,pins = <0x154 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_21_spi_pin: pinmux_P9_21_spi_pin { + pinctrl-single,pins = <0x154 0x30>; }; /* Mode 0, Pull-Up, RxActive */ + P9_21_uart_pin: pinmux_P9_21_uart_pin { + pinctrl-single,pins = <0x154 0x31>; }; /* Mode 1, Pull-Up, RxActive */ + P9_21_i2c_pin: pinmux_P9_21_i2c_pin { + pinctrl-single,pins = <0x154 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + P9_21_pwm_pin: pinmux_P9_21_pwm_pin { + pinctrl-single,pins = <0x154 0x33>; }; /* Mode 3, Pull-Up, RxActive */ + + /* P9_22 (ZCZ ball A17) */ + P9_22_default_pin: pinmux_P9_22_default_pin { + pinctrl-single,pins = <0x150 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_22_gpio_pin: pinmux_P9_22_gpio_pin { + pinctrl-single,pins = <0x150 0x2F>; }; /* Mode 7, RxActive */ + P9_22_gpio_pu_pin: pinmux_P9_22_gpio_pu_pin { + pinctrl-single,pins = <0x150 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_22_gpio_pd_pin: pinmux_P9_22_gpio_pd_pin { + pinctrl-single,pins = <0x150 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_22_spi_pin: pinmux_P9_22_spi_pin { + pinctrl-single,pins = <0x150 0x30>; }; /* Mode 0, Pull-Up, RxActive */ + P9_22_uart_pin: pinmux_P9_22_uart_pin { + pinctrl-single,pins = <0x150 0x31>; }; /* Mode 1, Pull-Up, RxActive */ + P9_22_i2c_pin: pinmux_P9_22_i2c_pin { + pinctrl-single,pins = <0x150 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + P9_22_pwm_pin: pinmux_P9_22_pwm_pin { + pinctrl-single,pins = <0x150 0x33>; }; /* Mode 3, Pull-Up, RxActive */ + + /* P9_23 (ZCZ ball V14) */ + P9_23_default_pin: pinmux_P9_23_default_pin { + pinctrl-single,pins = <0x044 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_23_gpio_pin: pinmux_P9_23_gpio_pin { + pinctrl-single,pins = <0x044 0x2F>; }; /* Mode 7, RxActive */ + P9_23_gpio_pu_pin: pinmux_P9_23_gpio_pu_pin { + pinctrl-single,pins = <0x044 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_23_gpio_pd_pin: pinmux_P9_23_gpio_pd_pin { + pinctrl-single,pins = <0x044 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_23_pwm_pin: pinmux_P9_23_pwm_pin { + pinctrl-single,pins = <0x044 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_24 (ZCZ ball D15) */ + P9_24_default_pin: pinmux_P9_24_default_pin { + pinctrl-single,pins = <0x184 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_24_gpio_pin: pinmux_P9_24_gpio_pin { + pinctrl-single,pins = <0x184 0x2F>; }; /* Mode 7, RxActive */ + P9_24_gpio_pu_pin: pinmux_P9_24_gpio_pu_pin { + pinctrl-single,pins = <0x184 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_24_gpio_pd_pin: pinmux_P9_24_gpio_pd_pin { + pinctrl-single,pins = <0x184 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_24_uart_pin: pinmux_P9_24_uart_pin { + pinctrl-single,pins = <0x184 0x30>; }; /* Mode 0, Pull-Up, RxActive */ + P9_24_can_pin: pinmux_P9_24_can_pin { + pinctrl-single,pins = <0x184 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + P9_24_i2c_pin: pinmux_P9_24_i2c_pin { + pinctrl-single,pins = <0x184 0x33>; }; /* Mode 3, Pull-Up, RxActive */ + P9_24_pruin_pin: pinmux_P9_24_pruin_pin { + pinctrl-single,pins = <0x184 0x36>; }; /* Mode 6, Pull-Up, RxActive */ + + /* P9_25 (ZCZ ball A14) Audio */ + P9_25_default_pin: pinmux_P9_25_default_pin { + pinctrl-single,pins = <0x1ac 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_25_gpio_pin: pinmux_P9_25_gpio_pin { + pinctrl-single,pins = <0x1ac 0x2F>; }; /* Mode 7, RxActive */ + P9_25_gpio_pu_pin: pinmux_P9_25_gpio_pu_pin { + pinctrl-single,pins = <0x1ac 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_25_gpio_pd_pin: pinmux_P9_25_gpio_pd_pin { + pinctrl-single,pins = <0x1ac 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_25_qep_pin: pinmux_P9_25_qep_pin { + pinctrl-single,pins = <0x1ac 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_25_pruout_pin: pinmux_P9_25_pruout_pin { + pinctrl-single,pins = <0x1ac 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_25_pruin_pin: pinmux_P9_25_pruin_pin { + pinctrl-single,pins = <0x1ac 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_26 (ZCZ ball D16) */ + P9_26_default_pin: pinmux_P9_26_default_pin { + pinctrl-single,pins = <0x180 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_26_gpio_pin: pinmux_P9_26_gpio_pin { + pinctrl-single,pins = <0x180 0x2F>; }; /* Mode 7, RxActive */ + P9_26_gpio_pu_pin: pinmux_P9_26_gpio_pu_pin { + pinctrl-single,pins = <0x180 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_26_gpio_pd_pin: pinmux_P9_26_gpio_pd_pin { + pinctrl-single,pins = <0x180 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_26_uart_pin: pinmux_P9_26_uart_pin { + pinctrl-single,pins = <0x180 0x30>; }; /* Mode 0, Pull-Up, RxActive */ + P9_26_can_pin: pinmux_P9_26_can_pin { + pinctrl-single,pins = <0x180 0x32>; }; /* Mode 2, Pull-Up, RxActive */ + P9_26_i2c_pin: pinmux_P9_26_i2c_pin { + pinctrl-single,pins = <0x180 0x33>; }; /* Mode 3, Pull-Up, RxActive */ + P9_26_pruin_pin: pinmux_P9_26_pruin_pin { + pinctrl-single,pins = <0x180 0x36>; }; /* Mode 6, Pull-Up, RxActive */ + + /* P9_27 (ZCZ ball C13) */ + P9_27_default_pin: pinmux_P9_27_default_pin { + pinctrl-single,pins = <0x1a4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_27_gpio_pin: pinmux_P9_27_gpio_pin { + pinctrl-single,pins = <0x1a4 0x2F>; }; /* Mode 7, RxActive */ + P9_27_gpio_pu_pin: pinmux_P9_27_gpio_pu_pin { + pinctrl-single,pins = <0x1a4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_27_gpio_pd_pin: pinmux_P9_27_gpio_pd_pin { + pinctrl-single,pins = <0x1a4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_27_qep_pin: pinmux_P9_27_qep_pin { + pinctrl-single,pins = <0x1a4 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_27_pruout_pin: pinmux_P9_27_pruout_pin { + pinctrl-single,pins = <0x1a4 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_27_pruin_pin: pinmux_P9_27_pruin_pin { + pinctrl-single,pins = <0x1a4 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_28 (ZCZ ball C12) Audio */ + P9_28_default_pin: pinmux_P9_28_default_pin { + pinctrl-single,pins = <0x19c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_28_gpio_pin: pinmux_P9_28_gpio_pin { + pinctrl-single,pins = <0x19c 0x2F>; }; /* Mode 7, RxActive */ + P9_28_gpio_pu_pin: pinmux_P9_28_gpio_pu_pin { + pinctrl-single,pins = <0x19c 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_28_gpio_pd_pin: pinmux_P9_28_gpio_pd_pin { + pinctrl-single,pins = <0x19c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_28_pwm_pin: pinmux_P9_28_pwm_pin { + pinctrl-single,pins = <0x19c 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_28_spi_pin: pinmux_P9_28_spi_pin { + pinctrl-single,pins = <0x19c 0x23>; }; /* Mode 3, Pull-Down, RxActive */ + P9_28_pwm2_pin: pinmux_P9_28_pwm2_pin { + pinctrl-single,pins = <0x19c 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + P9_28_pruout_pin: pinmux_P9_28_pruout_pin { + pinctrl-single,pins = <0x19c 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_28_pruin_pin: pinmux_P9_28_pruin_pin { + pinctrl-single,pins = <0x19c 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_29 (ZCZ ball B13) Audio */ + P9_29_default_pin: pinmux_P9_29_default_pin { + pinctrl-single,pins = <0x194 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_29_gpio_pin: pinmux_P9_29_gpio_pin { + pinctrl-single,pins = <0x194 0x2F>; }; /* Mode 7, RxActive */ + P9_29_gpio_pu_pin: pinmux_P9_29_gpio_pu_pin { + pinctrl-single,pins = <0x194 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_29_gpio_pd_pin: pinmux_P9_29_gpio_pd_pin { + pinctrl-single,pins = <0x194 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_29_pwm_pin: pinmux_P9_29_pwm_pin { + pinctrl-single,pins = <0x194 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_29_spi_pin: pinmux_P9_29_spi_pin { + pinctrl-single,pins = <0x194 0x23>; }; /* Mode 3, Pull-Down, RxActive */ + P9_29_pruout_pin: pinmux_P9_29_pruout_pin { + pinctrl-single,pins = <0x194 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_29_pruin_pin: pinmux_P9_29_pruin_pin { + pinctrl-single,pins = <0x194 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_30 (ZCZ ball D12) */ + P9_30_default_pin: pinmux_P9_30_default_pin { + pinctrl-single,pins = <0x198 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_30_gpio_pin: pinmux_P9_30_gpio_pin { + pinctrl-single,pins = <0x198 0x2F>; }; /* Mode 7, RxActive */ + P9_30_gpio_pu_pin: pinmux_P9_30_gpio_pu_pin { + pinctrl-single,pins = <0x198 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_30_gpio_pd_pin: pinmux_P9_30_gpio_pd_pin { + pinctrl-single,pins = <0x198 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_30_pwm_pin: pinmux_P9_30_pwm_pin { + pinctrl-single,pins = <0x198 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_30_spi_pin: pinmux_P9_30_spi_pin { + pinctrl-single,pins = <0x198 0x23>; }; /* Mode 3, Pull-Down, RxActive */ + P9_30_pruout_pin: pinmux_P9_30_pruout_pin { + pinctrl-single,pins = <0x198 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_30_pruin_pin: pinmux_P9_30_pruin_pin { + pinctrl-single,pins = <0x198 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_31 (ZCZ ball A13) Audio */ + P9_31_default_pin: pinmux_P9_31_default_pin { + pinctrl-single,pins = <0x190 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_31_gpio_pin: pinmux_P9_31_gpio_pin { + pinctrl-single,pins = <0x190 0x2F>; }; /* Mode 7, RxActive */ + P9_31_gpio_pu_pin: pinmux_P9_31_gpio_pu_pin { + pinctrl-single,pins = <0x190 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_31_gpio_pd_pin: pinmux_P9_31_gpio_pd_pin { + pinctrl-single,pins = <0x190 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_31_pwm_pin: pinmux_P9_31_pwm_pin { + pinctrl-single,pins = <0x190 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_31_spi_pin: pinmux_P9_31_spi_pin { + pinctrl-single,pins = <0x190 0x23>; }; /* Mode 3, Pull-Down, RxActive */ + P9_31_pruout_pin: pinmux_P9_31_pruout_pin { + pinctrl-single,pins = <0x190 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_31_pruin_pin: pinmux_P9_31_pruin_pin { + pinctrl-single,pins = <0x190 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_32 VADC */ + /* P9_33 (ZCZ ball C8 ) AIN4 */ + /* P9_34 AGND */ + /* P9_35 (ZCZ ball A8 ) AIN6 */ + /* P9_36 (ZCZ ball B8 ) AIN5 */ + /* P9_37 (ZCZ ball B7 ) AIN2 */ + /* P9_38 (ZCZ ball A7 ) AIN3 */ + /* P9_39 (ZCZ ball B6 ) AIN0 */ + /* P9_40 (ZCZ ball C7 ) AIN1 */ + + /* P9_41 (ZCZ ball D14) */ + P9_41_default_pin: pinmux_P9_41_default_pin { + pinctrl-single,pins = <0x1b4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_41_gpio_pin: pinmux_P9_41_gpio_pin { + pinctrl-single,pins = <0x1b4 0x2F>; }; /* Mode 7, RxActive */ + P9_41_gpio_pu_pin: pinmux_P9_41_gpio_pu_pin { + pinctrl-single,pins = <0x1b4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_41_gpio_pd_pin: pinmux_P9_41_gpio_pd_pin { + pinctrl-single,pins = <0x1b4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_41_timer_pin: pinmux_P9_41_timer_pin { + pinctrl-single,pins = <0x1b4 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + P9_41_pruin_pin: pinmux_P9_41_pruin_pin { + pinctrl-single,pins = <0x1b4 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + + /* P9_41.1 */ + /* P9_91 (ZCZ ball D13) */ + P9_91_default_pin: pinmux_P9_91_default_pin { + pinctrl-single,pins = <0x1a8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_91_gpio_pin: pinmux_P9_91_gpio_pin { + pinctrl-single,pins = <0x1a8 0x2F>; }; /* Mode 7, RxActive */ + P9_91_gpio_pu_pin: pinmux_P9_91_gpio_pu_pin { + pinctrl-single,pins = <0x1a8 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_91_gpio_pd_pin: pinmux_P9_91_gpio_pd_pin { + pinctrl-single,pins = <0x1a8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_91_qep_pin: pinmux_P9_91_qep_pin { + pinctrl-single,pins = <0x1a8 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_91_pruout_pin: pinmux_P9_91_pruout_pin { + pinctrl-single,pins = <0x1a8 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_91_pruin_pin: pinmux_P9_91_pruin_pin { + pinctrl-single,pins = <0x1a8 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_42 (ZCZ ball C18) */ + P9_42_default_pin: pinmux_P9_42_default_pin { + pinctrl-single,pins = <0x164 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_42_gpio_pin: pinmux_P9_42_gpio_pin { + pinctrl-single,pins = <0x164 0x2F>; }; /* Mode 7, RxActive */ + P9_42_gpio_pu_pin: pinmux_P9_42_gpio_pu_pin { + pinctrl-single,pins = <0x164 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_42_gpio_pd_pin: pinmux_P9_42_gpio_pd_pin { + pinctrl-single,pins = <0x164 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_42_pwm_pin: pinmux_P9_42_pwm_pin { + pinctrl-single,pins = <0x164 0x20>; }; /* Mode 0, Pull-Down, RxActive */ + P9_42_uart_pin: pinmux_P9_42_uart_pin { + pinctrl-single,pins = <0x164 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_42_spics_pin: pinmux_P9_42_spics_pin { + pinctrl-single,pins = <0x164 0x22>; }; /* Mode 2, Pull-Down, RxActive */ + P9_42_spiclk_pin: pinmux_P9_42_spiclk_pin { + pinctrl-single,pins = <0x164 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + + /* P9_42.1 */ + /* P9_92 (ZCZ ball B12) */ + P9_92_default_pin: pinmux_P9_92_default_pin { + pinctrl-single,pins = <0x1a0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_92_gpio_pin: pinmux_P9_92_gpio_pin { + pinctrl-single,pins = <0x1a0 0x2F>; }; /* Mode 7, RxActive */ + P9_92_gpio_pu_pin: pinmux_P9_92_gpio_pu_pin { + pinctrl-single,pins = <0x1a0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P9_92_gpio_pd_pin: pinmux_P9_92_gpio_pd_pin { + pinctrl-single,pins = <0x1a0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P9_92_qep_pin: pinmux_P9_92_qep_pin { + pinctrl-single,pins = <0x1a0 0x21>; }; /* Mode 1, Pull-Down, RxActive */ + P9_92_pruout_pin: pinmux_P9_92_pruout_pin { + pinctrl-single,pins = <0x1a0 0x25>; }; /* Mode 5, Pull-Down, RxActive */ + P9_92_pruin_pin: pinmux_P9_92_pruin_pin { + pinctrl-single,pins = <0x1a0 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + + /* P9_43 GND */ + /* P9_44 GND */ + /* P9_45 GND */ + /* P9_46 GND */ +}; + +/**********************************************************************/ +/* Pin Multiplex Helpers */ +/* */ +/* These provide userspace runtime pin configuration for the */ +/* BeagleBone cape expansion headers */ +/**********************************************************************/ + +&ocp { + /************************/ + /* P8 Header */ + /************************/ + + P8_07_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer"; + pinctrl-0 = <&P8_07_default_pin>; + pinctrl-1 = <&P8_07_gpio_pin>; + pinctrl-2 = <&P8_07_gpio_pu_pin>; + pinctrl-3 = <&P8_07_gpio_pd_pin>; + pinctrl-4 = <&P8_07_timer_pin>; + }; + + P8_08_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer"; + pinctrl-0 = <&P8_08_default_pin>; + pinctrl-1 = <&P8_08_gpio_pin>; + pinctrl-2 = <&P8_08_gpio_pu_pin>; + pinctrl-3 = <&P8_08_gpio_pd_pin>; + pinctrl-4 = <&P8_08_timer_pin>; + }; + + P8_09_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer"; + pinctrl-0 = <&P8_09_default_pin>; + pinctrl-1 = <&P8_09_gpio_pin>; + pinctrl-2 = <&P8_09_gpio_pu_pin>; + pinctrl-3 = <&P8_09_gpio_pd_pin>; + pinctrl-4 = <&P8_09_timer_pin>; + }; + + P8_10_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer"; + pinctrl-0 = <&P8_10_default_pin>; + pinctrl-1 = <&P8_10_gpio_pin>; + pinctrl-2 = <&P8_10_gpio_pu_pin>; + pinctrl-3 = <&P8_10_gpio_pd_pin>; + pinctrl-4 = <&P8_10_timer_pin>; + }; + + P8_11_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "qep"; + pinctrl-0 = <&P8_11_default_pin>; + pinctrl-1 = <&P8_11_gpio_pin>; + pinctrl-2 = <&P8_11_gpio_pu_pin>; + pinctrl-3 = <&P8_11_gpio_pd_pin>; + pinctrl-4 = <&P8_11_pruout_pin>; + pinctrl-5 = <&P8_11_qep_pin>; + }; + + P8_12_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "qep"; + pinctrl-0 = <&P8_12_default_pin>; + pinctrl-1 = <&P8_12_gpio_pin>; + pinctrl-2 = <&P8_12_gpio_pu_pin>; + pinctrl-3 = <&P8_12_gpio_pd_pin>; + pinctrl-4 = <&P8_12_pruout_pin>; + pinctrl-5 = <&P8_12_qep_pin>; + }; + + P8_13_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P8_13_default_pin>; + pinctrl-1 = <&P8_13_gpio_pin>; + pinctrl-2 = <&P8_13_gpio_pu_pin>; + pinctrl-3 = <&P8_13_gpio_pd_pin>; + pinctrl-4 = <&P8_13_pwm_pin>; + }; + + P8_14_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P8_14_default_pin>; + pinctrl-1 = <&P8_14_gpio_pin>; + pinctrl-2 = <&P8_14_gpio_pu_pin>; + pinctrl-3 = <&P8_14_gpio_pd_pin>; + pinctrl-4 = <&P8_14_pwm_pin>; + }; + + P8_15_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruin", "qep"; + pinctrl-0 = <&P8_15_default_pin>; + pinctrl-1 = <&P8_15_gpio_pin>; + pinctrl-2 = <&P8_15_gpio_pu_pin>; + pinctrl-3 = <&P8_15_gpio_pd_pin>; + pinctrl-4 = <&P8_15_pruin_pin>; + pinctrl-5 = <&P8_15_qep_pin>; + }; + + P8_16_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruin", "qep"; + pinctrl-0 = <&P8_16_default_pin>; + pinctrl-1 = <&P8_16_gpio_pin>; + pinctrl-2 = <&P8_16_gpio_pu_pin>; + pinctrl-3 = <&P8_16_gpio_pd_pin>; + pinctrl-4 = <&P8_16_pruin_pin>; + pinctrl-5 = <&P8_16_qep_pin>; + }; + + P8_17_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P8_17_default_pin>; + pinctrl-1 = <&P8_17_gpio_pin>; + pinctrl-2 = <&P8_17_gpio_pu_pin>; + pinctrl-3 = <&P8_17_gpio_pd_pin>; + pinctrl-4 = <&P8_17_pwm_pin>; + }; + + P8_18_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P8_18_default_pin>; + pinctrl-1 = <&P8_18_gpio_pin>; + pinctrl-2 = <&P8_18_gpio_pu_pin>; + pinctrl-3 = <&P8_18_gpio_pd_pin>; + }; + + P8_19_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P8_19_default_pin>; + pinctrl-1 = <&P8_19_gpio_pin>; + pinctrl-2 = <&P8_19_gpio_pu_pin>; + pinctrl-3 = <&P8_19_gpio_pd_pin>; + pinctrl-4 = <&P8_19_pwm_pin>; + }; + + P8_26_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P8_26_default_pin>; + pinctrl-1 = <&P8_26_gpio_pin>; + pinctrl-2 = <&P8_26_gpio_pu_pin>; + pinctrl-3 = <&P8_26_gpio_pd_pin>; + }; + + /************************/ + /* P9 Header */ + /************************/ + + P9_11_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart"; + pinctrl-0 = <&P9_11_default_pin>; + pinctrl-1 = <&P9_11_gpio_pin>; + pinctrl-2 = <&P9_11_gpio_pu_pin>; + pinctrl-3 = <&P9_11_gpio_pd_pin>; + pinctrl-4 = <&P9_11_uart_pin>; + }; + + P9_12_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P9_12_default_pin>; + pinctrl-1 = <&P9_12_gpio_pin>; + pinctrl-2 = <&P9_12_gpio_pu_pin>; + pinctrl-3 = <&P9_12_gpio_pd_pin>; + }; + + P9_13_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart"; + pinctrl-0 = <&P9_13_default_pin>; + pinctrl-1 = <&P9_13_gpio_pin>; + pinctrl-2 = <&P9_13_gpio_pu_pin>; + pinctrl-3 = <&P9_13_gpio_pd_pin>; + pinctrl-4 = <&P9_13_uart_pin>; + }; + + P9_14_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P9_14_default_pin>; + pinctrl-1 = <&P9_14_gpio_pin>; + pinctrl-2 = <&P9_14_gpio_pu_pin>; + pinctrl-3 = <&P9_14_gpio_pd_pin>; + pinctrl-4 = <&P9_14_pwm_pin>; + }; + + P9_15_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P9_15_default_pin>; + pinctrl-1 = <&P9_15_gpio_pin>; + pinctrl-2 = <&P9_15_gpio_pu_pin>; + pinctrl-3 = <&P9_15_gpio_pd_pin>; + pinctrl-4 = <&P9_15_pwm_pin>; + }; + + P9_16_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P9_16_default_pin>; + pinctrl-1 = <&P9_16_gpio_pin>; + pinctrl-2 = <&P9_16_gpio_pu_pin>; + pinctrl-3 = <&P9_16_gpio_pd_pin>; + pinctrl-4 = <&P9_16_pwm_pin>; + }; + + P9_17_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "i2c", "pwm"; + pinctrl-0 = <&P9_17_default_pin>; + pinctrl-1 = <&P9_17_gpio_pin>; + pinctrl-2 = <&P9_17_gpio_pu_pin>; + pinctrl-3 = <&P9_17_gpio_pd_pin>; + pinctrl-4 = <&P9_17_spi_pin>; + pinctrl-5 = <&P9_17_i2c_pin>; + pinctrl-6 = <&P9_17_pwm_pin>; + }; + + P9_18_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "i2c", "pwm"; + pinctrl-0 = <&P9_18_default_pin>; + pinctrl-1 = <&P9_18_gpio_pin>; + pinctrl-2 = <&P9_18_gpio_pu_pin>; + pinctrl-3 = <&P9_18_gpio_pd_pin>; + pinctrl-4 = <&P9_18_spi_pin>; + pinctrl-5 = <&P9_18_i2c_pin>; + pinctrl-6 = <&P9_18_pwm_pin>; + }; + + // I2C Pins + // P9_19_pinmux + // P9_20_pinmux + + P9_21_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "uart", "i2c", "pwm"; + pinctrl-0 = <&P9_21_default_pin>; + pinctrl-1 = <&P9_21_gpio_pin>; + pinctrl-2 = <&P9_21_gpio_pu_pin>; + pinctrl-3 = <&P9_21_gpio_pd_pin>; + pinctrl-4 = <&P9_21_spi_pin>; + pinctrl-5 = <&P9_21_uart_pin>; + pinctrl-6 = <&P9_21_i2c_pin>; + pinctrl-7 = <&P9_21_pwm_pin>; + }; + + P9_22_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "uart", "i2c", "pwm"; + pinctrl-0 = <&P9_22_default_pin>; + pinctrl-1 = <&P9_22_gpio_pin>; + pinctrl-2 = <&P9_22_gpio_pu_pin>; + pinctrl-3 = <&P9_22_gpio_pd_pin>; + pinctrl-4 = <&P9_22_spi_pin>; + pinctrl-5 = <&P9_22_uart_pin>; + pinctrl-6 = <&P9_22_i2c_pin>; + pinctrl-7 = <&P9_22_pwm_pin>; + }; + + P9_23_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm"; + pinctrl-0 = <&P9_23_default_pin>; + pinctrl-1 = <&P9_23_gpio_pin>; + pinctrl-2 = <&P9_23_gpio_pu_pin>; + pinctrl-3 = <&P9_23_gpio_pd_pin>; + pinctrl-4 = <&P9_23_pwm_pin>; + }; + + P9_24_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart", "can", "i2c", "pruin"; + pinctrl-0 = <&P9_24_default_pin>; + pinctrl-1 = <&P9_24_gpio_pin>; + pinctrl-2 = <&P9_24_gpio_pu_pin>; + pinctrl-3 = <&P9_24_gpio_pd_pin>; + pinctrl-4 = <&P9_24_uart_pin>; + pinctrl-5 = <&P9_24_can_pin>; + pinctrl-6 = <&P9_24_i2c_pin>; + pinctrl-7 = <&P9_24_pruin_pin>; + }; + + P9_25_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin"; + pinctrl-0 = <&P9_25_default_pin>; + pinctrl-1 = <&P9_25_gpio_pin>; + pinctrl-2 = <&P9_25_gpio_pu_pin>; + pinctrl-3 = <&P9_25_gpio_pd_pin>; + pinctrl-4 = <&P9_25_qep_pin>; + pinctrl-5 = <&P9_25_pruout_pin>; + pinctrl-6 = <&P9_25_pruin_pin>; + }; + + P9_26_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart", "can", "i2c", "pruin"; + pinctrl-0 = <&P9_26_default_pin>; + pinctrl-1 = <&P9_26_gpio_pin>; + pinctrl-2 = <&P9_26_gpio_pu_pin>; + pinctrl-3 = <&P9_26_gpio_pd_pin>; + pinctrl-4 = <&P9_26_uart_pin>; + pinctrl-5 = <&P9_26_can_pin>; + pinctrl-6 = <&P9_26_i2c_pin>; + pinctrl-7 = <&P9_26_pruin_pin>; + }; + + P9_27_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin"; + pinctrl-0 = <&P9_27_default_pin>; + pinctrl-1 = <&P9_27_gpio_pin>; + pinctrl-2 = <&P9_27_gpio_pu_pin>; + pinctrl-3 = <&P9_27_gpio_pd_pin>; + pinctrl-4 = <&P9_27_qep_pin>; + pinctrl-5 = <&P9_27_pruout_pin>; + pinctrl-6 = <&P9_27_pruin_pin>; + }; + + P9_28_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pwm2", "pruout", "pruin"; + pinctrl-0 = <&P9_28_default_pin>; + pinctrl-1 = <&P9_28_gpio_pin>; + pinctrl-2 = <&P9_28_gpio_pu_pin>; + pinctrl-3 = <&P9_28_gpio_pd_pin>; + pinctrl-4 = <&P9_28_pwm_pin>; + pinctrl-5 = <&P9_28_spi_pin>; + pinctrl-6 = <&P9_28_pwm2_pin>; + pinctrl-7 = <&P9_28_pruout_pin>; + pinctrl-8 = <&P9_28_pruin_pin>; + }; + + P9_29_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin"; + pinctrl-0 = <&P9_29_default_pin>; + pinctrl-1 = <&P9_29_gpio_pin>; + pinctrl-2 = <&P9_29_gpio_pu_pin>; + pinctrl-3 = <&P9_29_gpio_pd_pin>; + pinctrl-4 = <&P9_29_pwm_pin>; + pinctrl-5 = <&P9_29_spi_pin>; + pinctrl-6 = <&P9_29_pruout_pin>; + pinctrl-7 = <&P9_29_pruin_pin>; + }; + + P9_30_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin"; + pinctrl-0 = <&P9_30_default_pin>; + pinctrl-1 = <&P9_30_gpio_pin>; + pinctrl-2 = <&P9_30_gpio_pu_pin>; + pinctrl-3 = <&P9_30_gpio_pd_pin>; + pinctrl-4 = <&P9_30_pwm_pin>; + pinctrl-5 = <&P9_30_spi_pin>; + pinctrl-6 = <&P9_30_pruout_pin>; + pinctrl-7 = <&P9_30_pruin_pin>; + }; + + P9_31_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin"; + pinctrl-0 = <&P9_31_default_pin>; + pinctrl-1 = <&P9_31_gpio_pin>; + pinctrl-2 = <&P9_31_gpio_pu_pin>; + pinctrl-3 = <&P9_31_gpio_pd_pin>; + pinctrl-4 = <&P9_31_pwm_pin>; + pinctrl-5 = <&P9_31_spi_pin>; + pinctrl-6 = <&P9_31_pruout_pin>; + pinctrl-7 = <&P9_31_pruin_pin>; + }; + + P9_41_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer", "pruin"; + pinctrl-0 = <&P9_41_default_pin>; + pinctrl-1 = <&P9_41_gpio_pin>; + pinctrl-2 = <&P9_41_gpio_pu_pin>; + pinctrl-3 = <&P9_41_gpio_pd_pin>; + pinctrl-4 = <&P9_41_timer_pin>; + pinctrl-5 = <&P9_41_pruin_pin>; + }; + + P9_91_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin"; + pinctrl-0 = <&P9_91_default_pin>; + pinctrl-1 = <&P9_91_gpio_pin>; + pinctrl-2 = <&P9_91_gpio_pu_pin>; + pinctrl-3 = <&P9_91_gpio_pd_pin>; + pinctrl-4 = <&P9_91_qep_pin>; + pinctrl-5 = <&P9_91_pruout_pin>; + pinctrl-6 = <&P9_91_pruin_pin>; + }; + + P9_42_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "uart", "spics", "spiclk"; + pinctrl-0 = <&P9_42_default_pin>; + pinctrl-1 = <&P9_42_gpio_pin>; + pinctrl-2 = <&P9_42_gpio_pu_pin>; + pinctrl-3 = <&P9_42_gpio_pd_pin>; + pinctrl-4 = <&P9_42_pwm_pin>; + pinctrl-5 = <&P9_42_uart_pin>; + pinctrl-6 = <&P9_42_spics_pin>; + pinctrl-7 = <&P9_42_spiclk_pin>; + }; + + P9_92_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin"; + pinctrl-0 = <&P9_92_default_pin>; + pinctrl-1 = <&P9_92_gpio_pin>; + pinctrl-2 = <&P9_92_gpio_pu_pin>; + pinctrl-3 = <&P9_92_gpio_pd_pin>; + pinctrl-4 = <&P9_92_qep_pin>; + pinctrl-5 = <&P9_92_pruout_pin>; + pinctrl-6 = <&P9_92_pruin_pin>; + }; + + cape-universal { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <>; + + P8_07 { + gpio-name = "P8_07"; + gpio = <&gpio2 2 0>; + input; + dir-changeable; + }; + P8_08 { + gpio-name = "P8_08"; + gpio = <&gpio2 3 0>; + input; + dir-changeable; + }; + P8_09 { + gpio-name = "P8_09"; + gpio = <&gpio2 5 0>; + input; + dir-changeable; + }; + P8_10 { + gpio-name = "P8_10"; + gpio = <&gpio2 4 0>; + input; + dir-changeable; + }; + P8_11 { + gpio-name = "P8_11"; + gpio = <&gpio1 13 0>; + input; + dir-changeable; + }; + P8_12 { + gpio-name = "P8_12"; + gpio = <&gpio1 12 0>; + input; + dir-changeable; + }; + P8_13 { + gpio-name = "P8_13"; + gpio = <&gpio0 23 0>; + input; + dir-changeable; + }; + P8_14 { + gpio-name = "P8_14"; + gpio = <&gpio0 26 0>; + input; + dir-changeable; + }; + P8_15 { + gpio-name = "P8_15"; + gpio = <&gpio1 15 0>; + input; + dir-changeable; + }; + P8_16 { + gpio-name = "P8_16"; + gpio = <&gpio1 14 0>; + input; + dir-changeable; + }; + P8_17 { + gpio-name = "P8_17"; + gpio = <&gpio0 27 0>; + input; + dir-changeable; + }; + P8_18 { + gpio-name = "P8_18"; + gpio = <&gpio2 1 0>; + input; + dir-changeable; + }; + P8_19 { + gpio-name = "P8_19"; + gpio = <&gpio0 22 0>; + input; + dir-changeable; + }; + P8_26 { + gpio-name = "P8_26"; + gpio = <&gpio1 29 0>; + input; + dir-changeable; + }; + + P9_11 { + gpio-name = "P9_11"; + gpio = <&gpio0 30 0>; + input; + dir-changeable; + }; + P9_12 { + gpio-name = "P9_12"; + gpio = <&gpio1 28 0>; + input; + dir-changeable; + }; + P9_13 { + gpio-name = "P9_13"; + gpio = <&gpio0 31 0>; + input; + dir-changeable; + }; + P9_14 { + gpio-name = "P9_14"; + gpio = <&gpio1 18 0>; + input; + dir-changeable; + }; + P9_15 { + gpio-name = "P9_15"; + gpio = <&gpio1 16 0>; + input; + dir-changeable; + }; + P9_16 { + gpio-name = "P9_16"; + gpio = <&gpio1 19 0>; + input; + dir-changeable; + }; + P9_17 { + gpio-name = "P9_17"; + gpio = <&gpio0 5 0>; + input; + dir-changeable; + }; + P9_18 { + gpio-name = "P9_18"; + gpio = <&gpio0 4 0>; + input; + dir-changeable; + }; + + // I2C pins + // P9_19 + // P9_20 + + P9_21 { + gpio-name = "P9_21"; + gpio = <&gpio0 3 0>; + input; + dir-changeable; + }; + P9_22 { + gpio-name = "P9_22"; + gpio = <&gpio0 2 0>; + input; + dir-changeable; + }; + P9_23 { + gpio-name = "P9_23"; + gpio = <&gpio1 17 0>; + input; + dir-changeable; + }; + P9_24 { + gpio-name = "P9_24"; + gpio = <&gpio0 15 0>; + input; + dir-changeable; + }; + P9_25 { + gpio-name = "P9_25"; + gpio = <&gpio3 21 0>; + input; + dir-changeable; + }; + P9_26 { + gpio-name = "P9_26"; + gpio = <&gpio0 14 0>; + input; + dir-changeable; + }; + P9_27 { + gpio-name = "P9_27"; + gpio = <&gpio3 19 0>; + input; + dir-changeable; + }; + P9_28 { + gpio-name = "P9_28"; + gpio = <&gpio3 17 0>; + input; + dir-changeable; + }; + P9_29 { + gpio-name = "P9_29"; + gpio = <&gpio3 15 0>; + input; + dir-changeable; + }; + P9_30 { + gpio-name = "P9_30"; + gpio = <&gpio3 16 0>; + input; + dir-changeable; + }; + P9_31 { + gpio-name = "P9_31"; + gpio = <&gpio3 14 0>; + input; + dir-changeable; + }; + P9_41 { + gpio-name = "P9_41"; + gpio = <&gpio0 20 0>; + input; + dir-changeable; + }; + P9_91 { + gpio-name = "P9_91"; + gpio = <&gpio3 20 0>; + input; + dir-changeable; + }; + P9_42 { + gpio-name = "P9_42"; + gpio = <&gpio0 7 0>; + input; + dir-changeable; + }; + P9_92 { + gpio-name = "P9_92"; + gpio = <&gpio3 18 0>; + input; + dir-changeable; + }; + }; +}; From 5e0cab5aadc3c94f9664c4d0dab4babc8f9203f3 Mon Sep 17 00:00:00 2001 From: Charles Steinkuehler Date: Tue, 16 Sep 2014 20:42:56 +0000 Subject: [PATCH 10/63] bone-pinmux-helper: Add support for "mode" device-tree parameter The new mode parameter is used to set the initial pinmux mode to something other than "default" or NULL, which is what happens currently. This allows enabling SoC hardware via device-tree which requires specific pinmux settings to function on boot, but still leaves the pinmux register under control of the bone-pinmux- helper driver meaning the pinmux setting can be changed at run time via user-mode access to sysfs. Signed-off-by: Charles Steinkuehler --- .../misc/cape/beaglebone/bone-pinmux-helper.c | 58 +++++++++++++++---- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c index 50743657ef242..d81363a77b103 100644 --- a/drivers/misc/cape/beaglebone/bone-pinmux-helper.c +++ b/drivers/misc/cape/beaglebone/bone-pinmux-helper.c @@ -117,6 +117,8 @@ static int bone_pinmux_helper_probe(struct platform_device *pdev) struct pinmux_helper_data *data; struct pinctrl_state *state; char *state_name; + const char *mode_name; + int mode_len; int err; data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); @@ -125,12 +127,13 @@ static int bone_pinmux_helper_probe(struct platform_device *pdev) err = -ENOMEM; goto err_no_mem; } + state_name = kmalloc(strlen(PINCTRL_STATE_DEFAULT) + 1, GFP_KERNEL); if (state_name == NULL) { dev_err(dev, "Failed to allocate state name\n"); err = -ENOMEM; - goto err_no_mem; + goto err_no_state_mem; } data->selected_state_name = state_name; strcpy(data->selected_state_name, PINCTRL_STATE_DEFAULT); @@ -144,17 +147,47 @@ static int bone_pinmux_helper_probe(struct platform_device *pdev) goto err_no_pinctrl; } - /* try to select default state at first (if it exists) */ - state = pinctrl_lookup_state(data->pinctrl, - data->selected_state_name); - if (!IS_ERR(state)) { - err = pinctrl_select_state(data->pinctrl, state); - if (err != 0) { - dev_err(dev, "Failed to select default state\n"); - goto err_no_state; + /* See if an initial mode is specified in the device tree */ + mode_name = of_get_property(dev->of_node, "mode", &mode_len); + + err = -1; + if (mode_name != NULL ) { + state_name = kmalloc(mode_len + 1, GFP_KERNEL); + if (state_name == NULL) { + dev_err(dev, "Failed to allocate state name\n"); + err = -ENOMEM; + goto err_no_mode_mem; + } + strncpy(state_name, mode_name, mode_len); + + /* try to select requested mode */ + state = pinctrl_lookup_state(data->pinctrl, state_name); + if (!IS_ERR(state)) { + err = pinctrl_select_state(data->pinctrl, state); + if (err != 0) { + dev_warn(dev, "Unable to select requested mode %s\n", state_name); + kfree(state_name); + } else { + kfree(data->selected_state_name); + data->selected_state_name = state_name; + dev_notice(dev, "Set initial pinmux mode to %s\n", state_name); + } + } + } + + /* try to select default state if mode_name failed */ + if ( err != 0) { + state = pinctrl_lookup_state(data->pinctrl, + data->selected_state_name); + if (!IS_ERR(state)) { + err = pinctrl_select_state(data->pinctrl, state); + if (err != 0) { + dev_err(dev, "Failed to select default state\n"); + goto err_no_state; + } + } else { + data->selected_state_name = '\0'; } - } else { - data->selected_state_name = '\0'; } /* Register sysfs hooks */ @@ -168,8 +201,11 @@ static int bone_pinmux_helper_probe(struct platform_device *pdev) err_no_sysfs: err_no_state: +err_no_mode_mem: devm_pinctrl_put(data->pinctrl); err_no_pinctrl: + devm_kfree(dev, data->selected_state_name); +err_no_state_mem: devm_kfree(dev, data); err_no_mem: return err; From 1c9368121839d23d2f5af3363ab9c48bd597109e Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 08:49:29 -0500 Subject: [PATCH 11/63] pinmux-helper: add P8_37_pinmux & P8_38_pinmux Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 8bddcd28595c7..e00bab919f523 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -208,7 +208,33 @@ /* P8_35 (ZCZ ball V2 ) hdmi */ /* P8_36 (ZCZ ball U3 ) hdmi */ /* P8_37 (ZCZ ball U1 ) hdmi */ + P8_37_default_pin: pinmux_P8_37_default_pin { + pinctrl-single,pins = <0x0C0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_37_gpio_pin: pinmux_P8_37_gpio_pin { + pinctrl-single,pins = <0x0C0 0x2F>; }; /* Mode 7, RxActive */ + P8_37_gpio_pu_pin: pinmux_P8_37_gpio_pu_pin { + pinctrl-single,pins = <0x0C0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_37_gpio_pd_pin: pinmux_P8_37_gpio_pd_pin { + pinctrl-single,pins = <0x0C0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_37_uart_pin: pinmux_P8_37_uart_pin { + pinctrl-single,pins = <0x0C0 0x04>; }; /* Mode 4, Pull-Down*/ + P8_37_pwm_pin: pinmux_P8_37_pwm_pin { + pinctrl-single,pins = <0x0C0 0x02>; }; /* Mode 2, Pull-Down*/ + /* P8_38 (ZCZ ball U2 ) hdmi */ + P8_38_default_pin: pinmux_P8_38_default_pin { + pinctrl-single,pins = <0x0C4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_38_gpio_pin: pinmux_P8_38_gpio_pin { + pinctrl-single,pins = <0x0C4 0x2F>; }; /* Mode 7, RxActive */ + P8_38_gpio_pu_pin: pinmux_P8_38_gpio_pu_pin { + pinctrl-single,pins = <0x0C4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_38_gpio_pd_pin: pinmux_P8_38_gpio_pd_pin { + pinctrl-single,pins = <0x0C4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_38_uart_pin: pinmux_P8_38_uart_pin { + pinctrl-single,pins = <0x0C4 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + P8_38_pwm_pin: pinmux_P8_38_pwm_pin { + pinctrl-single,pins = <0x0C4 0x22>; }; /* Mode 2, Pull-Down, RxActive */ + /* P8_39 (ZCZ ball T3 ) hdmi */ /* P8_40 (ZCZ ball T4 ) hdmi */ /* P8_41 (ZCZ ball T1 ) hdmi */ @@ -780,6 +806,30 @@ pinctrl-3 = <&P8_26_gpio_pd_pin>; }; + P8_37_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart","pwm"; + pinctrl-0 = <&P8_37_default_pin>; + pinctrl-1 = <&P8_37_gpio_pin>; + pinctrl-2 = <&P8_37_gpio_pu_pin>; + pinctrl-3 = <&P8_37_gpio_pd_pin>; + pinctrl-4 = <&P8_37_uart_pin>; + pinctrl-5 = <&P8_37_pwm_pin>; + }; + + P8_38_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart","pwm"; + pinctrl-0 = <&P8_38_default_pin>; + pinctrl-1 = <&P8_38_gpio_pin>; + pinctrl-2 = <&P8_38_gpio_pu_pin>; + pinctrl-3 = <&P8_38_gpio_pd_pin>; + pinctrl-4 = <&P8_38_uart_pin>; + pinctrl-5 = <&P8_38_pwm_pin>; + }; + /************************/ /* P9 Header */ /************************/ From de8bf45cac4f81f512a471d815e43ca2b9a78676 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Mon, 15 Sep 2014 20:56:49 -0500 Subject: [PATCH 12/63] am335x-bone-common: split out am33xx_pinmux Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 132 +++++++++++++++++ arch/arm/boot/dts/am335x-bone-common.dtsi | 137 ------------------ arch/arm/boot/dts/am335x-bone.dts | 6 + arch/arm/boot/dts/am335x-boneblack.dts | 4 + 4 files changed, 142 insertions(+), 137 deletions(-) diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index e00bab919f523..9741502e8d3cb 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -7,6 +7,138 @@ */ &am33xx_pinmux { + user_leds_default: user_leds_default { + pinctrl-single,pins = < + 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ + 0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */ + 0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ + 0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */ + >; + }; + + user_leds_sleep: user_leds_sleep { + pinctrl-single,pins = < + 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ + 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */ + 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ + 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a8.gpio1_24 */ + >; + }; + + i2c0_pins: pinmux_i2c0_pins { + pinctrl-single,pins = < + 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ + 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ + >; + }; + + uart0_pins: pinmux_uart0_pins { + pinctrl-single,pins = < + 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ + 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ + >; + }; + + clkout2_pin: pinmux_clkout2_pin { + pinctrl-single,pins = < + 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ + >; + }; + + cpsw_default: cpsw_default { + pinctrl-single,pins = < + /* Slave 1 */ + 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */ + 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */ + 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */ + 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */ + 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */ + 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */ + 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */ + 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */ + 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */ + 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */ + 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */ + 0x13c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */ + 0x140 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */ + >; + }; + + cpsw_sleep: cpsw_sleep { + pinctrl-single,pins = < + /* Slave 1 reset value */ + 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + + davinci_mdio_default: davinci_mdio_default { + pinctrl-single,pins = < + /* MDIO */ + 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ + 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ + >; + }; + + davinci_mdio_sleep: davinci_mdio_sleep { + pinctrl-single,pins = < + /* MDIO reset value */ + 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + + mmc1_pins_default: pinmux_mmc1_pins { + pinctrl-single,pins = < + 0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ + 0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ + 0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ + 0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ + 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */ + 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ + 0x1A0 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3_18 */ + 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ + >; + }; + + mmc1_pins_sleep: pinmux_mmc1_pins_sleep { + pinctrl-single,pins = < + 0x0F0 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x0F4 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x0F8 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x0FC (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x1A0 (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + + emmc_pins: pinmux_emmc_pins { + pinctrl-single,pins = < + 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ + 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ + 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ + 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ + 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ + 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ + 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ + 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ + 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ + 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ + >; + }; + /************************/ /* P8 Header */ /************************/ diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 6a6cea5e370d7..97a7d93d7bc59 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -65,143 +65,6 @@ }; }; -&am33xx_pinmux { - pinctrl-names = "default"; - pinctrl-0 = <&clkout2_pin>; - - user_leds_default: user_leds_default { - pinctrl-single,pins = < - 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ - 0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */ - 0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ - 0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */ - >; - }; - - user_leds_sleep: user_leds_sleep { - pinctrl-single,pins = < - 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ - 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */ - 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ - 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a8.gpio1_24 */ - >; - }; - - i2c0_pins: pinmux_i2c0_pins { - pinctrl-single,pins = < - 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ - 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ - >; - }; - - uart0_pins: pinmux_uart0_pins { - pinctrl-single,pins = < - 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ - 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ - >; - }; - - clkout2_pin: pinmux_clkout2_pin { - pinctrl-single,pins = < - 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ - >; - }; - - cpsw_default: cpsw_default { - pinctrl-single,pins = < - /* Slave 1 */ - 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */ - 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */ - 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */ - 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */ - 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */ - 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */ - 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */ - 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */ - 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */ - 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */ - 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */ - 0x13c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */ - 0x140 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */ - >; - }; - - cpsw_sleep: cpsw_sleep { - pinctrl-single,pins = < - /* Slave 1 reset value */ - 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) - >; - }; - - davinci_mdio_default: davinci_mdio_default { - pinctrl-single,pins = < - /* MDIO */ - 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ - 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ - >; - }; - - davinci_mdio_sleep: davinci_mdio_sleep { - pinctrl-single,pins = < - /* MDIO reset value */ - 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) - >; - }; - - mmc1_pins_default: pinmux_mmc1_pins { - pinctrl-single,pins = < - 0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ - 0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ - 0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ - 0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ - 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */ - 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ - 0x1A0 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3_18 */ - 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ - >; - }; - - mmc1_pins_sleep: pinmux_mmc1_pins_sleep { - pinctrl-single,pins = < - 0x0F0 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x0F4 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x0F8 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x0FC (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7) - 0x1A0 (PIN_INPUT_PULLDOWN | MUX_MODE7) - >; - }; - - emmc_pins: pinmux_emmc_pins { - pinctrl-single,pins = < - 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ - 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ - 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ - 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ - 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ - 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ - 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ - 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ - 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ - 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ - >; - }; -}; - &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 94ee427a6db17..7dbfe07b05e85 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -9,6 +9,7 @@ #include "am33xx.dtsi" #include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" &ldo3_reg { regulator-min-microvolt = <1800000>; @@ -20,6 +21,11 @@ vmmc-supply = <&ldo3_reg>; }; +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + &sham { status = "okay"; }; diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 4d7e1ebe286b2..bfa2c0f5c2c22 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -9,6 +9,7 @@ #include "am33xx.dtsi" #include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" &ldo3_reg { regulator-min-microvolt = <1800000>; @@ -30,6 +31,9 @@ }; &am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; + nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { pinctrl-single,pins = < 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ From 33b0e2faa91b937f872c1627a7fd2ae3163870ee Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Mon, 15 Sep 2014 20:59:13 -0500 Subject: [PATCH 13/63] am335x-boneblack: split out am33xx_pinmux Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 42 +++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack.dts | 41 ------------------ 2 files changed, 42 insertions(+), 41 deletions(-) diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 9741502e8d3cb..f4bfdcda9380c 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -139,6 +139,48 @@ >; }; + nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { + pinctrl-single,pins = < + 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ + 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + >; + }; + + nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { + pinctrl-single,pins = < + 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ + >; + }; + + mcasp0_pins: mcasp0_pins { + pinctrl-single,pins = < + 0x1ac (PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahclkx.mcasp0_ahclkx */ + 0x19c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2 */ + 0x194 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */ + 0x190 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */ + 0x06c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */ + >; + }; + /************************/ /* P8 Header */ /************************/ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index bfa2c0f5c2c22..c67f459004b33 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -33,47 +33,6 @@ &am33xx_pinmux { pinctrl-names = "default"; pinctrl-0 = <&clkout2_pin>; - - nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { - pinctrl-single,pins = < - 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ - 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - >; - }; - nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { - pinctrl-single,pins = < - 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ - >; - }; - - mcasp0_pins: mcasp0_pins { - pinctrl-single,pins = < - 0x1ac (PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahclkx.mcasp0_ahclkx */ - 0x19c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2 */ - 0x194 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */ - 0x190 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */ - 0x06c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */ - >; - }; }; &lcdc { From bef0261ad09c93eec418ff567a83fdec50ae2b71 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Mon, 15 Sep 2014 21:00:53 -0500 Subject: [PATCH 14/63] am335x-boneblack: split out emmc Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-boneblack-emmc.dtsi | 16 ++++++++++++++++ arch/arm/boot/dts/am335x-boneblack.dts | 11 ++--------- 2 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-boneblack-emmc.dtsi diff --git a/arch/arm/boot/dts/am335x-boneblack-emmc.dtsi b/arch/arm/boot/dts/am335x-boneblack-emmc.dtsi new file mode 100644 index 0000000000000..e0d991f18f167 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-emmc.dtsi @@ -0,0 +1,16 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&mmc2 { + vmmc-supply = <&vmmcsd_fixed>; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_pins>; + bus-width = <8>; + status = "okay"; + ti,vcc-aux-disable-is-sleep; +}; diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index c67f459004b33..2f23a555e4393 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -21,20 +21,13 @@ vmmc-supply = <&vmmcsd_fixed>; }; -&mmc2 { - vmmc-supply = <&vmmcsd_fixed>; - pinctrl-names = "default"; - pinctrl-0 = <&emmc_pins>; - bus-width = <8>; - status = "okay"; - ti,vcc-aux-disable-is-sleep; -}; - &am33xx_pinmux { pinctrl-names = "default"; pinctrl-0 = <&clkout2_pin>; }; +#include "am335x-boneblack-emmc.dtsi" + &lcdc { status = "okay"; }; From 40ab71b56acafe4b77796286d52c38f71ea74757 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Mon, 15 Sep 2014 21:02:57 -0500 Subject: [PATCH 15/63] am335x-boneblack: split out nxp hdmi audio Signed-off-by: Robert Nelson --- .../dts/am335x-boneblack-nxp-hdmi-audio.dtsi | 64 +++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack.dts | 59 +---------------- 2 files changed, 66 insertions(+), 57 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi diff --git a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi new file mode 100644 index 0000000000000..915dd3b861cd9 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&lcdc { + status = "okay"; +}; + +&mcasp0 { + pinctrl-names = "default"; + pinctrl-0 = <&mcasp0_pins>; + status = "okay"; + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 0 0 1 0 + >; + tx-num-evt = <1>; + rx-num-evt = <1>; +}; + +/ { + hdmi { + compatible = "ti,tilcdc,slave"; + i2c = <&i2c0>; + pinctrl-names = "default", "off"; + pinctrl-0 = <&nxp_hdmi_bonelt_pins>; + pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; + status = "okay"; + }; + + clk_mcasp0_fixed: clk_mcasp0_fixed { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <24576000>; + }; + + clk_mcasp0: clk_mcasp0 { + #clock-cells = <0>; + compatible = "ti,gpio-gate-clock"; + clocks = <&clk_mcasp0_fixed>; + enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */ + }; + + hdmi_audio: hdmi_audio@0 { + compatible = "linux,hdmi-audio"; + status = "okay"; + }; + + sound { + compatible = "ti,beaglebone-black-audio"; + ti,model = "TI BeagleBone Black"; + ti,audio-codec = <&hdmi_audio>; + ti,mcasp-controller = <&mcasp0>; + ti,audio-routing = + "HDMI Out", "TX"; + clocks = <&clk_mcasp0>; + clock-names = "mclk"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 2f23a555e4393..46f3e8ab15054 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -27,60 +27,5 @@ }; #include "am335x-boneblack-emmc.dtsi" - -&lcdc { - status = "okay"; -}; - -&mcasp0 { - pinctrl-names = "default"; - pinctrl-0 = <&mcasp0_pins>; - status = "okay"; - op-mode = <0>; /* MCASP_IIS_MODE */ - tdm-slots = <2>; - serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ - 0 0 1 0 - >; - tx-num-evt = <1>; - rx-num-evt = <1>; -}; - -/ { - hdmi { - compatible = "ti,tilcdc,slave"; - i2c = <&i2c0>; - pinctrl-names = "default", "off"; - pinctrl-0 = <&nxp_hdmi_bonelt_pins>; - pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; - status = "okay"; - }; - - clk_mcasp0_fixed: clk_mcasp0_fixed { - #clock-cells = <0>; - compatible = "fixed-clock"; - clock-frequency = <24576000>; - }; - - clk_mcasp0: clk_mcasp0 { - #clock-cells = <0>; - compatible = "ti,gpio-gate-clock"; - clocks = <&clk_mcasp0_fixed>; - enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */ - }; - - hdmi_audio: hdmi_audio@0 { - compatible = "linux,hdmi-audio"; - status = "okay"; - }; - - sound { - compatible = "ti,beaglebone-black-audio"; - ti,model = "TI BeagleBone Black"; - ti,audio-codec = <&hdmi_audio>; - ti,mcasp-controller = <&mcasp0>; - ti,audio-routing = - "HDMI Out", "TX"; - clocks = <&clk_mcasp0>; - clock-names = "mclk"; - }; -}; +/* HDMI: with audio */ +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" From a0203379ac645b0fd8bb113e581522ffa0c34c93 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Mon, 15 Sep 2014 21:06:12 -0500 Subject: [PATCH 16/63] am335x-bone: nxp hdmi no audio Signed-off-by: Robert Nelson --- .../am335x-boneblack-nxp-hdmi-no-audio.dtsi | 22 +++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack.dts | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi diff --git a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi new file mode 100644 index 0000000000000..3eafd750ef16e --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&lcdc { + status = "okay"; +}; + +/ { + hdmi { + compatible = "ti,tilcdc,slave"; + i2c = <&i2c0>; + pinctrl-names = "default", "off"; + pinctrl-0 = <&nxp_hdmi_bonelt_pins>; + pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; + status = "okay"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 46f3e8ab15054..1185089dd15d2 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -29,3 +29,5 @@ #include "am335x-boneblack-emmc.dtsi" /* HDMI: with audio */ #include "am335x-boneblack-nxp-hdmi-audio.dtsi" +/* HDMI: without audio */ +/* #include "am335x-boneblack-nxp-hdmi-no-audio.dtsi" */ From 0f65216387a9fe4063b4c8a4fde11316ca469dc1 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 08:53:54 -0500 Subject: [PATCH 17/63] pinmux: bone/black disable pins for hdmi/audio/clkout2/mmc1 Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone.dts | 11 ++++++++ .../dts/am335x-boneblack-nxp-hdmi-audio.dtsi | 26 +++++++++++++++++++ .../am335x-boneblack-nxp-hdmi-no-audio.dtsi | 10 +++++++ arch/arm/boot/dts/am335x-boneblack.dts | 11 ++++++++ 4 files changed, 58 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 7dbfe07b05e85..6c705073efb65 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -17,6 +17,17 @@ regulator-always-on; }; +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + &mmc1 { vmmc-supply = <&ldo3_reg>; }; diff --git a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi index 915dd3b861cd9..646656047b491 100644 --- a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi +++ b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi @@ -6,6 +6,32 @@ * published by the Free Software Foundation. */ +&ocp { + /* hdmi */ + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; + /* audio */ + P9_25_pinmux { + status = "disabled"; + }; + P9_28_pinmux { + status = "disabled"; + }; + P9_29_pinmux { + status = "disabled"; + }; + P9_31_pinmux { + status = "disabled"; + }; + P9_41_pinmux { + status = "disabled"; + }; +}; + &lcdc { status = "okay"; }; diff --git a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi index 3eafd750ef16e..63d0214084071 100644 --- a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi +++ b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi @@ -6,6 +6,16 @@ * published by the Free Software Foundation. */ +&ocp { + /* hdmi */ + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; +}; + &lcdc { status = "okay"; }; diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 1185089dd15d2..f663e393a97af 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -17,6 +17,17 @@ regulator-always-on; }; +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + &mmc1 { vmmc-supply = <&vmmcsd_fixed>; }; From e266f45fdf1ef4a477729b86a49eac7dffc6a78a Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 08:56:28 -0500 Subject: [PATCH 18/63] pinmux: i2c Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 14 ++++++++ arch/arm/boot/dts/am335x-bone-common.dtsi | 32 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index f4bfdcda9380c..df72b924f4f7f 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -32,6 +32,20 @@ >; }; + i2c1_pins: pinmux_i2c1_pins { + pinctrl-single,pins = < + 0x158 0x72 /* spi0_d1.i2c1_sda, SLEWCTRL_SLOW | INPUT_PULLUP | MODE2 */ + 0x15c 0x72 /* spi0_cs0.i2c1_scl, SLEWCTRL_SLOW | INPUT_PULLUP | MODE2 */ + >; + }; + + i2c2_pins: pinmux_i2c2_pins { + pinctrl-single,pins = < + 0x178 0x73 /* (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3) uart1_ctsn.i2c2_sda */ + 0x17c 0x73 /* (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3) uart1_rtsn.i2c2_scl */ + >; + }; + uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 97a7d93d7bc59..32540b90ec804 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -112,6 +112,38 @@ reg = <0x24>; }; + baseboard_eeprom: baseboard_eeprom@50 { + compatible = "at,24c256"; + reg = <0x50>; + }; +}; + +&i2c2 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_pins>; + + clock-frequency = <100000>; + + cape_eeprom0: cape_eeprom0@54 { + compatible = "at,24c256"; + reg = <0x54>; + }; + + cape_eeprom1: cape_eeprom1@55 { + compatible = "at,24c256"; + reg = <0x55>; + }; + + cape_eeprom2: cape_eeprom2@56 { + compatible = "at,24c256"; + reg = <0x56>; + }; + + cape_eeprom3: cape_eeprom3@57 { + compatible = "at,24c256"; + reg = <0x57>; + }; }; /include/ "tps65217.dtsi" From ef756ee5d3b9909d71924d54b00b156efb0970cf Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 08:58:59 -0500 Subject: [PATCH 19/63] pinmux: uart Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-ttyO1.dtsi | 18 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-ttyO2.dtsi | 18 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-ttyO4.dtsi | 18 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-ttyO5.dtsi | 18 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone.dts | 13 +++++++++++++ arch/arm/boot/dts/am335x-boneblack.dts | 13 +++++++++++++ arch/arm/boot/dts/am335x-ttyO1.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/am335x-ttyO2.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/am335x-ttyO4.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/am335x-ttyO5.dtsi | 14 ++++++++++++++ 10 files changed, 154 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO1.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO2.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO4.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO5.dtsi create mode 100644 arch/arm/boot/dts/am335x-ttyO1.dtsi create mode 100644 arch/arm/boot/dts/am335x-ttyO2.dtsi create mode 100644 arch/arm/boot/dts/am335x-ttyO4.dtsi create mode 100644 arch/arm/boot/dts/am335x-ttyO5.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-ttyO1.dtsi b/arch/arm/boot/dts/am335x-bone-ttyO1.dtsi new file mode 100644 index 0000000000000..6bf4a0d13ce40 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO1.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +#include "am335x-ttyO1.dtsi" + +&ocp { + P9_24_pinmux { + mode = "uart"; + }; + P9_26_pinmux { + mode = "uart"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-ttyO2.dtsi b/arch/arm/boot/dts/am335x-bone-ttyO2.dtsi new file mode 100644 index 0000000000000..c2f5d09067691 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +#include "am335x-ttyO2.dtsi" + +&ocp { + P9_21_pinmux { + mode = "uart"; + }; + P9_22_pinmux { + mode = "uart"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-ttyO4.dtsi b/arch/arm/boot/dts/am335x-bone-ttyO4.dtsi new file mode 100644 index 0000000000000..0d04a8178963c --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO4.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +#include "am335x-ttyO4.dtsi" + +&ocp { + P9_11_pinmux { + mode = "uart"; + }; + P9_13_pinmux { + mode = "uart"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-ttyO5.dtsi b/arch/arm/boot/dts/am335x-bone-ttyO5.dtsi new file mode 100644 index 0000000000000..19ddeee6f2d44 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO5.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +#include "am335x-ttyO5.dtsi" + +&ocp { + P8_37_pinmux { + mode = "uart"; + }; + P8_38_pinmux { + mode = "uart"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 6c705073efb65..46067e00a9897 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -44,3 +44,16 @@ &aes { status = "okay"; }; + +/* uart1: P9.24, P9.26 */ +#include "am335x-ttyO1.dtsi" +/* #include "am335x-bone-ttyO1.dtsi" */ +/* uart2: P9.21, P9.22 */ +#include "am335x-ttyO2.dtsi" +/* #include "am335x-bone-ttyO2.dtsi" */ +/* uart4: P9.11, P9.13 */ +#include "am335x-ttyO4.dtsi" +/* #include "am335x-bone-ttyO4.dtsi" */ +/* uart5: P8.37, P8.38 */ +#include "am335x-ttyO5.dtsi" +/* #include "am335x-bone-ttyO5.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index f663e393a97af..f3193dd1f96dd 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -42,3 +42,16 @@ #include "am335x-boneblack-nxp-hdmi-audio.dtsi" /* HDMI: without audio */ /* #include "am335x-boneblack-nxp-hdmi-no-audio.dtsi" */ + +/* uart1: P9.24, P9.26 */ +#include "am335x-ttyO1.dtsi" +/* #include "am335x-bone-ttyO1.dtsi" */ +/* uart2: P9.21, P9.22 */ +#include "am335x-ttyO2.dtsi" +/* #include "am335x-bone-ttyO2.dtsi" */ +/* uart4: P9.11, P9.13 */ +#include "am335x-ttyO4.dtsi" +/* #include "am335x-bone-ttyO4.dtsi" */ +/* uart5: P8.37, P8.38 boneblack: hdmi has to be disabled for ttyO5 */ +#include "am335x-ttyO5.dtsi" +/* #include "am335x-bone-ttyO5.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-ttyO1.dtsi b/arch/arm/boot/dts/am335x-ttyO1.dtsi new file mode 100644 index 0000000000000..039763ae5afb2 --- /dev/null +++ b/arch/arm/boot/dts/am335x-ttyO1.dtsi @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <>; + + status = "okay"; +}; diff --git a/arch/arm/boot/dts/am335x-ttyO2.dtsi b/arch/arm/boot/dts/am335x-ttyO2.dtsi new file mode 100644 index 0000000000000..a7c3117183b1c --- /dev/null +++ b/arch/arm/boot/dts/am335x-ttyO2.dtsi @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <>; + + status = "okay"; +}; diff --git a/arch/arm/boot/dts/am335x-ttyO4.dtsi b/arch/arm/boot/dts/am335x-ttyO4.dtsi new file mode 100644 index 0000000000000..76fb6a278edba --- /dev/null +++ b/arch/arm/boot/dts/am335x-ttyO4.dtsi @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&uart4 { + pinctrl-names = "default"; + pinctrl-0 = <>; + + status = "okay"; +}; diff --git a/arch/arm/boot/dts/am335x-ttyO5.dtsi b/arch/arm/boot/dts/am335x-ttyO5.dtsi new file mode 100644 index 0000000000000..5675eeb3c18c7 --- /dev/null +++ b/arch/arm/boot/dts/am335x-ttyO5.dtsi @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&uart5 { + pinctrl-names = "default"; + pinctrl-0 = <>; + + status = "okay"; +}; From ba1db73e7e2c30a9a0f1fcf62819eb861a58b951 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:05:19 -0500 Subject: [PATCH 20/63] pinmux: spi Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 30 ++++++++++++++ .../arm/boot/dts/am335x-bone-spi0-spidev.dtsi | 41 +++++++++++++++++++ .../arm/boot/dts/am335x-bone-spi1-spidev.dtsi | 41 +++++++++++++++++++ .../boot/dts/am335x-bone-spi1a-spidev.dtsi | 41 +++++++++++++++++++ arch/arm/boot/dts/am335x-bone.dts | 21 ++++++++++ arch/arm/boot/dts/am335x-boneblack.dts | 21 ++++++++++ 6 files changed, 195 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-spi0-spidev.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-spi1-spidev.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-spi1a-spidev.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index df72b924f4f7f..9b523397f49ba 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -46,6 +46,36 @@ >; }; + spi0_pins: pinmux_spi0_pins { + pinctrl-single,pins = < + 0x150 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */ + 0x154 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */ + 0x158 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */ + 0x15c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */ + >; + }; + + spi1_pins: pinmux_spi1_pins { + pinctrl-single,pins = < + 0x190 0x33 /* mcasp0_aclkx.spi1_sclk, INPUT_PULLUP | MODE3 */ + 0x194 0x33 /* mcasp0_fsx.spi1_d0, INPUT_PULLUP | MODE3 */ + 0x198 0x13 /* mcasp0_axr0.spi1_d1, OUTPUT_PULLUP | MODE3 */ + 0x19c 0x13 /* mcasp0_ahclkr.spi1_cs0, OUTPUT_PULLUP | MODE3 */ + // 0x164 0x12 /* eCAP0_in_PWM0_out.spi1_cs1 OUTPUT_PULLUP | MODE2 */ + >; + }; + + spi1a_pins: pinmux_spi1a_pins { + pinctrl-single,pins = < + 0x164 0x34 /* eCAP0_in_PWM0_out.spi1_sclk, INPUT_PULLUP | MODE4 */ + /* NOTE: P9.42 is connected to two pads */ + // 0x1A0 0x27 /* set the other pad to gpio input */ + 0x194 0x33 /* mcasp0_fsx.spi1_d0, INPUT_PULLUP | MODE3 */ + 0x198 0x13 /* mcasp0_axr0.spi1_d1, OUTPUT_PULLUP | MODE3 */ + 0x178 0x14 /* uart1_ctsn.spi1_cs0, OUTPUT_PULLUP | MODE4 */ + >; + }; + uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ diff --git a/arch/arm/boot/dts/am335x-bone-spi0-spidev.dtsi b/arch/arm/boot/dts/am335x-bone-spi0-spidev.dtsi new file mode 100644 index 0000000000000..b9143695aed44 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-spi0-spidev.dtsi @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_17_pinmux { + status = "disabled"; + }; + P9_18_pinmux { + status = "disabled"; + }; + P9_21_pinmux { + status = "disabled"; + }; + P9_22_pinmux { + status = "disabled"; + }; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_pins>; + status = "okay"; + + spidev0: spi@0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <16000000>; + spi-cpha; + }; + + spidev1: spi@1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <16000000>; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-spi1-spidev.dtsi b/arch/arm/boot/dts/am335x-bone-spi1-spidev.dtsi new file mode 100644 index 0000000000000..c116d6060ea2d --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-spi1-spidev.dtsi @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_28_pinmux { + status = "disabled"; + }; + P9_29_pinmux { + status = "disabled"; + }; + P9_30_pinmux { + status = "disabled"; + }; + P9_31_pinmux { + status = "disabled"; + }; +}; + +&spi1 { + pinctrl-names = "default"; + pinctrl-0 = <&spi1_pins>; + status = "okay"; + + spidev2: spi@0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <16000000>; + spi-cpha; + }; + + spidev3: spi@1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <16000000>; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-spi1a-spidev.dtsi b/arch/arm/boot/dts/am335x-bone-spi1a-spidev.dtsi new file mode 100644 index 0000000000000..084fa8b150cd2 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-spi1a-spidev.dtsi @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_20_pinmux { + status = "disabled"; + }; + P9_29_pinmux { + status = "disabled"; + }; + P9_30_pinmux { + status = "disabled"; + }; + P9_42_pinmux { + status = "disabled"; + }; +}; + +&spi1 { + pinctrl-names = "default"; + pinctrl-0 = <&spi1a_pins>; + status = "okay"; + + spidev2: spi@0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <16000000>; + spi-cpha; + }; + + spidev3: spi@1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <16000000>; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 46067e00a9897..c29901ff839de 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -45,6 +45,27 @@ status = "okay"; }; +/* spi0: */ +/* P9.17 spi0_cs0 */ +/* P9.18 spi0_d1 */ +/* P9.21 spi0_d0 */ +/* P9.22 spi0_sclk */ +/* #include "am335x-bone-spi0-spidev.dtsi" */ + +/* spi1: */ +/* P9.31 spi1_sclk */ +/* P9.29 spi1_d0 */ +/* P9.30 spi1_d1 */ +/* P9.28 spi1_cs0 */ +/* #include "am335x-bone-spi1-spidev.dtsi" */ + +/* spi1a: */ +/* P9.42 spi1_sclk */ +/* P9.29 spi1_d0 */ +/* P9.30 spi1_d1 */ +/* P9.20 spi1_cs0 */ +/* #include "am335x-bone-spi1a-spidev.dtsi" */ + /* uart1: P9.24, P9.26 */ #include "am335x-ttyO1.dtsi" /* #include "am335x-bone-ttyO1.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index f3193dd1f96dd..b6c8182fda249 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -43,6 +43,27 @@ /* HDMI: without audio */ /* #include "am335x-boneblack-nxp-hdmi-no-audio.dtsi" */ +/* spi0: */ +/* P9.17 spi0_cs0 */ +/* P9.18 spi0_d1 */ +/* P9.21 spi0_d0 */ +/* P9.22 spi0_sclk */ +/* #include "am335x-bone-spi0-spidev.dtsi" */ + +/* spi1: */ +/* P9.31 spi1_sclk */ +/* P9.29 spi1_d0 */ +/* P9.30 spi1_d1 */ +/* P9.28 spi1_cs0 */ +/* #include "am335x-bone-spi1-spidev.dtsi" */ + +/* spi1a: */ +/* P9.42 spi1_sclk */ +/* P9.29 spi1_d0 */ +/* P9.30 spi1_d1 */ +/* P9.20 spi1_cs0 */ +/* #include "am335x-bone-spi1a-spidev.dtsi" */ + /* uart1: P9.24, P9.26 */ #include "am335x-ttyO1.dtsi" /* #include "am335x-bone-ttyO1.dtsi" */ From 9403b6ac5936e8c6b154c9e3a314156c86ef2e0e Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:08:16 -0500 Subject: [PATCH 21/63] node: 4-wire touchscreen Signed-off-by: Robert Nelson --- .../dts/am335x-bone-ti-tscadc-4-wire.dtsi | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-ti-tscadc-4-wire.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-ti-tscadc-4-wire.dtsi b/arch/arm/boot/dts/am335x-bone-ti-tscadc-4-wire.dtsi new file mode 100644 index 0000000000000..0974a915fe1e6 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ti-tscadc-4-wire.dtsi @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&tscadc { + status = "okay"; + tsc { + ti,wires = <4>; + ti,x-plate-resistance = <200>; + ti,coordinate-readouts = <5>; + ti,wire-config = <0x00 0x11 0x22 0x33>; + }; + + adc { + ti,adc-channels = <4 5 6 7>; + }; +}; From 782a2cd93654e1233e74068ab01e59f6335da0ff Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:11:50 -0500 Subject: [PATCH 22/63] node: led-gpio Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 29 ++++++++++++++ .../boot/dts/am335x-bone-led-gpio1-18.dtsi | 30 ++++++++++++++ .../boot/dts/am335x-bone-led-gpio1-28.dtsi | 29 ++++++++++++++ .../dts/am335x-bone-led-gpio2-4-gpio2-5.dtsi | 39 +++++++++++++++++++ .../boot/dts/am335x-bone-led-gpio3-19.dtsi | 30 ++++++++++++++ 5 files changed, 157 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-led-gpio1-18.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-led-gpio1-28.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-led-gpio2-4-gpio2-5.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-led-gpio3-19.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 9b523397f49ba..8276c8342ea91 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -25,6 +25,35 @@ >; }; + /* bbb-exp-c */ + user_leds_s1: user_leds_s1 { + pinctrl-single,pins = < + 0x98 0x7 /* gpmc_wen.gpio2_4, OUTPUT | MODE7 */ + 0x9c 0x7 /* gpmc_ben0_cle.gpio2_5, OUTPUT | MODE7 */ + >; + }; + + /* lcd4-01-00a0 */ + gpio1_18_led_pins: pinmux_gpio1_18_led_pins { + pinctrl-single,pins = < + 0x48 0x07 /* gpmc_a2.gpio1_18, OUTPUT | MODE7 */ + >; + }; + + /* lcd4-01-00a1/lcd7-01-00a2/lcd7-01-00a3 */ + gpio1_28_led_pins: pinmux_gpio1_28_led_pins { + pinctrl-single,pins = < + 0x078 0x2f /* gpmc_ben1.gpio1_28, INPUT | PULLDIS | MODE7 */ + >; + }; + + /* lcd3-01-00a2 */ + gpio3_19_led_pins: pinmux_gpio3_19_led_pins { + pinctrl-single,pins = < + 0x1a4 0x07 /* mcasp0_fsr.gpio3_19, OUTPUT | MODE7 */ + >; + }; + i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ diff --git a/arch/arm/boot/dts/am335x-bone-led-gpio1-18.dtsi b/arch/arm/boot/dts/am335x-bone-led-gpio1-18.dtsi new file mode 100644 index 0000000000000..ae104658abd40 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-led-gpio1-18.dtsi @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_14_pinmux { + /* gpio1[18] */ + status = "disabled"; + }; +}; + +/ { + gpio-leds-cape-lcd { + compatible = "gpio-leds"; + pinctrl-names = "default"; + + pinctrl-0 = <&gpio1_18_led_pins>; + + lcd-led0 { + label = "lcd:green:usr0"; + gpios = <&gpio1 18 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-led-gpio1-28.dtsi b/arch/arm/boot/dts/am335x-bone-led-gpio1-28.dtsi new file mode 100644 index 0000000000000..5a1ec3984efdf --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-led-gpio1-28.dtsi @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_12_pinmux { + status = "disabled"; + }; +}; + +/ { + gpio-leds-cape-lcd { + compatible = "gpio-leds"; + pinctrl-names = "default"; + + pinctrl-0 = <&gpio1_28_led_pins>; + + lcd-led0 { + label = "lcd:green:usr0"; + gpios = <&gpio1 28 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-led-gpio2-4-gpio2-5.dtsi b/arch/arm/boot/dts/am335x-bone-led-gpio2-4-gpio2-5.dtsi new file mode 100644 index 0000000000000..c80d580b62519 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-led-gpio2-4-gpio2-5.dtsi @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_09_pinmux { + status = "disabled"; + }; + P8_10_pinmux { + status = "disabled"; + }; +}; + +/ { + gpio-leds-cape-lcd { + compatible = "gpio-leds"; + pinctrl-names = "default"; + + pinctrl-0 = <&user_leds_s1>; + + lcd-led0 { + label = "lcd:green:usr0"; + gpios = <&gpio2 4 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + + lcd-led1 { + label = "lcd:green:usr1"; + gpios = <&gpio2 5 0>; + linux,default-trigger = "mmc0"; + default-state = "off"; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-led-gpio3-19.dtsi b/arch/arm/boot/dts/am335x-bone-led-gpio3-19.dtsi new file mode 100644 index 0000000000000..619831f352256 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-led-gpio3-19.dtsi @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_27_pinmux { + /* gpio3[19] */ + status = "disabled"; + }; +}; + +/ { + gpio-leds-cape-lcd { + compatible = "gpio-leds"; + pinctrl-names = "default"; + + pinctrl-0 = <&gpio3_19_led_pins>; + + lcd-led0 { + label = "lcd:green:usr0"; + gpios = <&gpio3 19 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; From bce15461c55653ccde5957c399781d60cc8e3d0d Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:13:08 -0500 Subject: [PATCH 23/63] node: backlight-gpio Signed-off-by: Robert Nelson --- .../arm/boot/dts/am335x-bone-bl-gpio1-18.dtsi | 25 +++++++++++++++++++ .../boot/dts/am335x-bone-common-pinmux.dtsi | 6 +++++ 2 files changed, 31 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-bl-gpio1-18.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-bl-gpio1-18.dtsi b/arch/arm/boot/dts/am335x-bone-bl-gpio1-18.dtsi new file mode 100644 index 0000000000000..d66301c3cf996 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-bl-gpio1-18.dtsi @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_14_pinmux { + /* gpio1[18] */ + status = "disabled"; + }; +}; + +/ { + backlight { + status = "okay"; + compatible = "gpio-backlight"; + pinctrl-names = "default"; + pinctrl-0 = <&bbcape_backlight_pins>; + gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; + default-on; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 8276c8342ea91..1a116b8e91483 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -54,6 +54,12 @@ >; }; + bbcape_backlight_pins: bbcape_backlight_pins { + pinctrl-single,pins = < + 0x48 (PIN_OUTPUT | MUX_MODE7) /* gpmc_a[2].GPIO1[18] (backlight control) */ + >; + }; + i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ From 9a55d02fc58b78de3339e34945b1c1449b939abb Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:23:42 -0500 Subject: [PATCH 24/63] node: keymap Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 54 +++++++++++++ arch/arm/boot/dts/am335x-bone-keymap0.dtsi | 81 +++++++++++++++++++ arch/arm/boot/dts/am335x-bone-keymap1.dtsi | 81 +++++++++++++++++++ arch/arm/boot/dts/am335x-bone-keymap2.dtsi | 81 +++++++++++++++++++ arch/arm/boot/dts/am335x-bone-keymap3.dtsi | 79 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-keymap4.dtsi | 68 ++++++++++++++++ 6 files changed, 444 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-keymap0.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-keymap1.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-keymap2.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-keymap3.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-keymap4.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 1a116b8e91483..406f77891d78b 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -250,6 +250,60 @@ >; }; + /* lcd3-01-00a2/lcd7-01-00a3/4dcape-70(t) */ + keymap0_pins: pinmux_keymap0_pins { + pinctrl-single,pins = < + 0x040 0x2f /* KEY_LEFT gpmc_a0.gpio1_16, INPUT | PULLDIS | MODE7 */ + 0x044 0x2f /* KEY_RIGHT gpmc_a1.gpio1_17, INPUT | PULLDIS | MODE7 */ + 0x04c 0x2f /* KEY_UP gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */ + 0x198 0x2f /* KEY_DOWN mcasp0_axr0.gpio3_16, INPUT | PULLDIS | MODE7 */ + 0x154 0x2f /* KEY_ENTER spi0_d0.gpio0_3, INPUT | PULLDIS | MODE7 */ + >; + }; + + /* lcd4-01-00a1/4dcape-43(t) */ + keymap1_pins: pinmux_keymap1_pins { + pinctrl-single,pins = < + 0x040 0x2f /* KEY_LEFT gpmc_a0.gpio1_16, INPUT | PULLDIS | MODE7 */ + 0x044 0x2f /* KEY_RIGHT gpmc_a1.gpio1_17, INPUT | PULLDIS | MODE7 */ + 0x04c 0x2f /* KEY_UP gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */ + 0x198 0x2f /* KEY_DOWN mcasp0_axr0.gpio3_16, INPUT | PULLDIS | MODE7 */ + 0x184 0x2f /* KEY_ENTER uart1_txd.gpio0_15, INPUT | PULLDIS | MODE7 */ + >; + }; + + /* lcd7-01-00a2 */ + keymap2_pins: pinmux_keymap2_pins { + pinctrl-single,pins = < + 0x040 0x2f /* KEY_LEFT gpmc_a0.gpio1_16, INPUT | PULLDIS | MODE7 */ + 0x044 0x2f /* KEY_RIGHT gpmc_a1.gpio1_17, INPUT | PULLDIS | MODE7 */ + 0x04c 0x2f /* KEY_UP gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */ + 0x198 0x2f /* KEY_DOWN mcasp0_axr0.gpio3_16, INPUT | PULLDIS | MODE7 */ + 0x1a4 0x2f /* KEY_ENTER mcasp0_fsr.gpio3_19, INPUT | PULLDIS | MODE7 */ + >; + }; + + /* bbb-exp-c */ + keymap3_pins: pinmux_keymap3_pins { + pinctrl-single,pins = < + 0x040 0x2f /* KEY_UP gpmc_a0.gpio1_16, INPUT | PULLDIS | MODE7 */ + 0x04c 0x2f /* KEY_DOWN gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */ + 0x078 0x2f /* KEY_RIGHT gpmc_ben1.gpio1_28, INPUT | PULLDIS | MODE7 */ + 0x164 0x2f /* KEY_LEFT ecap0_in_pwm0_out.gpio0_7, INPUT | PULLDIS | MODE7 */ + 0x1a4 0x2f /* KEY_ENTER mcasp0_fxr.gpio3_19, INPUT | PULLDIS | MODE7 */ + >; + }; + + /* bb-view */ + keymap4_pins: pinmux_keymap4_pins { + pinctrl-single,pins = < + 0x044 0x2f /* usr2 gpmc_a1.gpio1_17, INPUT | PULLDIS | MODE7 */ + 0x04c 0x2f /* usr0 gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */ + 0x070 0x2f /* usr3 gpmc_wait0.gpio0_30, INPUT | PULLDIS | MODE7 */ + 0x184 0x2f /* usr1 uart1_txd.gpio0_15, INPUT | PULLDIS | MODE7 */ + >; + }; + mcasp0_pins: mcasp0_pins { pinctrl-single,pins = < 0x1ac (PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahclkx.mcasp0_ahclkx */ diff --git a/arch/arm/boot/dts/am335x-bone-keymap0.dtsi b/arch/arm/boot/dts/am335x-bone-keymap0.dtsi new file mode 100644 index 0000000000000..8f000964a5425 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-keymap0.dtsi @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_15_pinmux { + /* gpio1[16] */ + status = "disabled"; + }; + P9_16_pinmux { + /* gpio1[19] */ + status = "disabled"; + }; + P9_21_pinmux { + /* gpio0[3] */ + status = "disabled"; + }; + P9_23_pinmux { + /* gpio1[17] */ + status = "disabled"; + }; + P9_30_pinmux { + /* gpio3[16] */ + status = "disabled"; + }; +}; + +/ { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&keymap0_pins>; + + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + debounce_interval = <50>; + linux,code = <105>; + label = "left"; + gpios = <&gpio1 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@2 { + debounce_interval = <50>; + linux,code = <106>; + label = "right"; + gpios = <&gpio1 17 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@3 { + debounce_interval = <50>; + linux,code = <103>; + label = "up"; + gpios = <&gpio1 19 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@4 { + debounce_interval = <50>; + linux,code = <108>; + label = "down"; + gpios = <&gpio3 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@5 { + debounce_interval = <50>; + linux,code = <28>; + label = "enter"; + gpios = <&gpio0 3 0x1>; + gpio-key,wakeup; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-keymap1.dtsi b/arch/arm/boot/dts/am335x-bone-keymap1.dtsi new file mode 100644 index 0000000000000..58586bcdd46da --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-keymap1.dtsi @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_15_pinmux { + /* gpio1[16] */ + status = "disabled"; + }; + P9_16_pinmux { + /* gpio1[19] */ + status = "disabled"; + }; + P9_23_pinmux { + /* gpio1[17] */ + status = "disabled"; + }; + P9_24_pinmux { + /* gpio0[15] */ + status = "disabled"; + }; + P9_30_pinmux { + /* gpio3[16] */ + status = "disabled"; + }; +}; + +/ { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&keymap1_pins>; + + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + debounce_interval = <50>; + linux,code = <105>; + label = "left"; + gpios = <&gpio1 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@2 { + debounce_interval = <50>; + linux,code = <106>; + label = "right"; + gpios = <&gpio1 17 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@3 { + debounce_interval = <50>; + linux,code = <103>; + label = "up"; + gpios = <&gpio1 19 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@4 { + debounce_interval = <50>; + linux,code = <108>; + label = "down"; + gpios = <&gpio3 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@5 { + debounce_interval = <50>; + linux,code = <28>; + label = "enter"; + gpios = <&gpio0 15 0x1>; + gpio-key,wakeup; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-keymap2.dtsi b/arch/arm/boot/dts/am335x-bone-keymap2.dtsi new file mode 100644 index 0000000000000..944d1bba31653 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-keymap2.dtsi @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_15_pinmux { + /* gpio1[16] */ + status = "disabled"; + }; + P9_16_pinmux { + /* gpio1[19] */ + status = "disabled"; + }; + P9_23_pinmux { + /* gpio1[17] */ + status = "disabled"; + }; + P9_27_pinmux { + /* gpio3[19] */ + status = "disabled"; + }; + P9_30_pinmux { + /* gpio3[16] */ + status = "disabled"; + }; +}; + +/ { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&keymap2_pins>; + + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + debounce_interval = <50>; + linux,code = <105>; + label = "left"; + gpios = <&gpio1 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@2 { + debounce_interval = <50>; + linux,code = <106>; + label = "right"; + gpios = <&gpio1 17 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@3 { + debounce_interval = <50>; + linux,code = <103>; + label = "up"; + gpios = <&gpio1 19 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@4 { + debounce_interval = <50>; + linux,code = <108>; + label = "down"; + gpios = <&gpio3 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@5 { + debounce_interval = <50>; + linux,code = <28>; + label = "enter"; + gpios = <&gpio3 19 0x1>; + gpio-key,wakeup; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-keymap3.dtsi b/arch/arm/boot/dts/am335x-bone-keymap3.dtsi new file mode 100644 index 0000000000000..cbedf5065f2f5 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-keymap3.dtsi @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_12_pinmux { + status = "disabled"; + }; + P9_15_pinmux { + /* gpio1[16] */ + status = "disabled"; + }; + P9_16_pinmux { + /* gpio1[19] */ + status = "disabled"; + }; + P9_27_pinmux { + /* gpio3[19] */ + status = "disabled"; + }; + P9_42_pinmux { + status = "disabled"; + }; +}; + +/ { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&keymap3_pins>; + + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + debounce_interval = <50>; + linux,code = <105>; + label = "left"; + gpios = <&gpio0 7 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@2 { + debounce_interval = <50>; + linux,code = <106>; + label = "right"; + gpios = <&gpio1 28 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@3 { + debounce_interval = <50>; + linux,code = <103>; + label = "up"; + gpios = <&gpio1 16 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@4 { + debounce_interval = <50>; + linux,code = <108>; + label = "down"; + gpios = <&gpio1 19 0x1>; + gpio-key,wakeup; + autorepeat; + }; + button@5 { + debounce_interval = <50>; + linux,code = <28>; + label = "enter"; + gpios = <&gpio3 19 0x1>; + gpio-key,wakeup; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-keymap4.dtsi b/arch/arm/boot/dts/am335x-bone-keymap4.dtsi new file mode 100644 index 0000000000000..e18e4c3eae538 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-keymap4.dtsi @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_11_pinmux { + status = "disabled"; + }; + P9_16_pinmux { + /* gpio1[19] */ + status = "disabled"; + }; + P9_23_pinmux { + /* gpio1[17] */ + status = "disabled"; + }; + P9_24_pinmux { + status = "disabled"; + }; +}; + +/ { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&keymap4_pins>; + + #address-cells = <1>; + #size-cells = <0>; + + button@1 { + debounce_interval = <50>; + label = "bb-view:usr0"; + linux,code = <0x100>; + gpios = <&gpio1 19 0x0>; + gpio-key,wakeup; + autorepeat; + }; + button@2 { + debounce_interval = <50>; + label = "bb-view:usr1"; + linux,code = <0x101>; + gpios = <&gpio0 15 0x0>; + gpio-key,wakeup; + autorepeat; + }; + button@3 { + debounce_interval = <50>; + label = "bb-view:usr2"; + linux,code = <0x102>; + gpios = <&gpio1 17 0x0>; + gpio-key,wakeup; + autorepeat; + }; + button@4 { + debounce_interval = <50>; + label = "bb-view:usr3"; + linux,code = <0x103>; + gpios = <&gpio0 30 0x0>; + gpio-key,wakeup; + autorepeat; + }; + }; +}; From f7cd57f95dcb92380f1f9145b7c3b35064d89ada Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:26:21 -0500 Subject: [PATCH 25/63] node: panel Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 71 ++++++++++++++++ .../dts/am335x-bone-panel-1240x600-24bit.dtsi | 82 +++++++++++++++++++ .../boot/dts/am335x-bone-panel-320x240.dtsi | 61 ++++++++++++++ .../am335x-bone-panel-480x272-bgrx_16bpp.dtsi | 59 +++++++++++++ .../boot/dts/am335x-bone-panel-480x272.dtsi | 62 ++++++++++++++ .../boot/dts/am335x-bone-panel-800x480.dtsi | 62 ++++++++++++++ 6 files changed, 397 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-panel-1240x600-24bit.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-panel-320x240.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-panel-480x272-bgrx_16bpp.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-panel-480x272.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-panel-800x480.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 406f77891d78b..f845c671dcdba 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -118,6 +118,77 @@ >; }; + bbcape_lcd_pins: bbcape_lcd_pins { + pinctrl-single,pins = < + 0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ + 0xa4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */ + 0xa8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */ + 0xac (PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */ + 0xb0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */ + 0xb4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */ + 0xb8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */ + 0xbc (PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */ + 0xc0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */ + 0xc4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */ + 0xc8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */ + 0xcc (PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */ + 0xd0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */ + 0xd4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */ + 0xd8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */ + 0xdc (PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */ + 0xe0 (PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */ + 0xe4 (PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */ + 0xe8 (PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */ + 0xec (PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en (lcd_en) */ + >; + }; + + /* bbb-exp-c */ + bbcape_lcd_24bit_pins: bbcape_lcd_24bit_pins { + pinctrl-single,pins = < + 0xa0 0x00 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xa4 0x00 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xa8 0x00 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xac 0x00 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xb0 0x00 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xb4 0x00 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xb8 0x00 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xbc 0x00 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xc0 0x00 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xc4 0x00 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xc8 0x00 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xcc 0x00 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xd0 0x00 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xd4 0x00 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xd8 0x00 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xdc 0x00 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0x3c 0x11 /* gpmc_ad15.lcd_data16, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x38 0x11 /* gpmc_ad14.lcd_data17, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x34 0x11 /* gpmc_ad13.lcd_data18, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x30 0x11 /* gpmc_ad12.lcd_data19, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x2c 0x11 /* gpmc_ad11.lcd_data20, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x28 0x11 /* gpmc_ad10.lcd_data21, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x24 0x11 /* gpmc_ad9.lcd_data22, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0x20 0x11 /* gpmc_ad8.lcd_data23, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */ + 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + >; + }; + + bbcape_lcd7_avdd_en_pins: bbcape_lcd7_avdd_en { + pinctrl-single,pins = < + 0x150 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* spi0_sclk.gpio0_2, OUTPUT | MODE7 - AVDD_EN */ + >; + }; + + bbcape_lcd4_disen_pins: bbcape_lcd4_disen_pins { + pinctrl-single,pins = < + 0x1a4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcasp0_fsr.gpio3[19] (lcd_disen) */ + >; + }; + clkout2_pin: pinmux_clkout2_pin { pinctrl-single,pins = < 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ diff --git a/arch/arm/boot/dts/am335x-bone-panel-1240x600-24bit.dtsi b/arch/arm/boot/dts/am335x-bone-panel-1240x600-24bit.dtsi new file mode 100644 index 0000000000000..2fd366ce7a7ce --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-panel-1240x600-24bit.dtsi @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_11_pinmux { + status = "disabled"; + }; + P8_12_pinmux { + status = "disabled"; + }; + P8_13_pinmux { + status = "disabled"; + }; + P8_14_pinmux { + status = "disabled"; + }; + P8_15_pinmux { + status = "disabled"; + }; + P8_16_pinmux { + status = "disabled"; + }; + P8_17_pinmux { + status = "disabled"; + }; + P8_19_pinmux { + status = "disabled"; + }; + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; +}; + +&lcdc { + status = "okay"; +}; + +/ { + panel { + status = "okay"; + compatible = "ti,tilcdc,panel"; + pinctrl-names = "default"; + pinctrl-0 = <&bbcape_lcd_24bit_pins>; + panel-info { + ac-bias = <255>; + ac-bias-intrpt = <0>; + dma-burst-sz = <16>; + bpp = <32>; + fdd = <0x80>; + sync-edge = <0>; + sync-ctrl = <0>; + raster-order = <1>; + fifo-th = <0>; + }; + display-timings { + native-mode = <&timing0>; + timing0: 1024x600 { + clock-frequency = <36000000>; + hactive = <1024>; + vactive = <600>; + hfront-porch = <1>; + hback-porch = <45>; + hsync-len = <30>; + vback-porch = <22>; + vfront-porch = <12>; + vsync-len = <2>; + hsync-active = <1>; + vsync-active = <1>; + de-active = <1>; + pixelclk-active = <0>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-panel-320x240.dtsi b/arch/arm/boot/dts/am335x-bone-panel-320x240.dtsi new file mode 100644 index 0000000000000..9643f0ecab3a8 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-panel-320x240.dtsi @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + /* hdmi */ + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; +}; + +&lcdc { + status = "okay"; +}; + +/ { + panel { + status = "okay"; + compatible = "ti,tilcdc,panel"; + pinctrl-names = "default"; + pinctrl-0 = <&bbcape_lcd_pins>; + panel-info { + ac-bias = <255>; + ac-bias-intrpt = <0>; + dma-burst-sz = <16>; + bpp = <16>; + fdd = <0x80>; + sync-edge = <0>; + sync-ctrl = <1>; + raster-order = <0>; + fifo-th = <0>; + invert-pxl-clk; + }; + display-timings { + /* Settings for CDTech_S035Q01 / LCD3 cape: */ + native-mode = <&timing0>; + timing0: 320x240 { + clock-frequency = <8000000>; + hactive = <320>; + vactive = <240>; + hfront-porch = <59>; + hback-porch = <22>; + hsync-len = <48>; + vback-porch = <12>; + vfront-porch = <23>; + vsync-len = <2>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <0>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-panel-480x272-bgrx_16bpp.dtsi b/arch/arm/boot/dts/am335x-bone-panel-480x272-bgrx_16bpp.dtsi new file mode 100644 index 0000000000000..bdd05afa818f8 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-panel-480x272-bgrx_16bpp.dtsi @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; +}; + +&lcdc { + bgrx_16bpp = <1>; + status = "okay"; +}; + +/ { + panel { + status = "okay"; + compatible = "ti,tilcdc,panel"; + pinctrl-names = "default"; + pinctrl-0 = <&bbcape_lcd_pins>; + panel-info { + ac-bias = <255>; + ac-bias-intrpt = <0>; + dma-burst-sz = <16>; + bpp = <16>; + fdd = <0x80>; + sync-edge = <0>; + sync-ctrl = <1>; + raster-order = <0>; + fifo-th = <0>; + }; + display-timings { + native-mode = <&timing0>; + timing0: 480x272 { + clock-frequency = <9000000>; + hactive = <480>; + vactive = <272>; + hfront-porch = <9>; + hback-porch = <44>; + hsync-len = <5>; + vback-porch = <13>; + vfront-porch = <4>; + vsync-len = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <0>; + pixelclk-active = <0>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-panel-480x272.dtsi b/arch/arm/boot/dts/am335x-bone-panel-480x272.dtsi new file mode 100644 index 0000000000000..aa02625021c8c --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-panel-480x272.dtsi @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; + P9_27_pinmux { + status = "disabled"; + }; +}; + +&lcdc { + status = "okay"; +}; + +/ { + panel { + status = "okay"; + compatible = "ti,tilcdc,panel"; + pinctrl-names = "default"; + pinctrl-0 = <&bbcape_lcd_pins &bbcape_lcd4_disen_pins>; + panel-info { + ac-bias = <255>; + ac-bias-intrpt = <0>; + dma-burst-sz = <16>; + bpp = <16>; + fdd = <0x80>; + sync-edge = <0>; + sync-ctrl = <1>; + raster-order = <0>; + fifo-th = <0>; + }; + display-timings { + native-mode = <&timing0>; + /* www.newhavendisplay.com/app_notes/OTA5180A.pdf */ + timing0: 480x272 { + clock-frequency = <9200000>; + hactive = <480>; + vactive = <272>; + hfront-porch = <8>; + hback-porch = <47>; + hsync-len = <41>; + vback-porch = <2>; + vfront-porch = <3>; + vsync-len = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <0>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-panel-800x480.dtsi b/arch/arm/boot/dts/am335x-bone-panel-800x480.dtsi new file mode 100644 index 0000000000000..7b8c053841b51 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-panel-800x480.dtsi @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_37_pinmux { + status = "disabled"; + }; + P8_38_pinmux { + status = "disabled"; + }; + P9_22_pinmux { + status = "disabled"; + }; +}; + +&lcdc { + status = "okay"; +}; + +/ { + panel { + status = "okay"; + compatible = "ti,tilcdc,panel"; + pinctrl-names = "default"; + pinctrl-0 = <&bbcape_lcd_pins &bbcape_lcd7_avdd_en_pins>; + panel-info { + ac-bias = <255>; + ac-bias-intrpt = <0>; + dma-burst-sz = <16>; + bpp = <16>; + fdd = <0x80>; + sync-edge = <0>; + sync-ctrl = <1>; + raster-order = <0>; + fifo-th = <0>; + }; + display-timings { + native-mode = <&timing0>; + /* Settings for ThreeFive S9700RTWV35TR / LCD7 cape: */ + timing0: 800x480 { + clock-frequency = <30000000>; + hactive = <800>; + vactive = <480>; + hfront-porch = <40>; + hback-porch = <40>; + hsync-len = <48>; + vback-porch = <30>; + vfront-porch = <13>; + vsync-len = <3>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <0>; + }; + }; + }; +}; From 2773bcfebd12546db7f21e3baeeac574b19a3180 Mon Sep 17 00:00:00 2001 From: John Syn Date: Tue, 15 Jul 2014 19:14:24 -0500 Subject: [PATCH 26/63] cape: audio-revb (split into pinmux and cape patches rcn-ee) Signed-off-by: John Syn Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-audio-revb.dtsi | 83 +++++++++++++++++++ .../boot/dts/am335x-bone-common-pinmux.dtsi | 11 +++ arch/arm/boot/dts/am335x-bone-common.dtsi | 10 ++- arch/arm/boot/dts/am335x-bone.dts | 6 ++ arch/arm/boot/dts/am335x-boneblack.dts | 6 ++ 5 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am335x-bone-audio-revb.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-audio-revb.dtsi b/arch/arm/boot/dts/am335x-bone-audio-revb.dtsi new file mode 100644 index 0000000000000..b54549e47dc94 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-audio-revb.dtsi @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P9_25_pinmux { + /* mcasp0_ahclkx, OUTPUT | MODE0, Codec MCLK */ + status = "disabled"; + }; + P9_28_pinmux { + /* mcasp0_axr2, INPUT | MODE2, Codec DIN */ + status = "disabled"; + }; + P9_29_pinmux { + /* mcasp0_fsx, INPUT | MODE0, Codec WCLK */ + status = "disabled"; + }; + P9_30_pinmux { + /* mcasp0_axr0, INPUT | MODE0, Codec DOUT */ + status = "disabled"; + }; + P9_31_pinmux { + /* mcasp0_aclkx, INPUT | MODE0, Codec BCLK */ + status = "disabled"; + }; +}; + +&i2c2 { + tlv320aic3x: tlv320aic3x@18 { + compatible = "ti,tlv320aic3x"; + reg = <0x18>; + ai3x-micbias-vg = <1>; + status = "okay"; + + /* Regulators */ + AVDD-supply = <&ldo4_reg>; + IOVDD-supply = <&ldo4_reg>; + DRVDD-supply = <&ldo4_reg>; + DVDD-supply = <&vbat>; + }; +}; + +&mcasp0 { + pinctrl-names = "default"; + pinctrl-0 = <&mcasp0_pins_audio_revb>; + status = "okay"; + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + num-serializer = <16>; + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 2 0 1 0 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tx-num-evt = <1>; + rx-num-evt = <1>; +}; + +/ { + sound { + compatible = "ti,da830-evm-audio"; + ti,model = "DA830 EVM"; + ti,audio-codec = <&tlv320aic3x>; + ti,mcasp-controller = <&mcasp0>; + ti,codec-clock-rate = <12000000>; + ti,audio-routing = + "Headphone Jack", "HPLOUT", + "Headphone Jack", "HPROUT", + "Line Out", "LLOUT", + "Line Out", "RLOUT", + "MIC3L", "Mic Jack", + "MIC3R", "Mic Jack", + "LINE1L", "Line In", + "LINE2L", "Line In", + "LINE1R", "Line In", + "LINE2R", "Line In"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index f845c671dcdba..2c90709228109 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -385,6 +385,17 @@ >; }; + /* audio rev b */ + mcasp0_pins_audio_revb: mcasp0_pins_audio_revb { + pinctrl-single,pins = < + 0x1ac 0x00 /* mcasp0_ahclkx, OUTPUT | MODE0, Codec MCLK */ + 0x190 0x20 /* mcasp0_aclkx, INPUT | MODE0, Codec BCLK */ + 0x194 0x20 /* mcasp0_fsx, INPUT | MODE0, Codec WCLK */ + 0x198 0x20 /* mcasp0_axr0, INPUT | MODE0, Codec DOUT */ + 0x19c 0x22 /* mcasp0_axr2, INPUT | MODE2, Codec DIN */ + >; + }; + /************************/ /* P8 Header */ /************************/ diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 32540b90ec804..00fbb9459bcbb 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -57,7 +57,15 @@ }; }; - vmmcsd_fixed: fixedregulator@0 { + vbat: fixedregulator@0 { + compatible = "regulator-fixed"; + regulator-name = "vbat"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; + }; + + vmmcsd_fixed: fixedregulator@1 { compatible = "regulator-fixed"; regulator-name = "vmmcsd_fixed"; regulator-min-microvolt = <3300000>; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index c29901ff839de..cc12e626ebe6d 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -78,3 +78,9 @@ /* uart5: P8.37, P8.38 */ #include "am335x-ttyO5.dtsi" /* #include "am335x-bone-ttyO5.dtsi" */ + +/* Capes */ + +/* http://elinux.org/CircuitCo:Audio_Cape_RevB */ +/* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ +/* #include "am335x-bone-audio-revb.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index b6c8182fda249..9432f7a4fc64c 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -76,3 +76,9 @@ /* uart5: P8.37, P8.38 boneblack: hdmi has to be disabled for ttyO5 */ #include "am335x-ttyO5.dtsi" /* #include "am335x-bone-ttyO5.dtsi" */ + +/* Capes */ + +/* http://elinux.org/CircuitCo:Audio_Cape_RevB */ +/* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ +/* #include "am335x-bone-audio-revb.dtsi" */ From aa78268730fdf12d6081b7d6524402a67e792136 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 09:52:24 -0500 Subject: [PATCH 27/63] cape: audio reva Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-audio-reva.dtsi | 90 +++++++++++++++++++ .../boot/dts/am335x-bone-common-pinmux.dtsi | 10 +++ arch/arm/boot/dts/am335x-bone.dts | 3 + arch/arm/boot/dts/am335x-boneblack.dts | 3 + 4 files changed, 106 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-audio-reva.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-audio-reva.dtsi b/arch/arm/boot/dts/am335x-bone-audio-reva.dtsi new file mode 100644 index 0000000000000..0234b8b0e1896 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-audio-reva.dtsi @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + /* gpio */ + P9_14_pinmux { + mode = "P9_14_gpio_pu_pin"; + }; + P9_16_pinmux { + mode = "P9_16_gpio_pu_pin"; + }; + /* audio */ + P9_25_pinmux { + status = "disabled"; + }; + P9_28_pinmux { + status = "disabled"; + }; + P9_29_pinmux { + status = "disabled"; + }; + P9_31_pinmux { + status = "disabled"; + }; + + gpio-leds-cape-audio { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <>; + + audio-led0 { + label = "audio:green:usr0"; + gpios = <&gpio1 18 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + + audio-led1 { + label = "audio:green:usr1"; + gpios = <&gpio1 19 0>; + linux,default-trigger = "mmc0"; + default-state = "off"; + }; + }; +}; + +&i2c2 { + tlv320aic3x: tlv320aic3x@1b { + compatible = "ti,tlv320aic3x"; + reg = <0x1b>; + status = "okay"; + }; +}; + +&mcasp0 { + pinctrl-names = "default"; + pinctrl-0 = <&mcasp0_pins_audio_reva>; + status = "okay"; + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + num-serializer = <16>; + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 0 0 2 1 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tx-num-evt = <1>; + rx-num-evt = <1>; +}; + +/ { + sound { + compatible = "ti,da830-evm-audio"; + ti,model = "DA830 EVM"; + ti,audio-codec = <&tlv320aic3x>; + ti,mcasp-controller = <&mcasp0>; + ti,codec-clock-rate = <12000000>; + ti,audio-routing = + "Headphone Jack", "HPLOUT", + "Headphone Jack", "HPROUT", + "LINE1L", "Line In", + "LINE1R", "Line In"; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 2c90709228109..3abacfe884099 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -385,6 +385,16 @@ >; }; + /* audio rev a */ + mcasp0_pins_audio_reva: mcasp0_pins_audio_reva { + pinctrl-single,pins = < + 0x190 0x20 /* mcasp0_aclkx.mcasp0_aclkx, INPUT | MODE0 */ + 0x194 0x20 /* mcasp0_fsx.mcasp0_fsx, INPUT | MODE0 */ + 0x19c 0x22 /* mcasp0_ahclkr.mcasp0_axr2, INPUT | MODE2 */ + 0x1ac 0x22 /* mcasp0_ahclkx.mcasp0_axr3, INPUT | MODE2 */ + >; + }; + /* audio rev b */ mcasp0_pins_audio_revb: mcasp0_pins_audio_revb { pinctrl-single,pins = < diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index cc12e626ebe6d..bb06739cf7d04 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -81,6 +81,9 @@ /* Capes */ +/* http://elinux.org/CircuitCo:Audio_Cape_RevA */ +/* #include "am335x-bone-audio-reva.dtsi" */ + /* http://elinux.org/CircuitCo:Audio_Cape_RevB */ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 9432f7a4fc64c..ff38cc8186a49 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -79,6 +79,9 @@ /* Capes */ +/* http://elinux.org/CircuitCo:Audio_Cape_RevA */ +/* #include "am335x-bone-audio-reva.dtsi" */ + /* http://elinux.org/CircuitCo:Audio_Cape_RevB */ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ From 492aaa746a1b417c7be4893d0e71cb4ce4ec7db3 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:07:15 -0500 Subject: [PATCH 28/63] cape: crypto 00a0 Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 7 ++++ .../arm/boot/dts/am335x-bone-crypto-00a0.dtsi | 36 +++++++++++++++++++ arch/arm/boot/dts/am335x-bone.dts | 5 +++ arch/arm/boot/dts/am335x-boneblack.dts | 5 +++ 4 files changed, 53 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-crypto-00a0.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 3abacfe884099..b61bb0daa8aaf 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -118,6 +118,13 @@ >; }; + bbcape_crypto_pins: pinmux_bbcape_crypto_pins { + pinctrl-single,pins = < + 0x044 0x17 /* gpio1_17 FAST | OUTPUT | PULLUP | MODE7 */ + 0x034 0x2F /* gpio1_13 FAST | INPUT | PULLDOWN | MODE7 */ + >; + }; + bbcape_lcd_pins: bbcape_lcd_pins { pinctrl-single,pins = < 0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ diff --git a/arch/arm/boot/dts/am335x-bone-crypto-00a0.dtsi b/arch/arm/boot/dts/am335x-bone-crypto-00a0.dtsi new file mode 100644 index 0000000000000..a6aa596ea7119 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-crypto-00a0.dtsi @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* + * FIXME: gpio + * (bbcape_crypto_pins) + * atmega_rst@1 { + * label = "atmega_rst"; + * gpio = <&gpio1 17 0x00>; + * }; + * + * ataes132_auth@2 { + * label = "test_input"; + * gpio = <&gpio1 13 0x00>; + * }; + */ + +&i2c2 { + ds1307@68 { + compatible = "ds1307"; + reg = <0x68>; + }; + + tpm_i2c_atmel@29 { + compatible = "tpm_i2c_atmel"; + reg = <0x29>; + }; +}; + +/* uart4: P9.11, P9.13 */ +#include "am335x-bone-ttyO4.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index bb06739cf7d04..f34452f50746e 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -87,3 +87,8 @@ /* http://elinux.org/CircuitCo:Audio_Cape_RevB */ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ + +/* http://elinux.org/Cryptotronix:CryptoCape */ +/* uart4: P9.11, P9.13 */ +/* gpio: gpio1 13 gpio1 17 (gpio NOT IMPLEMENTED YET) */ +/* #include "am335x-bone-crypto-00a0.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index ff38cc8186a49..c0c6174cee982 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -85,3 +85,8 @@ /* http://elinux.org/CircuitCo:Audio_Cape_RevB */ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ + +/* http://elinux.org/Cryptotronix:CryptoCape */ +/* uart4: P9.11, P9.13 */ +/* gpio: gpio1 13 gpio1 17 (gpio NOT IMPLEMENTED YET) */ +/* #include "am335x-bone-crypto-00a0.dtsi" */ From 0744780685b6b045eb27a1fa158137112eb83d75 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:12:50 -0500 Subject: [PATCH 29/63] cape: rtc 01 00a1 Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 7 +++ .../arm/boot/dts/am335x-bone-rtc-01-00a1.dtsi | 46 +++++++++++++++++++ arch/arm/boot/dts/am335x-bone.dts | 5 ++ arch/arm/boot/dts/am335x-boneblack.dts | 5 ++ 4 files changed, 63 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index b61bb0daa8aaf..671878698029e 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -47,6 +47,13 @@ >; }; + /* rtc-01-00a1 */ + gpio1_29_pins: pinmux_gpio1_29_pins { + pinctrl-single,pins = < + 0x07c 0x3f /* gpmc_csn0.gpio1_29, INPUT | PULLDIS | MODE 7 */ + >; + }; + /* lcd3-01-00a2 */ gpio3_19_led_pins: pinmux_gpio3_19_led_pins { pinctrl-single,pins = < diff --git a/arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dtsi b/arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dtsi new file mode 100644 index 0000000000000..82168789beb76 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dtsi @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_26_pinmux { + /* gpio1[29] */ + status = "disabled"; + }; +}; + +/ { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio1_29_pins>; + + #address-cells = <1>; + #size-cells = <0>; + + rtc_mfp@1 { + label = "rtc_mfp"; + gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; + linux,code = <143>; /* System Wake Up */ + gpio-key,wakeup; + }; + }; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins>; + + status = "okay"; + clock-frequency = <100000>; + + /* MCP79410 RTC module */ + rtc@68 { + compatible = "maxim,ds1338"; + reg = <0x68>; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index f34452f50746e..ee6cb5ecd98aa 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -88,6 +88,11 @@ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ +/* http://elinux.org/CircuitCo:RTC_Cape */ +/* i2c1: P9.17, P9.18 */ +/* gpio: P8.26 (mfp: wakeup) */ +/* #include "am335x-bone-rtc-01-00a1.dtsi" */ + /* http://elinux.org/Cryptotronix:CryptoCape */ /* uart4: P9.11, P9.13 */ /* gpio: gpio1 13 gpio1 17 (gpio NOT IMPLEMENTED YET) */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index c0c6174cee982..602629caf5344 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -86,6 +86,11 @@ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ +/* http://elinux.org/CircuitCo:RTC_Cape */ +/* i2c1: P9.17, P9.18 */ +/* gpio: P8.26 (mfp: wakeup) */ +/* #include "am335x-bone-rtc-01-00a1.dtsi" */ + /* http://elinux.org/Cryptotronix:CryptoCape */ /* uart4: P9.11, P9.13 */ /* gpio: gpio1 13 gpio1 17 (gpio NOT IMPLEMENTED YET) */ From a3d5a4815e02b569eb26e444af9b3310cbacad47 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:16:49 -0500 Subject: [PATCH 30/63] cape: lcd Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-4dcape-43.dtsi | 31 +++++ arch/arm/boot/dts/am335x-bone-4dcape-43t.dtsi | 31 +++++ arch/arm/boot/dts/am335x-bone-4dcape-70.dtsi | 31 +++++ arch/arm/boot/dts/am335x-bone-4dcape-70t.dtsi | 31 +++++ arch/arm/boot/dts/am335x-bone-bb-view-43.dtsi | 33 +++++ arch/arm/boot/dts/am335x-bone-bbb-exp-c.dtsi | 127 ++++++++++++++++++ .../boot/dts/am335x-bone-common-pinmux.dtsi | 17 +++ .../boot/dts/am335x-bone-lcd3-01-00a2.dtsi | 31 +++++ .../boot/dts/am335x-bone-lcd4-01-00a1.dtsi | 31 +++++ .../boot/dts/am335x-bone-lcd7-01-00a2.dtsi | 31 +++++ .../boot/dts/am335x-bone-lcd7-01-00a3.dtsi | 31 +++++ arch/arm/boot/dts/am335x-bone.dts | 24 ++++ arch/arm/boot/dts/am335x-boneblack.dts | 25 ++++ 13 files changed, 474 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-43.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-43t.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-70.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-70t.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-bb-view-43.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-bbb-exp-c.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-43.dtsi b/arch/arm/boot/dts/am335x-bone-4dcape-43.dtsi new file mode 100644 index 0000000000000..3ef21bca7701e --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-43.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +/* #include "am335x-bone-keymap0.dtsi" */ +#include "am335x-bone-keymap1.dtsi" +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +/* #include "am335x-bone-ti-tscadc-4-wire.dtsi" */ + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +#include "am335x-bone-panel-480x272.dtsi" +/* #include "am335x-bone-panel-800x480.dtsi" */ +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-43t.dtsi b/arch/arm/boot/dts/am335x-bone-4dcape-43t.dtsi new file mode 100644 index 0000000000000..bb274341e1498 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-43t.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +/* #include "am335x-bone-keymap0.dtsi" */ +#include "am335x-bone-keymap1.dtsi" +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +#include "am335x-bone-panel-480x272.dtsi" +/* #include "am335x-bone-panel-800x480.dtsi" */ +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-70.dtsi b/arch/arm/boot/dts/am335x-bone-4dcape-70.dtsi new file mode 100644 index 0000000000000..aa300107be178 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-70.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +#include "am335x-bone-keymap0.dtsi" +/* #include "am335x-bone-keymap1.dtsi" */ +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +/* #include "am335x-bone-ti-tscadc-4-wire.dtsi" */ + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +/* #include "am335x-bone-panel-480x272.dtsi" */ +#include "am335x-bone-panel-800x480.dtsi" +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-70t.dtsi b/arch/arm/boot/dts/am335x-bone-4dcape-70t.dtsi new file mode 100644 index 0000000000000..4ce42f3466eec --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-70t.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +#include "am335x-bone-keymap0.dtsi" +/* #include "am335x-bone-keymap1.dtsi" */ +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +/* #include "am335x-bone-panel-480x272.dtsi" */ +#include "am335x-bone-panel-800x480.dtsi" +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-bb-view-43.dtsi b/arch/arm/boot/dts/am335x-bone-bb-view-43.dtsi new file mode 100644 index 0000000000000..9786816af19c6 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-bb-view-43.dtsi @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +/* #include "am335x-bone-keymap0.dtsi" */ +/* #include "am335x-bone-keymap1.dtsi" */ +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ +#include "am335x-bone-keymap4.dtsi" + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +/* #include "am335x-bone-panel-480x272.dtsi" */ +/* #include "am335x-bone-panel-800x480.dtsi" */ +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ +#include "am335x-bone-panel-480x272-bgrx_16bpp.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-bbb-exp-c.dtsi b/arch/arm/boot/dts/am335x-bone-bbb-exp-c.dtsi new file mode 100644 index 0000000000000..8edb4f511b585 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-bbb-exp-c.dtsi @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +#include "am335x-bone-ttyO1.dtsi" +#include "am335x-bone-ttyO2.dtsi" +#include "am335x-bone-ttyO4.dtsi" + +&ocp { + /* i2c */ + P9_17_pinmux { + status = "disabled"; + }; + P9_18_pinmux { + status = "disabled"; + }; + /* edt-ft5306 irq pin */ + P9_23_pinmux { + status = "disabled"; + }; + /* audio */ + P9_28_pinmux { + status = "disabled"; + }; + P9_29_pinmux { + status = "disabled"; + }; + P9_30_pinmux { + status = "disabled"; + }; + P9_31_pinmux { + status = "disabled"; + }; + P9_41_pinmux { + status = "disabled"; + }; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins>; + + status = "okay"; + clock-frequency = <400000>; + + edt-ft5306@38 { + status = "okay"; + compatible = "edt,edt-ft5306", "edt,edt-ft5x06"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio1_17_pins>; + + reg = <0x38>; + interrupt-parent = <&gpio1>; + interrupts = <17 0>; + + touchscreen-size-x = <1240>; + touchscreen-size-y = <600>; + }; + + tlv320aic3x: tlv320aic3x@1b { + compatible = "ti,tlv320aic3x"; + reg = <0x1b>; + status = "okay"; + }; +}; + +&mcasp0 { + pinctrl-names = "default"; + pinctrl-0 = <&mcasp0_pins_audio2>; + + status = "okay"; + + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + num-serializer = <16>; + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 1 0 2 0 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tx-num-evt = <1>; + rx-num-evt = <1>; +}; + +/ { + sound { + compatible = "ti,da830-evm-audio"; + ti,model = "DA830 EVM"; + ti,audio-codec = <&tlv320aic3x>; + ti,mcasp-controller = <&mcasp0>; + ti,codec-clock-rate = <12000000>; + ti,audio-routing = + "Headphone Jack", "HPLOUT", + "Headphone Jack", "HPROUT", + "MIC3L", "Mic Jack", + "MIC3R", "Mic Jack"; + }; +}; + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +/* #include "am335x-bone-led-gpio1-28.dtsi" */ +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +#include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" + +/* Keypad */ +/* #include "am335x-bone-keymap0.dtsi" */ +/* #include "am335x-bone-keymap1.dtsi" */ +/* #include "am335x-bone-keymap2.dtsi" */ +#include "am335x-bone-keymap3.dtsi" + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +/* #include "am335x-bone-ti-tscadc-4-wire.dtsi" */ + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +/* #include "am335x-bone-panel-480x272.dtsi" */ +/* #include "am335x-bone-panel-800x480.dtsi" */ +#include "am335x-bone-panel-1240x600-24bit.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 671878698029e..09907edb39900 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -33,6 +33,13 @@ >; }; + /* bbb-exp-c */ + gpio1_17_pins: pinmux_gpio1_17_pins { + pinctrl-single,pins = < + 0x044 0x27 /* CAP_TSC gpmc_a1.gpio1_17, INPUT | MODE7 */ + >; + }; + /* lcd4-01-00a0 */ gpio1_18_led_pins: pinmux_gpio1_18_led_pins { pinctrl-single,pins = < @@ -420,6 +427,16 @@ >; }; + /* bbb-exp-c */ + mcasp0_pins_audio2: mcasp0_pins_audio2 { + pinctrl-single,pins = < + 0x190 0x20 /* mcasp0_aclkx.mcasp0_aclkx, INPUT | MODE0 */ + 0x194 0x20 /* mcasp0_fsx.mcasp0_fsx, INPUT | MODE0 */ + 0x198 0x20 /* mcasp0_axr0.mcasp0_axr0, INPUT | MODE0 */ + 0x19c 0x22 /* mcasp0_ahclkr.mcasp0_axr2, INPUT | MODE2 */ + >; + }; + /************************/ /* P8 Header */ /************************/ diff --git a/arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dtsi b/arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dtsi new file mode 100644 index 0000000000000..6a7378c4da15c --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +/* #include "am335x-bone-led-gpio1-28.dtsi" */ +#include "am335x-bone-led-gpio3-19.dtsi" +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +#include "am335x-bone-keymap0.dtsi" +/* #include "am335x-bone-keymap1.dtsi" */ +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +#include "am335x-bone-panel-320x240.dtsi" +/* #include "am335x-bone-panel-480x272.dtsi" */ +/* #include "am335x-bone-panel-800x480.dtsi" */ +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dtsi b/arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dtsi new file mode 100644 index 0000000000000..bb274341e1498 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +/* #include "am335x-bone-keymap0.dtsi" */ +#include "am335x-bone-keymap1.dtsi" +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +#include "am335x-bone-panel-480x272.dtsi" +/* #include "am335x-bone-panel-800x480.dtsi" */ +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dtsi b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dtsi new file mode 100644 index 0000000000000..5eb68c3e7d796 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +/* #include "am335x-bone-keymap0.dtsi" */ +/* #include "am335x-bone-keymap1.dtsi" */ +#include "am335x-bone-keymap2.dtsi" +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +/* #include "am335x-bone-panel-480x272.dtsi" */ +#include "am335x-bone-panel-800x480.dtsi" +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dtsi b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dtsi new file mode 100644 index 0000000000000..4ce42f3466eec --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +/* Led */ +/* #include "am335x-bone-led-gpio1-18.dtsi" */ +#include "am335x-bone-led-gpio1-28.dtsi" +/* #include "am335x-bone-led-gpio3-19.dtsi" */ +/* #include "am335x-bone-led-gpio2-4-gpio2-5.dtsi" */ + +/* Keypad */ +#include "am335x-bone-keymap0.dtsi" +/* #include "am335x-bone-keymap1.dtsi" */ +/* #include "am335x-bone-keymap2.dtsi" */ +/* #include "am335x-bone-keymap3.dtsi" */ + +/* Backlight */ +#include "am335x-bone-bl-gpio1-18.dtsi" + +/* Touchscreen */ +#include "am335x-bone-ti-tscadc-4-wire.dtsi" + +/* Panel */ +/* #include "am335x-bone-panel-320x240.dtsi" */ +/* #include "am335x-bone-panel-480x272.dtsi" */ +#include "am335x-bone-panel-800x480.dtsi" +/* #include "am335x-bone-panel-1240x600-24bit.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index ee6cb5ecd98aa..31f50719bf69c 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -80,6 +80,17 @@ /* #include "am335x-bone-ttyO5.dtsi" */ /* Capes */ +/* http://elinux.org/4D_4.3_LCD_CAPE */ +/* 4DCAPE-43 (Non Touch version): */ +/* #include "am335x-bone-4dcape-43.dtsi" */ +/* 4DCAPE-43T (Resistive Touch version): */ +/* #include "am335x-bone-4dcape-43t.dtsi" */ + +/* http://www.4dsystems.com.au/product/4DCAPE_70T/ */ +/* 4DCAPE-70 (Non Touch version): */ +/* #include "am335x-bone-4dcape-70.dtsi" */ +/* 4DCAPE-70T (Resistive Touch version): */ +/* #include "am335x-bone-4dcape-70t.dtsi" */ /* http://elinux.org/CircuitCo:Audio_Cape_RevA */ /* #include "am335x-bone-audio-reva.dtsi" */ @@ -88,6 +99,19 @@ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ +/* http://elinux.org/CircuitCo:BeagleBone_LCD3 */ +/* #include "am335x-bone-lcd3-01-00a2.dtsi" */ + +/* http://elinux.org/CircuitCo:BeagleBone_LCD4 */ +/* #include "am335x-bone-lcd4-01-00a1.dtsi" */ + +/* http://elinux.org/CircuitCo:BeagleBone_LCD7 */ +/* #include "am335x-bone-lcd7-01-00a2.dtsi" */ +/* #include "am335x-bone-lcd7-01-00a3.dtsi" */ + +/* http://www.chipsee.com/product/evm/beagle/beaglebone-black-expansion-capacitive.html */ +/* #include "am335x-bone-bbb-exp-c.dtsi" */ + /* http://elinux.org/CircuitCo:RTC_Cape */ /* i2c1: P9.17, P9.18 */ /* gpio: P8.26 (mfp: wakeup) */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 602629caf5344..27ac8eccc96dd 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -78,6 +78,17 @@ /* #include "am335x-bone-ttyO5.dtsi" */ /* Capes */ +/* http://elinux.org/4D_4.3_LCD_CAPE */ +/* 4DCAPE-43 (Non Touch version): */ +/* #include "am335x-bone-4dcape-43.dtsi" */ +/* 4DCAPE-43T (Resistive Touch version): */ +/* #include "am335x-bone-4dcape-43t.dtsi" */ + +/* http://www.4dsystems.com.au/product/4DCAPE_70T/ */ +/* 4DCAPE-70 (Non Touch version): */ +/* #include "am335x-bone-4dcape-70.dtsi" */ +/* 4DCAPE-70T (Resistive Touch version): */ +/* #include "am335x-bone-4dcape-70t.dtsi" */ /* http://elinux.org/CircuitCo:Audio_Cape_RevA */ /* #include "am335x-bone-audio-reva.dtsi" */ @@ -86,6 +97,20 @@ /* Pins: P9.24, P9.28, P9.29, P9.31, P9.30 */ /* #include "am335x-bone-audio-revb.dtsi" */ +/* http://elinux.org/CircuitCo:BeagleBone_LCD3 */ +/* #include "am335x-bone-lcd3-01-00a2.dtsi" */ + +/* http://elinux.org/CircuitCo:BeagleBone_LCD4 */ +/* #include "am335x-bone-lcd4-01-00a1.dtsi" */ + +/* http://elinux.org/CircuitCo:BeagleBone_LCD7 */ +/* am335x-boneblack: emmc has to be disabled for lcd7-01-00a2 */ +/* #include "am335x-bone-lcd7-01-00a2.dtsi" */ +/* #include "am335x-bone-lcd7-01-00a3.dtsi" */ + +/* http://www.chipsee.com/product/evm/beagle/beaglebone-black-expansion-capacitive.html */ +/* #include "am335x-bone-bbb-exp-c.dtsi" */ + /* http://elinux.org/CircuitCo:RTC_Cape */ /* i2c1: P9.17, P9.18 */ /* gpio: P8.26 (mfp: wakeup) */ From 57d06ddb21a6cd793d59d45decd67f7b0e2c020b Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:26:40 -0500 Subject: [PATCH 31/63] cape: basic proto Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-basic-proto-cape.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/am335x-bone.dts | 3 +++ arch/arm/boot/dts/am335x-boneblack.dts | 3 +++ 3 files changed, 23 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-basic-proto-cape.dtsi diff --git a/arch/arm/boot/dts/am335x-bone-basic-proto-cape.dtsi b/arch/arm/boot/dts/am335x-bone-basic-proto-cape.dtsi new file mode 100644 index 0000000000000..a4e4b4e3c4a67 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-basic-proto-cape.dtsi @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +#include "am335x-bone-spi0-spidev.dtsi" +#include "am335x-bone-ttyO1.dtsi" + +&tscadc { + status = "okay"; + adc { + ti,adc-channels = <4 5 6>; + }; +}; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 31f50719bf69c..bd39da9732196 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -121,3 +121,6 @@ /* uart4: P9.11, P9.13 */ /* gpio: gpio1 13 gpio1 17 (gpio NOT IMPLEMENTED YET) */ /* #include "am335x-bone-crypto-00a0.dtsi" */ + +/* http://elinux.org/CircuitCo:Basic_Proto_Cape */ +/* #include "am335x-bone-basic-proto-cape.dtsi" */ diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 27ac8eccc96dd..59e9c202e7ad8 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -120,3 +120,6 @@ /* uart4: P9.11, P9.13 */ /* gpio: gpio1 13 gpio1 17 (gpio NOT IMPLEMENTED YET) */ /* #include "am335x-bone-crypto-00a0.dtsi" */ + +/* http://elinux.org/CircuitCo:Basic_Proto_Cape */ +/* #include "am335x-bone-basic-proto-cape.dtsi" */ From 06f342f16ea48a10b927f1ee06667ef71da0c142 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Thu, 4 Sep 2014 16:10:49 -0500 Subject: [PATCH 32/63] hack: bbb enable 1ghz operation Signed-off-by: Robert Nelson --- arch/arm/mach-omap2/opp33xx_data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-omap2/opp33xx_data.c b/arch/arm/mach-omap2/opp33xx_data.c index 0e07186f64edf..c4f5e1efbf589 100644 --- a/arch/arm/mach-omap2/opp33xx_data.c +++ b/arch/arm/mach-omap2/opp33xx_data.c @@ -49,7 +49,7 @@ static struct omap_opp_def am33xx_es2_x_opp_list[] __initdata = { /* MPU OPP4 - OPPTurbo */ OPP_INITIALIZER("mpu", true, 800000000, 1260000), /* MPU OPP5 - OPPNitro */ - OPP_INITIALIZER("mpu", false, 1000000000, 1325000), + OPP_INITIALIZER("mpu", true, 1000000000, 1325000), }; /* From AM335x TRM, SPRUH73H, Section 9.3.50 */ From e1de21d033f64af2b2524c7089a36890f9ff841b Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 27 Aug 2014 13:56:37 -0500 Subject: [PATCH 33/63] dts: am335x-bone-common: fixup leds to match 3.8 https://groups.google.com/d/msg/beagleboard/634Xm1m3XA8/B028x1FzAyAJ Reported-by: Mark A. Yoder Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-common.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 00fbb9459bcbb..605f153dc856a 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -29,14 +29,14 @@ compatible = "gpio-leds"; led@2 { - label = "beaglebone:green:heartbeat"; + label = "beaglebone:green:usr0"; gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; default-state = "off"; }; led@3 { - label = "beaglebone:green:mmc0"; + label = "beaglebone:green:usr1"; gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; linux,default-trigger = "mmc0"; default-state = "off"; From f9c6b766fff98df63b521ef4e7299f08a6e00fa1 Mon Sep 17 00:00:00 2001 From: Nishanth Menon Date: Wed, 3 Sep 2014 11:03:10 -0500 Subject: [PATCH 34/63] ARM: dts: am335x-bone*: Fix model name and update compatibility information Beaglebone white and beaglebone black differ in tiny little aspects. This is the reason why we maintain seperate dts for these platforms. However, there is no real way to decode from dtb which platform it is since compatible and model name are the same for both platforms. Fix this so that beaglebone black and beaglebone are identifiable, while maintaining compatibility for older zImages which might use old beaglebone compatible flag for black as well. Reported-by: Tom Rini Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren --- arch/arm/boot/dts/am335x-bone-common.dtsi | 3 --- arch/arm/boot/dts/am335x-bone.dts | 5 +++++ arch/arm/boot/dts/am335x-boneblack.dts | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 605f153dc856a..e58eb6ae45e56 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -7,9 +7,6 @@ */ / { - model = "TI AM335x BeagleBone"; - compatible = "ti,am335x-bone", "ti,am33xx"; - cpus { cpu@0 { cpu0-supply = <&dcdc2_reg>; diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index bd39da9732196..1b6e16f84e064 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -11,6 +11,11 @@ #include "am335x-bone-common.dtsi" #include "am335x-bone-common-pinmux.dtsi" +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 59e9c202e7ad8..35335fb3dda26 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -11,6 +11,11 @@ #include "am335x-bone-common.dtsi" #include "am335x-bone-common-pinmux.dtsi" +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; From 8f57216c4846c0a8f7b42bf822a5f50240d5a91f Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Thu, 11 Sep 2014 16:15:07 -0500 Subject: [PATCH 35/63] ARM: dts: am335x-boneblack: dcdc1 set to 1.35v for ddr3 Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-boneblack.dts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 35335fb3dda26..582900cf2aa5b 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -16,6 +16,15 @@ compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; }; +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; From 171ac2568a243c0402cef63a7c924a5145ce81da Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Thu, 18 Sep 2014 16:14:48 -0500 Subject: [PATCH 36/63] add base files Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-base.dts | 51 +++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack-base.dts | 55 +++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-base.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-base.dts diff --git a/arch/arm/boot/dts/am335x-bone-base.dts b/arch/arm/boot/dts/am335x-bone-base.dts new file mode 100644 index 0000000000000..76247ec5ac281 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-base.dts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; diff --git a/arch/arm/boot/dts/am335x-boneblack-base.dts b/arch/arm/boot/dts/am335x-boneblack-base.dts new file mode 100644 index 0000000000000..b568be28befd3 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-base.dts @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" From ebd08ab6e19eea61b3ea1826da083d8cfe38e725 Mon Sep 17 00:00:00 2001 From: Dave Lambert Date: Mon, 16 Jun 2014 14:19:17 -0500 Subject: [PATCH 37/63] cape: Argus UPS cape support Rewritten using includes, v3.16.1 Signed-off-by: Dave Lambert Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-argus.dtsi | 85 ++++ drivers/misc/Kconfig | 1 + drivers/misc/Makefile | 1 + drivers/misc/cape_bone_argus/Kconfig | 7 + drivers/misc/cape_bone_argus/Makefile | 5 + .../misc/cape_bone_argus/cape_bone_argus.c | 415 ++++++++++++++++++ 6 files changed, 514 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-argus.dtsi create mode 100644 drivers/misc/cape_bone_argus/Kconfig create mode 100644 drivers/misc/cape_bone_argus/Makefile create mode 100644 drivers/misc/cape_bone_argus/cape_bone_argus.c diff --git a/arch/arm/boot/dts/am335x-bone-argus.dtsi b/arch/arm/boot/dts/am335x-bone-argus.dtsi new file mode 100644 index 0000000000000..b6d4946aaec26 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-argus.dtsi @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ + +&ocp { + P8_07_pinmux { + /* gpio2[2] */ + status = "disabled"; + }; + P8_08_pinmux { + /* gpio2[3] */ + status = "disabled"; + }; + P8_09_pinmux { + /* gpio2[5] */ + status = "disabled"; + }; + P8_10_pinmux { + /* gpio2[4] */ + status = "disabled"; + }; + P9_11_pinmux { + /* gpio0[30] */ + status = "disabled"; + }; + P9_17_pinmux { + /* gpio0[5] */ + status = "disabled"; + }; + P9_18_pinmux { + /* gpio0[4] */ + status = "disabled"; + }; + P9_41_pinmux { + /* gpio0[20] */ + status = "disabled"; + }; + P9_42_pinmux { + /* gpio0[7] */ + status = "disabled"; + }; +}; + +/ { + argus-ups { + compatible = "argus-ups"; + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&argus_ups_pins>; /* Refer to previous label */ + /* This section communicates the gpio numbers to the driver module */ + /* Note that gpio controllers appear to be numbered from 1-n here rather than 0-(n-1)????? */ + gpios = <&gpio0 30 0>, /* Request */ + <&gpio0 5 0>, /* Acknowledge */ + <&gpio0 4 0>, /* Watchdog */ + <&gpio2 2 0>, /* LED 1 Green */ + <&gpio2 3 0>, /* LED 1 Red */ + <&gpio2 5 0>, /* LED 2 Green */ + <&gpio2 4 0>, /* LED 2 Red */ + <&gpio0 20 0>, /* General Output #1 */ + <&gpio0 7 0>; /* General Output #2 */ + debug = <1>; + shutdown = <1>; + }; +}; + +&am33xx_pinmux { + argus_ups_pins: pinmux_argus_ups_pins { /* Set up pinmux */ + pinctrl-single,pins = < + 0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_wait0.gpio0_30 */ + 0x15c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* spi0_cs0.gpio0_5 */ + 0x158 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* spi0_d1.gpio0_4 */ + 0x090 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_advn_ale.gpio_2 */ + 0x094 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_oen_ren.gpio2_3 */ + 0x09c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_ben0_cle.gpio2_5 */ + 0x098 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_gpmc_wen.gpio2_4 */ + 0x1b4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* xdma_event_intr1.gpio0_20 */ + 0x164 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* ecap0_in_pwm0_out.gpio0_7 */ + >; + }; +}; diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index bfa3093c54d8a..cb09742a3608e 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -525,6 +525,7 @@ source "drivers/misc/altera-stapl/Kconfig" source "drivers/misc/mei/Kconfig" source "drivers/misc/vmw_vmci/Kconfig" source "drivers/misc/mic/Kconfig" +source "drivers/misc/cape_bone_argus/Kconfig" source "drivers/misc/genwqe/Kconfig" source "drivers/misc/cape/Kconfig" diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 698af195968c3..d386f748f9eb1 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -53,5 +53,6 @@ obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_SRAM) += sram.o obj-y += mic/ +obj-y += cape_bone_argus/ obj-$(CONFIG_GENWQE) += genwqe/ obj-y += cape/ diff --git a/drivers/misc/cape_bone_argus/Kconfig b/drivers/misc/cape_bone_argus/Kconfig new file mode 100644 index 0000000000000..1b396611e447f --- /dev/null +++ b/drivers/misc/cape_bone_argus/Kconfig @@ -0,0 +1,7 @@ +comment "Argus cape driver for beaglebone black" + +config CAPE_BONE_ARGUS + tristate "Argus Cape Driver" + default M + help + Argus Cape Driver diff --git a/drivers/misc/cape_bone_argus/Makefile b/drivers/misc/cape_bone_argus/Makefile new file mode 100644 index 0000000000000..5482562177766 --- /dev/null +++ b/drivers/misc/cape_bone_argus/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for Argus cape +# + +obj-$(CONFIG_CAPE_BONE_ARGUS) += cape_bone_argus.o diff --git a/drivers/misc/cape_bone_argus/cape_bone_argus.c b/drivers/misc/cape_bone_argus/cape_bone_argus.c new file mode 100644 index 0000000000000..c434218d93de1 --- /dev/null +++ b/drivers/misc/cape_bone_argus/cape_bone_argus.c @@ -0,0 +1,415 @@ +/* -*- linux-c -*- */ + +/* Linux Kernel Module for Breakaway Systems UPS control. + * + * PUBLIC DOMAIN + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Module to sync file systems leaving them mounted read-only, + * then signal the UPS that it is safe to remove + * power, and finally halt the processor. + * Also to allow kicking the watchdog from user mode. + */ +#undef DEBUG_ARGUS + +#define N_GPIOS 9 /* Total number of GPIOS used */ + +#define REQ_GPIO_IDX 0 /* Indices got GPIOS */ +#define ACK_GPIO_IDX 1 +#define WDG_GPIO_IDX 2 +#define LED1_GREEN_IDX 3 +#define LED1_RED_IDX 4 +#define LED2_GREEN_IDX 5 +#define LED2_RED_IDX 6 +#define GEN_OUT1_IDX 7 +#define GEN_OUT2_IDX 8 + +static struct argus_ups_info { /* As there is only one UPS device we can make this static */ + struct fasync_struct *async_queue; /* asynchronous readers */ + struct platform_device *pdev; + struct pwm_device *pwm_dev; + struct gpio gpios[N_GPIOS]; +} info = {NULL, NULL, NULL, /* Some fields filled in by device tree, probe, etc. */ + { + {-1, GPIOF_IN, "Powerdown request"}, + {-1, GPIOF_OUT_INIT_LOW, "Powerdown acknowledge" }, + {-1, GPIOF_OUT_INIT_LOW, "Watchdog"}, + {-1, GPIOF_OUT_INIT_LOW, "LED 1 Green"}, + {-1, GPIOF_OUT_INIT_LOW, "LED 1 Red"}, + {-1, GPIOF_OUT_INIT_LOW, "LED 2 Green"}, + {-1, GPIOF_OUT_INIT_LOW, "LED 2 Red"}, + {-1, GPIOF_OUT_INIT_LOW, "General Output #1"}, + {-1, GPIOF_OUT_INIT_LOW, "General Output #2"} + }, +}; + + +static const struct of_device_id argus_ups_of_ids[] = { + { .compatible = "argus-ups" }, + { } +}; + +static int argus_ups_major; /* Major device number */ + +static struct class *argus_ups_class; /* /sys/class */ + +dev_t argus_ups_dev; /* Device number */ + +static struct cdev *argus_ups_cdev; /* Character device details */ + +static void argus_ups_function(struct work_struct *ignored); /* Work function */ + +static DECLARE_DELAYED_WORK(argus_ups_work, argus_ups_function); /* Kernel workqueue glue */ + +static struct workqueue_struct *argus_ups_workqueue; /* Kernel workqueue */ + +static int debug = 0; +module_param(debug, int, S_IRUGO); +MODULE_PARM_DESC(debug, "Debug flag"); + +static int shutdown = 1; +module_param(shutdown, int, S_IRUGO); +MODULE_PARM_DESC(shutdown, "Shutdown flag"); + +#ifdef DEBUG_ARGUS +static char* fs_type_names[] = {"vfat", "ext4"}; /* File system names that may need syncing. */ +#endif + +/* Just kick watchdog */ + +static ssize_t argus_ups_write(struct file *filp, const char __user *buf, size_t count, + loff_t *f_pos) +{ + int i; + if (debug >= 3) { + printk("Writing to watchdog - count:%d\n", count); + } + for (i = 0; i < count; i++) { + gpio_set_value(info.gpios[WDG_GPIO_IDX].gpio, 1); /* Set it */ + msleep(10); /* Wait */ + gpio_set_value(info.gpios[WDG_GPIO_IDX].gpio, 0); /* End clearing it */ + msleep(10); + } + return count; /* Always returns what we sent, regardsless */ +} + +static long argus_ups_ioctl(struct file *file, + unsigned int ioctl, + unsigned long param) +{ + if (debug >= 4) { + printk(KERN_ERR "ioctl: %d, param: %ld\n", ioctl, param); + } + switch(ioctl) { + case 10001: { + debug = param; + printk("Debug set to %d\n", debug); + break; + } + case 10002: { + unsigned char value = param & 0x0F; + unsigned char mask = (param >> 4) & 0x0F; + int i; /* Loop iterator */ + if (mask == 0) { + printk(KERN_ERR "Pointless mask of zero!\n"); + } + for (i = 0; i < 4; i++) { /* For all four LEDS */ + if (mask & (1 << i)) { /* Only masked values */ + if (value & (1 << i)) { /* On - so gpio is hi */ + if (debug >= 4) { + printk("Setting %d hi, ", + info.gpios[LED1_GREEN_IDX + i].gpio); + } + gpio_set_value(info.gpios[LED1_GREEN_IDX + i].gpio, 1); + } + else { /* Off - so gpio is lo */ + if (debug >= 4) { + printk("Setting %d lo, ", + info.gpios[LED1_GREEN_IDX + i].gpio); + } + gpio_set_value(info.gpios[LED1_GREEN_IDX + i].gpio, 0); + } + } + } + if (debug >= 4) { + printk("\n"); + } + break; + } + case 10003: { + gpio_set_value(info.gpios[GEN_OUT1_IDX].gpio, param & 1); + break; + } + case 10004: { + gpio_set_value(info.gpios[GEN_OUT2_IDX].gpio, param & 1); + break; + } + default: + { + printk(KERN_ERR "Invalid ioctl %d\n", ioctl); + return -1; + } + } + return 0; +} + +static int argus_ups_fasync(int fd, struct file *filp, int mode) +{ + printk(KERN_ERR "In argus_ups_fasync() fd:%d, filp:%p, mode:%d\n", fd, filp, mode); + return fasync_helper(fd, filp, mode, &info.async_queue); +} + +static struct file_operations argus_ups_fops = { /* Only file operation is to kick watchdog via a write */ + .owner = THIS_MODULE, + .llseek = NULL, + .read = NULL, + .unlocked_ioctl = argus_ups_ioctl, + .write = argus_ups_write, + .open = NULL, + .release = NULL, + .fasync = argus_ups_fasync, +}; + +#ifdef DEBUG_ARGUS +static void remount_sb(struct super_block *sb) +{ + int flags = MS_RDONLY; + int result = sb->s_op->remount_fs(sb, &flags, ""); + if (debug) { + printk("Processing superblock %p\n", sb); + printk("Remount operation returned %d\n", result); + } +} +#endif + +static void argus_ups_function(struct work_struct *ignored) +{ + static int testdata = 0; /* Data for test */ + int i; /* Iterator */ + testdata++; + if (!gpio_get_value(info.gpios[REQ_GPIO_IDX].gpio)) { + queue_delayed_work(argus_ups_workqueue, &argus_ups_work, HZ/100); /* Re-queue in 10mS*/ + return; + } + printk(KERN_ERR "Request received\n"); + if (debug) { + printk("Shutdown request received from UPS\n"); + } + if (!shutdown) { + printk("Shutdown request ignored\n"); + return; + } + + if (debug) { + printk("Sending async kill SIGIO to %p\n", info.async_queue); + } + if (info.async_queue) { /* Try and tell usermode to halt system */ + kill_fasync(&info.async_queue, SIGIO, POLL_IN); + } + gpio_set_value(info.gpios[LED1_GREEN_IDX].gpio, 0); /* Turn off green LED1 */ + for (i = 0; i < 300; i++) { /* Toggle acknowledge at 10 Hz for 15 seconds */ + if (debug >= 2) { + printk("Waiting for first shutdown request:%d\n", i); + } + gpio_set_value(info.gpios[ACK_GPIO_IDX].gpio, i & 1); /* Toggle acknowledge */ + gpio_set_value(info.gpios[LED1_RED_IDX].gpio, i & 1); /* and LED1 red */ + msleep(50); /* Wait in 50ms increments */ + } + + { + char *argv[] = { "/sbin/halt", NULL }; + static char *envp[] = { + "HOME=/", + "TERM=linux", + "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin", NULL }; + + call_usermodehelper( argv[0], argv, envp, UMH_WAIT_PROC ); + } + for (i = 0; i < 300; i++) { /* Toggle acknowledge at 10 Hz for 15 more seconds */ + if (debug >= 2) { + printk("Waiting for second shutdown request:%d\n", i); + } + gpio_set_value(info.gpios[ACK_GPIO_IDX].gpio, i & 1); /* Toggle acknowledge */ + gpio_set_value(info.gpios[LED1_RED_IDX].gpio, i & 1); /* and LED1 red */ + msleep(50); /* Wait in 50ms increments */ + } + printk(KERN_ERR "Usermode failed to halt system\n"); + kernel_halt(); /* Last resort - may give some oopss */ +} + + +static int argus_ups_probe(struct platform_device *pdev) /* Entry point */ +{ + struct pinctrl *pinctrl; + struct device_node *pnode = pdev->dev.of_node; + int i; + int ret; + printk("Init UPS module - debug=%d, shutdown=%d\n", + debug, shutdown); + platform_set_drvdata(pdev, &info); + info.pdev = pdev; + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); + if (IS_ERR(pinctrl)) { + dev_warn(&pdev->dev, + "pins are not configured from the driver\n"); + return -1; + } + ret = of_property_read_u32(pnode, "debug", &debug); + if (ret != 0) { + dev_err(&pdev->dev, "Unable to read debug parameter\n"); + } + else { + printk("Debug parameter read from DT:%d\n", debug); + } + + ret = of_property_read_u32(pnode, "shutdown", &shutdown); + if (ret != 0) { + dev_err(&pdev->dev, "Unable to read shutdown parameter\n"); + } + else { + printk("Shutdown parameter read from DT:%d\n", shutdown); + } + + ret = of_gpio_count(pnode); + + if (ret != N_GPIOS) { + printk(KERN_ERR "Wrong number of gpios"); + return -1; + } + + for (i = 0; i < of_gpio_count(pnode); i++) { + ret = of_get_gpio_flags(pnode, i, NULL); + if (debug) { + printk("GPIO#%d:%d\n", i, ret); + } + if (IS_ERR_VALUE(ret)) { + dev_err(&pdev->dev, "unable to get GPIO %d\n", i); + goto err_no_gpio; + } + info.gpios[i].gpio = ret; + } + + + ret = alloc_chrdev_region(&argus_ups_dev, 0, 2, "argus_ups"); + argus_ups_major = MAJOR(argus_ups_dev); + if (ret) { + printk(KERN_ERR "Error %d adding argus_ups\n", ret); + return -1; + } + if (debug) { + printk("argus_ups major: %d\n", argus_ups_major); + } + argus_ups_cdev = cdev_alloc(); /* Make this a character device */ + argus_ups_cdev->ops = &argus_ups_fops; /* File operations */ + argus_ups_cdev->owner = THIS_MODULE; /* Top level device */ + ret = cdev_add(argus_ups_cdev, argus_ups_dev, 1); /* Add it to the kernel */ + if (ret) { + printk(KERN_ERR "cdev_add returned %d\n", ret); + unregister_chrdev_region(0, 1); + return -1; + } + ret = gpio_request_array(info.gpios, N_GPIOS); + if (ret) { + printk(KERN_ERR "Error %d requesting GPIOs\n", ret); + unregister_chrdev_region(0, 1); + return -1; + } + + argus_ups_class = class_create(THIS_MODULE, "argus_ups"); /* /sys/class entry for udev */ + if (IS_ERR(argus_ups_class)) { + printk(KERN_ERR "Error creating argus_ups_class\n"); + unregister_chrdev_region(0, 1); + return -1; + } + device_create(argus_ups_class, NULL, MKDEV(argus_ups_major, 0), NULL, "argus_ups"); + argus_ups_workqueue = create_singlethread_workqueue("argus_ups"); + INIT_DELAYED_WORK(&argus_ups_work, argus_ups_function); + queue_delayed_work(argus_ups_workqueue, &argus_ups_work, 0); /* Start work immediately */ + + return 0; +err_no_gpio: + return ret; + +} + + +static void argus_ups_cleanup(void) +{ + printk("Module cleanup called\n"); + while (cancel_delayed_work(&argus_ups_work) == 0) { + flush_workqueue(argus_ups_workqueue); /* Make sure all work is completed */ + } + destroy_workqueue(argus_ups_workqueue); + gpio_free_array(info.gpios, N_GPIOS); + device_destroy(argus_ups_class, argus_ups_dev); + class_destroy(argus_ups_class); + unregister_chrdev_region(argus_ups_dev, 1); + cdev_del(argus_ups_cdev); +} + + + +static int argus_ups_remove(struct platform_device *pdev) +{ + printk("In argus_ups_remove()\n"); + argus_ups_cleanup(); + printk("After cleanup\n"); + return 0; +} + +#define ARGUS_UPS_PM_OPS NULL + +struct platform_driver argus_ups_driver = { + .probe = argus_ups_probe, + .remove = argus_ups_remove, + .driver = { + .name = "argus-ups", + .owner = THIS_MODULE, + .pm = ARGUS_UPS_PM_OPS, + .of_match_table = argus_ups_of_ids, + }, +}; + + +static int __init argus_ups_init(void) +{ + return platform_driver_probe(&argus_ups_driver, + argus_ups_probe); +} + +static void __exit argus_ups_exit(void) +{ + platform_driver_unregister(&argus_ups_driver); + printk("After driver unregister\n"); +} + +module_init(argus_ups_init); +module_exit(argus_ups_exit); + +/* + * Get rid of taint message. + */ +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("David Lambert"); /* Who wrote this module? */ +MODULE_DESCRIPTION("Argus UPS control"); /* What does this module do */ +MODULE_ALIAS("platform:argus-ups"); +MODULE_DEVICE_TABLE(of, argus_ups_of_ids); From 5adf71eb7752f4153316150212851beaf87623bb Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:02 -0500 Subject: [PATCH 38/63] auto generated: cape: uarts Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-ttyO1.dts | 53 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-ttyO2.dts | 53 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-ttyO4.dts | 53 ++++++++++++++++++ arch/arm/boot/dts/am335x-bone-ttyO5.dts | 53 ++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack-ttyO1.dts | 57 ++++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack-ttyO2.dts | 57 ++++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack-ttyO4.dts | 57 ++++++++++++++++++++ arch/arm/boot/dts/am335x-boneblack-ttyO5.dts | 57 ++++++++++++++++++++ 8 files changed, 440 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO1.dts create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO2.dts create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO4.dts create mode 100644 arch/arm/boot/dts/am335x-bone-ttyO5.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO1.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO2.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO4.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO5.dts diff --git a/arch/arm/boot/dts/am335x-bone-ttyO1.dts b/arch/arm/boot/dts/am335x-bone-ttyO1.dts new file mode 100644 index 0000000000000..15a8f633730fc --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO1.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-ttyO1.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-ttyO2.dts b/arch/arm/boot/dts/am335x-bone-ttyO2.dts new file mode 100644 index 0000000000000..eabceadb23274 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO2.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-ttyO2.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-ttyO4.dts b/arch/arm/boot/dts/am335x-bone-ttyO4.dts new file mode 100644 index 0000000000000..2413af49829ea --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO4.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-ttyO4.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-ttyO5.dts b/arch/arm/boot/dts/am335x-bone-ttyO5.dts new file mode 100644 index 0000000000000..de84138ea6a88 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-ttyO5.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-ttyO5.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-ttyO1.dts b/arch/arm/boot/dts/am335x-boneblack-ttyO1.dts new file mode 100644 index 0000000000000..3d9680d52de35 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-ttyO1.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" + +#include "am335x-bone-ttyO1.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-ttyO2.dts b/arch/arm/boot/dts/am335x-boneblack-ttyO2.dts new file mode 100644 index 0000000000000..1687085648977 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-ttyO2.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" + +#include "am335x-bone-ttyO2.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-ttyO4.dts b/arch/arm/boot/dts/am335x-boneblack-ttyO4.dts new file mode 100644 index 0000000000000..bafc3d28d6db6 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-ttyO4.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" + +#include "am335x-bone-ttyO4.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-ttyO5.dts b/arch/arm/boot/dts/am335x-boneblack-ttyO5.dts new file mode 100644 index 0000000000000..1279dbdda6005 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-ttyO5.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-ttyO5.dtsi" From cde18ad21bf38e3dd81b29d05d80e2fd0bb6e2e2 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:02 -0500 Subject: [PATCH 39/63] auto generated: cape: audio Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-audio-reva.dts | 53 +++++++++++++++++ arch/arm/boot/dts/am335x-bone-audio-revb.dts | 53 +++++++++++++++++ .../boot/dts/am335x-boneblack-audio-reva.dts | 58 +++++++++++++++++++ .../boot/dts/am335x-boneblack-audio-revb.dts | 58 +++++++++++++++++++ 4 files changed, 222 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-audio-reva.dts create mode 100644 arch/arm/boot/dts/am335x-bone-audio-revb.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-audio-reva.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-audio-revb.dts diff --git a/arch/arm/boot/dts/am335x-bone-audio-reva.dts b/arch/arm/boot/dts/am335x-bone-audio-reva.dts new file mode 100644 index 0000000000000..537ab3bb8ecdd --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-audio-reva.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-audio-reva.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-audio-revb.dts b/arch/arm/boot/dts/am335x-bone-audio-revb.dts new file mode 100644 index 0000000000000..6935cb6be3cb0 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-audio-revb.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-audio-revb.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-audio-reva.dts b/arch/arm/boot/dts/am335x-boneblack-audio-reva.dts new file mode 100644 index 0000000000000..533badd442247 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-audio-reva.dts @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-audio-reva.dtsi" +#include "am335x-boneblack-nxp-hdmi-no-audio.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-audio-revb.dts b/arch/arm/boot/dts/am335x-boneblack-audio-revb.dts new file mode 100644 index 0000000000000..f416501267509 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-audio-revb.dts @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-audio-revb.dtsi" +#include "am335x-boneblack-nxp-hdmi-no-audio.dtsi" From 5970735162fe06c273f5285522a010bd7d4db49c Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:03 -0500 Subject: [PATCH 40/63] auto generated: cape: lcd Signed-off-by: Robert Nelson --- .../arm/boot/dts/am335x-bone-lcd3-01-00a2.dts | 53 +++++++++++++++++ .../arm/boot/dts/am335x-bone-lcd4-01-00a1.dts | 53 +++++++++++++++++ .../arm/boot/dts/am335x-bone-lcd7-01-00a2.dts | 53 +++++++++++++++++ .../arm/boot/dts/am335x-bone-lcd7-01-00a3.dts | 53 +++++++++++++++++ .../dts/am335x-boneblack-lcd3-01-00a2.dts | 57 +++++++++++++++++++ .../dts/am335x-boneblack-lcd4-01-00a1.dts | 57 +++++++++++++++++++ .../dts/am335x-boneblack-lcd7-01-00a2.dts | 57 +++++++++++++++++++ .../dts/am335x-boneblack-lcd7-01-00a3.dts | 57 +++++++++++++++++++ 8 files changed, 440 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dts create mode 100644 arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dts create mode 100644 arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dts create mode 100644 arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-lcd3-01-00a2.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-lcd4-01-00a1.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a2.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a3.dts diff --git a/arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dts b/arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dts new file mode 100644 index 0000000000000..d43cdf2cdfb35 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd3-01-00a2.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-lcd3-01-00a2.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dts b/arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dts new file mode 100644 index 0000000000000..3c8922f158333 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd4-01-00a1.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-lcd4-01-00a1.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dts b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dts new file mode 100644 index 0000000000000..35bab99de9c8b --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-lcd7-01-00a2.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dts b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dts new file mode 100644 index 0000000000000..9e62dd1bf61e8 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-lcd7-01-00a3.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-lcd3-01-00a2.dts b/arch/arm/boot/dts/am335x-boneblack-lcd3-01-00a2.dts new file mode 100644 index 0000000000000..cca52fc21e25f --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-lcd3-01-00a2.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-lcd3-01-00a2.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-lcd4-01-00a1.dts b/arch/arm/boot/dts/am335x-boneblack-lcd4-01-00a1.dts new file mode 100644 index 0000000000000..7d0b03d96c05b --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-lcd4-01-00a1.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-lcd4-01-00a1.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a2.dts b/arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a2.dts new file mode 100644 index 0000000000000..e6816d4f52d52 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a2.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +/* #include "am335x-boneblack-emmc.dtsi" */ +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-lcd7-01-00a2.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a3.dts b/arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a3.dts new file mode 100644 index 0000000000000..030e2767635f4 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-lcd7-01-00a3.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-lcd7-01-00a3.dtsi" From db371465cfea6dabeac4e62504a0da05f147845e Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:04 -0500 Subject: [PATCH 41/63] auto generated: cape: argus Signed-off-by: Robert Nelson --- .../boot/dts/am335x-bone-cape-bone-argus.dts | 53 +++++++++++++++++ .../dts/am335x-boneblack-cape-bone-argus.dts | 57 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts diff --git a/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts b/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts new file mode 100644 index 0000000000000..6faa721714c91 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + /* pinctrl-0 = <&clkout2_pin>; */ +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-argus.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts b/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts new file mode 100644 index 0000000000000..0586cab99c4e4 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + /* pinctrl-0 = <&clkout2_pin>; */ +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" + +#include "am335x-bone-argus.dtsi" From 4736c55f868935e9034fd9fa1eaf14f3d8a24fad Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:04 -0500 Subject: [PATCH 42/63] auto generated: cape: rtc-01-00a1 Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dts | 53 +++++++++++++++++ .../boot/dts/am335x-boneblack-rtc-01-00a1.dts | 57 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-rtc-01-00a1.dts diff --git a/arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dts b/arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dts new file mode 100644 index 0000000000000..31e6dedeca4e6 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-rtc-01-00a1.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-rtc-01-00a1.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-rtc-01-00a1.dts b/arch/arm/boot/dts/am335x-boneblack-rtc-01-00a1.dts new file mode 100644 index 0000000000000..a1367f4a678d1 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-rtc-01-00a1.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" + +#include "am335x-bone-rtc-01-00a1.dtsi" From 2e701c71a2d19457adea7dad3a39f0efaafd1199 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:04 -0500 Subject: [PATCH 43/63] auto generated: cape: crypto-00a0 Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-crypto-00a0.dts | 53 +++++++++++++++++ .../boot/dts/am335x-boneblack-crypto-00a0.dts | 57 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-crypto-00a0.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-crypto-00a0.dts diff --git a/arch/arm/boot/dts/am335x-bone-crypto-00a0.dts b/arch/arm/boot/dts/am335x-bone-crypto-00a0.dts new file mode 100644 index 0000000000000..9ba9a554d5c9d --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-crypto-00a0.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-crypto-00a0.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-crypto-00a0.dts b/arch/arm/boot/dts/am335x-boneblack-crypto-00a0.dts new file mode 100644 index 0000000000000..db75e32284581 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-crypto-00a0.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +#include "am335x-boneblack-nxp-hdmi-audio.dtsi" + +#include "am335x-bone-crypto-00a0.dtsi" From 8b3ebf63eb0c49d08af42a65a818f22fd920241d Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:05 -0500 Subject: [PATCH 44/63] auto generated: cape: 4dcape Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-4dcape-43.dts | 53 +++++++++++++++++ arch/arm/boot/dts/am335x-bone-4dcape-43t.dts | 53 +++++++++++++++++ arch/arm/boot/dts/am335x-bone-4dcape-70.dts | 53 +++++++++++++++++ arch/arm/boot/dts/am335x-bone-4dcape-70t.dts | 53 +++++++++++++++++ .../boot/dts/am335x-boneblack-4dcape-43.dts | 57 +++++++++++++++++++ .../boot/dts/am335x-boneblack-4dcape-43t.dts | 57 +++++++++++++++++++ .../boot/dts/am335x-boneblack-4dcape-70.dts | 57 +++++++++++++++++++ .../boot/dts/am335x-boneblack-4dcape-70t.dts | 57 +++++++++++++++++++ 8 files changed, 440 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-43.dts create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-43t.dts create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-70.dts create mode 100644 arch/arm/boot/dts/am335x-bone-4dcape-70t.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-4dcape-43.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-4dcape-43t.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-4dcape-70.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-4dcape-70t.dts diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-43.dts b/arch/arm/boot/dts/am335x-bone-4dcape-43.dts new file mode 100644 index 0000000000000..a640af6f82e02 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-43.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-4dcape-43.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-43t.dts b/arch/arm/boot/dts/am335x-bone-4dcape-43t.dts new file mode 100644 index 0000000000000..76b520e33a8e6 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-43t.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-4dcape-43t.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-70.dts b/arch/arm/boot/dts/am335x-bone-4dcape-70.dts new file mode 100644 index 0000000000000..952d8126a2714 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-70.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-4dcape-70.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-4dcape-70t.dts b/arch/arm/boot/dts/am335x-bone-4dcape-70t.dts new file mode 100644 index 0000000000000..70c2611c756c8 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-4dcape-70t.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-4dcape-70t.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-4dcape-43.dts b/arch/arm/boot/dts/am335x-boneblack-4dcape-43.dts new file mode 100644 index 0000000000000..b8e473341c112 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-4dcape-43.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-4dcape-43.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-4dcape-43t.dts b/arch/arm/boot/dts/am335x-boneblack-4dcape-43t.dts new file mode 100644 index 0000000000000..ac7793c65b59b --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-4dcape-43t.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-4dcape-43t.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-4dcape-70.dts b/arch/arm/boot/dts/am335x-boneblack-4dcape-70.dts new file mode 100644 index 0000000000000..d615da7933b3b --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-4dcape-70.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-4dcape-70.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-4dcape-70t.dts b/arch/arm/boot/dts/am335x-boneblack-4dcape-70t.dts new file mode 100644 index 0000000000000..89c8fddbc1fbf --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-4dcape-70t.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-4dcape-70t.dtsi" From 5c91294e1aaa7e3bf922727577660a16c3d0f4c6 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:06 -0500 Subject: [PATCH 45/63] auto generated: cape: bbb-exp-c Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-bbb-exp-c.dts | 53 +++++++++++++++++ .../boot/dts/am335x-boneblack-bbb-exp-c.dts | 57 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-bbb-exp-c.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-bbb-exp-c.dts diff --git a/arch/arm/boot/dts/am335x-bone-bbb-exp-c.dts b/arch/arm/boot/dts/am335x-bone-bbb-exp-c.dts new file mode 100644 index 0000000000000..8dbca30b5f0f3 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-bbb-exp-c.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-bbb-exp-c.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-bbb-exp-c.dts b/arch/arm/boot/dts/am335x-boneblack-bbb-exp-c.dts new file mode 100644 index 0000000000000..cda7b15c05c7f --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-bbb-exp-c.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-bbb-exp-c.dtsi" From a47bcc19965073eb2f82cf64c96302dd566948ab Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:08 -0500 Subject: [PATCH 46/63] auto generated: cape: bb-view-43 Signed-off-by: Robert Nelson --- arch/arm/boot/dts/am335x-bone-bb-view-43.dts | 53 +++++++++++++++++ .../boot/dts/am335x-boneblack-bb-view-43.dts | 57 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-bone-bb-view-43.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-bb-view-43.dts diff --git a/arch/arm/boot/dts/am335x-bone-bb-view-43.dts b/arch/arm/boot/dts/am335x-bone-bb-view-43.dts new file mode 100644 index 0000000000000..8ffb8c479ce51 --- /dev/null +++ b/arch/arm/boot/dts/am335x-bone-bb-view-43.dts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone"; + compatible = "ti,am335x-bone", "ti,am33xx"; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&ldo3_reg>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +&sham { + status = "okay"; +}; + +&aes { + status = "okay"; +}; + +#include "am335x-bone-bb-view-43.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-bb-view-43.dts b/arch/arm/boot/dts/am335x-boneblack-bb-view-43.dts new file mode 100644 index 0000000000000..c5031e4072949 --- /dev/null +++ b/arch/arm/boot/dts/am335x-boneblack-bb-view-43.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * 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. + */ +/dts-v1/; + +#include "am33xx.dtsi" +#include "am335x-bone-common.dtsi" +#include "am335x-bone-common-pinmux.dtsi" + +/ { + model = "TI AM335x BeagleBone Black"; + compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; +}; + +&dcdc1_reg { + /* VDD_DDR3 voltage 1.35V */ + regulator-name = "vdd_ddr3"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; +}; + +&ldo3_reg { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; +}; + +&ocp { + /* clkout2 */ + P9_41_pinmux { + status = "disabled"; + }; + /* mmc1 */ + P9_92_pinmux { + status = "disabled"; + }; +}; + +&mmc1 { + vmmc-supply = <&vmmcsd_fixed>; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <&clkout2_pin>; +}; + +#include "am335x-boneblack-emmc.dtsi" +/* #include "am335x-boneblack-nxp-hdmi-audio.dtsi" */ + +#include "am335x-bone-bb-view-43.dtsi" From 364660d6d92be5f5fb510481acd8f5308e23d07e Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 19 Sep 2014 10:39:14 -0500 Subject: [PATCH 47/63] auto generated: capes: add dtbs to makefile Signed-off-by: Robert Nelson --- arch/arm/boot/dts/Makefile | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index d171a54212d73..25944448a7228 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -229,6 +229,44 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ am335x-evmsk.dtb \ am335x-bone.dtb \ am335x-boneblack.dtb \ + am335x-boneblack-ttyO5.dtb \ + am335x-boneblack-ttyO4.dtb \ + am335x-boneblack-ttyO2.dtb \ + am335x-boneblack-ttyO1.dtb \ + am335x-boneblack-rtc-01-00a1.dtb \ + am335x-boneblack-lcd7-01-00a3.dtb \ + am335x-boneblack-lcd7-01-00a2.dtb \ + am335x-boneblack-lcd4-01-00a1.dtb \ + am335x-boneblack-lcd3-01-00a2.dtb \ + am335x-boneblack-bbb-exp-c.dtb \ + am335x-boneblack-4dcape-70t.dtb \ + am335x-boneblack-4dcape-70.dtb \ + am335x-boneblack-4dcape-43t.dtb \ + am335x-boneblack-4dcape-43.dtb \ + am335x-boneblack-crypto-00a0.dtb \ + am335x-boneblack-cape-bone-argus.dtb \ + am335x-boneblack-bb-view-43.dtb \ + am335x-boneblack-audio-revb.dtb \ + am335x-boneblack-audio-reva.dtb \ + am335x-bone-ttyO5.dtb \ + am335x-bone-ttyO4.dtb \ + am335x-bone-ttyO2.dtb \ + am335x-bone-ttyO1.dtb \ + am335x-bone-rtc-01-00a1.dtb \ + am335x-bone-lcd7-01-00a3.dtb \ + am335x-bone-lcd7-01-00a2.dtb \ + am335x-bone-lcd4-01-00a1.dtb \ + am335x-bone-lcd3-01-00a2.dtb \ + am335x-bone-bbb-exp-c.dtb \ + am335x-bone-4dcape-70t.dtb \ + am335x-bone-4dcape-70.dtb \ + am335x-bone-4dcape-43t.dtb \ + am335x-bone-4dcape-43.dtb \ + am335x-bone-crypto-00a0.dtb \ + am335x-bone-cape-bone-argus.dtb \ + am335x-bone-bb-view-43.dtb \ + am335x-bone-audio-revb.dtb \ + am335x-bone-audio-reva.dtb \ am335x-nano.dtb \ am335x-base0033.dtb \ am3517-craneboard.dtb \ From 77d04f7b2ab4d8cfbb5f7c8bd751fa152b182b6e Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 25 Aug 2014 08:23:42 +0200 Subject: [PATCH 48/63] DT doc: net: cpsw mac-address is optional mac-address is an optional property. If no mac-address is set, a random mac-address will be generated. Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang --- Documentation/devicetree/bindings/net/cpsw.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt index 05d660e4ac640..0b95cb23e253e 100644 --- a/Documentation/devicetree/bindings/net/cpsw.txt +++ b/Documentation/devicetree/bindings/net/cpsw.txt @@ -30,10 +30,10 @@ Required properties: - phy_id : Specifies slave phy id - phy-mode : The interface between the SoC and the PHY (a string that of_get_phy_mode() can understand) -- mac-address : Specifies slave MAC address Optional properties: - dual_emac_res_vlan : Specifies VID to be used to segregate the ports +- mac-address : See ethernet.txt file in the same directory Note: "ti,hwmods" field is used to fetch the base address and irq resources from TI, omap hwmod data base during device registration. From f0d9cb059d75a3d473344881e9f31ff31fcd866f Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 25 Aug 2014 08:23:43 +0200 Subject: [PATCH 49/63] net: cpsw: Add missing return value ret is set 0 at this point, so jumping to that error label would result in a return value of 0. Set ret to -ENOMEM to return a proper error value. Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang --- drivers/net/ethernet/ti/cpsw.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 9be41d7190259..a66320f24155c 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -2416,6 +2416,7 @@ static int cpsw_probe(struct platform_device *pdev) priv->irq_tx_enabled = true; if (!priv->cpts) { dev_err(&pdev->dev, "error allocating cpts\n"); + ret = -ENOMEM; goto clean_ndev_ret; } From ee1cd443d9a2b8b8ea09f6fb9b3b7912ae2cc1bf Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 25 Aug 2014 08:23:44 +0200 Subject: [PATCH 50/63] net: cpsw: header, Add missing include "MII_BUS_ID_SIZE" is defined in linux/phy.h which is not included in the cpsw.h file. Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang --- drivers/net/ethernet/ti/cpsw.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/ti/cpsw.h b/drivers/net/ethernet/ti/cpsw.h index 574f49da693f1..1b710674630c7 100644 --- a/drivers/net/ethernet/ti/cpsw.h +++ b/drivers/net/ethernet/ti/cpsw.h @@ -15,6 +15,7 @@ #define __CPSW_H__ #include +#include struct cpsw_slave_data { char phy_id[MII_BUS_ID_SIZE]; From 3e473fd51bc875a44bd2c058e8852510cb551151 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Mon, 25 Aug 2014 08:23:45 +0200 Subject: [PATCH 51/63] net: cpsw: Replace pr_err by dev_err Use dev_err instead of pr_err. Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang --- drivers/net/ethernet/ti/cpsw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index a66320f24155c..4583b335dfc6f 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -2271,7 +2271,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data, of_node_put(mdio_node); if (!mdio) { - pr_err("Missing mdio platform device\n"); + dev_err(&pdev->dev, "Missing mdio platform device\n"); return -EINVAL; } snprintf(slave_data->phy_id, sizeof(slave_data->phy_id), From 8abd2b433de349914ce5608eab9a8feb45dab9a4 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Sun, 7 Sep 2014 19:19:33 +0200 Subject: [PATCH 52/63] net: cpsw: Add am33xx MACID readout This patch adds a function to get the MACIDs from the am33xx SoC control module registers which hold unique vendor MACIDs. This is only used if of_get_mac_address() fails to get a valid mac address. Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang Tested-by: Steven Rostedt --- .../devicetree/bindings/net/cpsw.txt | 4 ++ drivers/net/ethernet/ti/Kconfig | 2 + drivers/net/ethernet/ti/cpsw.c | 42 ++++++++++++++++++- 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt index 0b95cb23e253e..fa39abbebca5e 100644 --- a/Documentation/devicetree/bindings/net/cpsw.txt +++ b/Documentation/devicetree/bindings/net/cpsw.txt @@ -24,6 +24,8 @@ Optional properties: - ti,hwmods : Must be "cpgmac0" - no_bd_ram : Must be 0 or 1 - dual_emac : Specifies Switch to act as Dual EMAC +- syscon : Phandle to the system control device node, which is + the control module device of the am33x Slave Properties: Required properties: @@ -58,6 +60,7 @@ Examples: active_slave = <0>; cpts_clock_mult = <0x80000000>; cpts_clock_shift = <29>; + syscon = <&cm>; cpsw_emac0: slave@0 { phy_id = <&davinci_mdio>, <0>; phy-mode = "rgmii-txid"; @@ -86,6 +89,7 @@ Examples: active_slave = <0>; cpts_clock_mult = <0x80000000>; cpts_clock_shift = <29>; + syscon = <&cm>; cpsw_emac0: slave@0 { phy_id = <&davinci_mdio>, <0>; phy-mode = "rgmii-txid"; diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig index 53150c25a96bd..afaf0196ffd29 100644 --- a/drivers/net/ethernet/ti/Kconfig +++ b/drivers/net/ethernet/ti/Kconfig @@ -62,6 +62,8 @@ config TI_CPSW select TI_DAVINCI_CPDMA select TI_DAVINCI_MDIO select TI_CPSW_PHY_SEL + select MFD_SYSCON + select REGMAP ---help--- This driver supports TI's CPSW Ethernet Switch. diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 4583b335dfc6f..57a3aaa56516f 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -33,6 +33,8 @@ #include #include #include +#include +#include #include #include @@ -2165,6 +2167,36 @@ static void cpsw_slave_init(struct cpsw_slave *slave, struct cpsw_priv *priv, slave->port_vlan = data->dual_emac_res_vlan; } +#define AM33XX_CTRL_MAC_LO_REG(id) (0x630 + 0x8 * id) +#define AM33XX_CTRL_MAC_HI_REG(id) (0x630 + 0x8 * id + 0x4) + +static int cpsw_am33xx_cm_get_macid(struct device *dev, int slave, + u8 *mac_addr) +{ + u32 macid_lo; + u32 macid_hi; + struct regmap *syscon; + + syscon = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); + if (IS_ERR(syscon)) { + if (PTR_ERR(syscon) == -ENODEV) + return 0; + return PTR_ERR(syscon); + } + + regmap_read(syscon, AM33XX_CTRL_MAC_LO_REG(slave), &macid_lo); + regmap_read(syscon, AM33XX_CTRL_MAC_HI_REG(slave), &macid_hi); + + mac_addr[5] = (macid_lo >> 8) & 0xff; + mac_addr[4] = macid_lo & 0xff; + mac_addr[3] = (macid_hi >> 24) & 0xff; + mac_addr[2] = (macid_hi >> 16) & 0xff; + mac_addr[1] = (macid_hi >> 8) & 0xff; + mac_addr[0] = macid_hi & 0xff; + + return 0; +} + static int cpsw_probe_dt(struct cpsw_platform_data *data, struct platform_device *pdev) { @@ -2278,8 +2310,16 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data, PHY_ID_FMT, mdio->name, phyid); mac_addr = of_get_mac_address(slave_node); - if (mac_addr) + if (mac_addr) { memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN); + } else { + if (of_machine_is_compatible("ti,am33xx")) { + ret = cpsw_am33xx_cm_get_macid(&pdev->dev, i, + slave_data->mac_addr); + if (ret) + return ret; + } + } slave_data->phy_if = of_get_phy_mode(slave_node); if (slave_data->phy_if < 0) { From a4eac06ed4e6e521ec3814bd03c208b23b90d5af Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Sun, 7 Sep 2014 19:19:34 +0200 Subject: [PATCH 53/63] am33xx: define syscon control module device node Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang Acked-by: Tony Lindgren --- arch/arm/boot/dts/am33xx.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 2a7a09dba3161..427113e31ab34 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -120,6 +120,11 @@ }; }; + cm: syscon@44e10000 { + compatible = "ti,am33xx-controlmodule", "syscon"; + reg = <0x44e10000 0x800>; + }; + intc: interrupt-controller@48200000 { compatible = "ti,omap2-intc"; interrupt-controller; From cbdae5ee3bcb74767b3dfb68ac2957e334cf6d06 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Sun, 7 Sep 2014 19:19:35 +0200 Subject: [PATCH 54/63] arm: dts: am33xx, Add syscon phandle to cpsw node There are 2 MACIDs stored in the control module of the am33xx. These are read by the cpsw driver if no valid MACID was found in the devicetree. Signed-off-by: Markus Pargmann Reviewed-by: Wolfram Sang Acked-by: Tony Lindgren --- arch/arm/boot/dts/am33xx.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 427113e31ab34..6f67b0070f8c9 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -696,6 +696,7 @@ */ interrupts = <40 41 42 43>; ranges; + syscon = <&cm>; davinci_mdio: mdio@4a101000 { compatible = "ti,davinci_mdio"; From dcce31eb7594a9c0d0ce7d4b1f6aebd6003692e2 Mon Sep 17 00:00:00 2001 From: Jay at Control Module Industries Date: Tue, 1 Jul 2014 14:49:52 -0500 Subject: [PATCH 55/63] cpsw: search for phy I have encountered the same issue(s) on A6A boards. I couldn't find a patch, so I wrote this patch to update the device tree in the davinci_mdio driver in the 3.15.1 tree, it seems to correct it. I would welcome any input on a different approach. https://groups.google.com/d/msg/beagleboard/9mctrG26Mc8/SRlnumt0LoMJ Signed-off-by: Robert Nelson --- drivers/net/ethernet/ti/davinci_mdio.c | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index e58f0a706b3b4..487a1e226106a 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -39,6 +39,7 @@ #include #include #include +#include /* * This timeout definition is a worst-case ultra defensive measure against @@ -97,6 +98,10 @@ struct davinci_mdio_data { unsigned long access_time; /* jiffies */ }; +#if IS_ENABLED(CONFIG_OF) +static void davinci_mdio_update_dt_from_phymask(u32 phy_mask); +#endif + static void __davinci_mdio_reset(struct davinci_mdio_data *data) { u32 mdio_in, div, mdio_out_khz, access_time; @@ -150,6 +155,11 @@ static int davinci_mdio_reset(struct mii_bus *bus) /* restrict mdio bus to live phys only */ dev_info(data->dev, "detected phy mask %x\n", ~phy_mask); phy_mask = ~phy_mask; + + #if IS_ENABLED(CONFIG_OF) + davinci_mdio_update_dt_from_phymask(phy_mask); + #endif + } else { /* desperately scan all phys */ dev_warn(data->dev, "no live phy, scanning all\n"); @@ -312,6 +322,79 @@ static int davinci_mdio_probe_dt(struct mdio_platform_data *data, } #endif +#if IS_ENABLED(CONFIG_OF) +static void davinci_mdio_update_dt_from_phymask(u32 phy_mask) +{ + int i, len; + u32 addr; + __be32 *old_phy_p, *phy_id_p; + struct property *phy_id_property = NULL; + struct device_node *node_p, *slave_p; + + addr = 0; + + for (i = 0; i < PHY_MAX_ADDR; i++) { + if ((phy_mask & (1 << i)) == 0) { + addr = (u32) i; + break; + } + } + + for_each_compatible_node(node_p, NULL, "ti,cpsw") { + for_each_node_by_name(slave_p, "slave") { + + old_phy_p = (__be32 *) of_get_property(slave_p, "phy_id", &len); + + if (len != (sizeof(__be32 *) * 2)) + goto err_out; + + if (old_phy_p) { + + phy_id_property = kzalloc(sizeof(*phy_id_property), GFP_KERNEL); + + if (! phy_id_property) + goto err_out; + + phy_id_property->length = len; + phy_id_property->name = kstrdup("phy_id", GFP_KERNEL); + phy_id_property->value = kzalloc(len, GFP_KERNEL); + + if (! phy_id_property->name) + goto err_out; + + if (! phy_id_property->value) + goto err_out; + + memcpy(phy_id_property->value, old_phy_p, len); + + phy_id_p = (__be32 *) phy_id_property->value + 1; + + *phy_id_p = cpu_to_be32(addr); + + of_update_property(slave_p, phy_id_property); + + ++addr; + } + } + } + + return; + +err_out: + + if (phy_id_property) { + if (phy_id_property->name) + kfree(phy_id_property->name); + + if (phy_id_property->value) + kfree(phy_id_property->value); + + if (phy_id_property) + kfree(phy_id_property); + } +} +#endif + static int davinci_mdio_probe(struct platform_device *pdev) { struct mdio_platform_data *pdata = dev_get_platdata(&pdev->dev); From 0136bf6ed015cb9562bef22e28c260dab6722dd9 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Thu, 18 Sep 2014 14:58:29 -0500 Subject: [PATCH 56/63] sgx: hack just a copy of sgx-omap.h Signed-off-by: Robert Nelson --- include/linux/platform_data/gfx-sgx.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 include/linux/platform_data/gfx-sgx.h diff --git a/include/linux/platform_data/gfx-sgx.h b/include/linux/platform_data/gfx-sgx.h new file mode 100644 index 0000000000000..aa59b2c9e5ff4 --- /dev/null +++ b/include/linux/platform_data/gfx-sgx.h @@ -0,0 +1,22 @@ +/* + * SGX Graphics Driver Platform Data + * + * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ + * Darren Etheridge + * + * 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 "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#include + +struct gfx_sgx_platform_data { + const char *reset_name; + + int (*deassert_reset)(struct platform_device *pdev, const char *name); +}; From 21e052a17ca9bca7326f2c615db80e41dad67670 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Fri, 4 Jan 2013 00:32:33 +0200 Subject: [PATCH 57/63] arm: Export cache flush management symbols when !MULTI_CACHE When compiling a kernel without CONFIG_MULTI_CACHE enabled the dma access functions end up not being exported. Fix it. Signed-off-by: Pantelis Antoniou --- arch/arm/kernel/setup.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 1e8b030dbefd8..c6a9a6197ce21 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -1080,3 +1080,12 @@ const struct seq_operations cpuinfo_op = { .stop = c_stop, .show = c_show }; + +/* export the cache management functions */ +#ifndef MULTI_CACHE + +EXPORT_SYMBOL(__glue(_CACHE,_dma_map_area)); +EXPORT_SYMBOL(__glue(_CACHE,_dma_unmap_area)); +EXPORT_SYMBOL(__glue(_CACHE,_dma_flush_range)); + +#endif From 17759ad179e8e5047cf196577a01e9d187425673 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 9 Jul 2014 15:19:34 -0500 Subject: [PATCH 58/63] packaging: sync with mainline Signed-off-by: Robert Nelson --- scripts/package/builddeb | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 152d4d25ab7c2..35d5a5877d040 100644 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -35,13 +35,15 @@ create_package() { sparc*) debarch=sparc ;; s390*) - debarch=s390 ;; + debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;; ppc*) debarch=powerpc ;; parisc*) debarch=hppa ;; mips*) debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;; + arm64) + debarch=arm64 ;; arm*) debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;; *) @@ -130,7 +132,7 @@ if [ "$ARCH" = "um" ] ; then cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" gzip "$tmpdir/usr/share/doc/$packagename/config" -else +else cp System.map "$tmpdir/boot/System.map-$version" cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" fi @@ -287,14 +289,16 @@ EOF fi -# Build header package -(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles") -(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles") -(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles") +# Build kernel header package +(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles" +(cd $srctree; find arch/$SRCARCH/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles" +(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" +(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" +(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" destdir=$kernel_headers_dir/usr/src/linux-headers-$version mkdir -p "$destdir" -(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -) -(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -) +(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) +(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -) (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" From 7134cb2e34c01028b88430cef1f474938c0fd5b6 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 2 Jul 2014 10:28:32 -0500 Subject: [PATCH 59/63] deb-pkg: install dtbs in linux-image package Signed-off-by: Robert Nelson --- scripts/package/builddeb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 35d5a5877d040..49b11f1134e54 100644 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -167,6 +167,16 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then fi fi +if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then + mkdir -p "$tmpdir/boot/dtbs/$version" + INSTALL_DTBS_PATH="$tmpdir/boot/dtbs/$version" $MAKE KBUILD_SRC= dtbs_install + + #make dtbs_install seems to add an .old directory + if [ -d "$tmpdir/boot/dtbs/$version.old" ] ; then + rm -rf "$tmpdir/boot/dtbs/$version.old" + fi +fi + if [ "$ARCH" != "um" ]; then $MAKE headers_check KBUILD_SRC= $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" From 5bea78c9c633c5039222f19b83883da9532ef602 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 2 Jul 2014 15:31:55 -0500 Subject: [PATCH 60/63] deb-pkg: no dtbs_install Signed-off-by: Robert Nelson --- scripts/package/builddeb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 49b11f1134e54..f271a42723524 100644 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -169,7 +169,8 @@ fi if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then mkdir -p "$tmpdir/boot/dtbs/$version" - INSTALL_DTBS_PATH="$tmpdir/boot/dtbs/$version" $MAKE KBUILD_SRC= dtbs_install + $MAKE KBUILD_SRC= dtbs + find arch/arm/boot/ -iname "*.dtb" -exec cp -v '{}' "$tmpdir/boot/dtbs/$version" \; #make dtbs_install seems to add an .old directory if [ -d "$tmpdir/boot/dtbs/$version.old" ] ; then From 1fa4a2f74a6d859fd859351a575aa3d13b7809f0 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 24 Sep 2014 14:18:02 -0500 Subject: [PATCH 61/63] 3.14.19-ti-r26 patchset From 169fcd3d2a06364ef43c2c5938cd90fee6a4df65 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 24 Sep 2014 14:20:46 -0500 Subject: [PATCH 62/63] 3.14.19-ti-r26 bb.org_defconfig Signed-off-by: Robert Nelson --- arch/arm/configs/bb.org_defconfig | 4596 +++++++++++++++++++++++++++++ 1 file changed, 4596 insertions(+) create mode 100644 arch/arm/configs/bb.org_defconfig diff --git a/arch/arm/configs/bb.org_defconfig b/arch/arm/configs/bb.org_defconfig new file mode 100644 index 0000000000000..decc89e5a400e --- /dev/null +++ b/arch/arm/configs/bb.org_defconfig @@ -0,0 +1,4596 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.14.19 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +CONFIG_KERNEL_LZO=y +# CONFIG_KERNEL_LZ4 is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_FHANDLE=y +# CONFIG_AUDIT is not set + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_TASKSTATS is not set + +# +# RCU Subsystem +# +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_PREEMPT_RCU=y +CONFIG_RCU_STALL_COMMON=y +# CONFIG_RCU_USER_QS is not set +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_BOOST is not set +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_CGROUP_FREEZER is not set +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CPUSETS is not set +# CONFIG_CGROUP_CPUACCT is not set +# CONFIG_RESOURCE_COUNTERS is not set +# CONFIG_CGROUP_PERF is not set +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +# CONFIG_RT_GROUP_SCHED is not set +# CONFIG_BLK_CGROUP is not set +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_NAMESPACES is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_EXPERT=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_COMPAT_BRK=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_OPROFILE=y +CONFIG_HAVE_OPROFILE=y +CONFIG_KPROBES=y +# CONFIG_JUMP_LABEL is not set +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_KRETPROBES=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CC_STACKPROTECTOR=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_CC_STACKPROTECTOR_NONE is not set +CONFIG_CC_STACKPROTECTOR_REGULAR=y +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_CMDLINE_PARSER is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM_NODT is not set +# CONFIG_ARCH_SHMOBILE_LEGACY is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP1 is not set + +# +# Multiple platform selection +# + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_BCM is not set +# CONFIG_ARCH_BERLIN is not set +CONFIG_GPIO_PCA953X=y +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_HI3xxx is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_MSM_DT is not set +# CONFIG_ARCH_MXC is not set + +# +# TI OMAP Common Features +# + +# +# OMAP Feature Selections +# +CONFIG_POWER_AVS_OMAP=y +CONFIG_POWER_AVS_OMAP_CLASS3=y +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_MUX=y +CONFIG_OMAP_MUX_DEBUG=y +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_32K_TIMER=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_MACH_OMAP_GENERIC=y +CONFIG_ARCH_OMAP=y +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +CONFIG_SOC_OMAP5=y +CONFIG_SOC_AM33XX=y +CONFIG_SOC_AM43XX=y +CONFIG_SOC_DRA7XX=y +CONFIG_ARCH_OMAP2PLUS=y + +# +# TI OMAP2/3/4 Specific Features +# +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +CONFIG_SOC_HAS_OMAP2_SDRC=y +CONFIG_SOC_HAS_REALTIME_COUNTER=y +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_TI81XX=y + +# +# OMAP Legacy Platform Data Board Type +# +# CONFIG_MACH_OMAP3_BEAGLE is not set +# CONFIG_MACH_DEVKIT8000 is not set +# CONFIG_MACH_OMAP_LDP is not set +# CONFIG_MACH_OMAP3530_LV_SOM is not set +# CONFIG_MACH_OMAP3_TORPEDO is not set +# CONFIG_MACH_OVERO is not set +# CONFIG_MACH_OMAP3517EVM is not set +# CONFIG_MACH_CRANEBOARD is not set +# CONFIG_MACH_OMAP3_PANDORA is not set +# CONFIG_MACH_TOUCHBOOK is not set +# CONFIG_MACH_OMAP_3430SDP is not set +# CONFIG_MACH_NOKIA_RX51 is not set +# CONFIG_MACH_CM_T35 is not set +# CONFIG_MACH_CM_T3517 is not set +# CONFIG_MACH_SBC3530 is not set +# CONFIG_MACH_TI8168EVM is not set +# CONFIG_MACH_TI8148EVM is not set +# CONFIG_OMAP3_EMU is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_SHMOBILE_MULTI is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_WM8850 is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARM_THUMB=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_NR_BANKS=8 +CONFIG_MULTI_IRQ_HANDLER=y +# CONFIG_ARM_ERRATA_430973 is not set +CONFIG_PL310_ERRATA_588369=y +# CONFIG_ARM_ERRATA_643719 is not set +CONFIG_ARM_ERRATA_720789=y +CONFIG_PL310_ERRATA_727915=y +# CONFIG_PL310_ERRATA_753970 is not set +CONFIG_ARM_ERRATA_754322=y +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_764369 is not set +# CONFIG_PL310_ERRATA_769419 is not set +CONFIG_ARM_ERRATA_775420=y +CONFIG_ARM_ERRATA_798181=y +# CONFIG_ARM_ERRATA_773022 is not set +CONFIG_TI_PRIV_EDMA=y + +# +# Bus support +# +# CONFIG_PCI is not set +# CONFIG_PCI_SYSCALL is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +# CONFIG_SCHED_MC is not set +# CONFIG_SCHED_SMT is not set +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_TWD=y +# CONFIG_MCPM is not set +# CONFIG_BIG_LITTLE is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=2 +CONFIG_HOTPLUG_CPU=y +# CONFIG_ARM_PSCI is not set +CONFIG_ARCH_NR_GPIO=512 +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_HZ_FIXED=0 +CONFIG_HZ_100=y +# CONFIG_HZ_200 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_500 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +# CONFIG_HIGHPTE is not set +CONFIG_HW_PERF_EVENTS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_NO_BOOTMEM=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_ZBUD is not set +CONFIG_ZSMALLOC=y +# CONFIG_PGTABLE_MAPPING is not set +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_SECCOMP=y +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_XEN is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set +CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y +# CONFIG_CRASH_DUMP is not set +CONFIG_AUTO_ZRELADDR=y + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_GENERIC_CPUFREQ_CPU0=y + +# +# ARM CPU frequency scaling drivers +# +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# ARM CPU Idle Drivers +# +CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=100 +CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_ADVANCED_DEBUG is not set +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_SLEEP_DEBUG=y +# CONFIG_APM_EMULATION is not set +CONFIG_ARCH_HAS_OPP=y +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m +CONFIG_XFRM_USER=m +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=y +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_VTI=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NF_NAT=y +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=m +CONFIG_NFT_EXTHDR=m +CONFIG_NFT_META=m +CONFIG_NFT_CT=m +CONFIG_NFT_RBTREE=m +CONFIG_NFT_HASH=m +CONFIG_NFT_COUNTER=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_NAT=m +CONFIG_NFT_QUEUE=m +CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m +CONFIG_NFT_COMPAT=m +CONFIG_NETFILTER_XTABLES=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_L2TP=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PE_SIP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_NF_TABLES_IPV4=m +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NF_TABLES_ARP=m +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=m +# CONFIG_IP_NF_MATCH_ECN is not set +CONFIG_IP_NF_MATCH_RPFILTER=m +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SYNPROXY=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT_IPV4=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +# CONFIG_IP_NF_TARGET_NETMAP is not set +# CONFIG_IP_NF_TARGET_REDIRECT is not set +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +# CONFIG_IP_NF_TARGET_TTL is not set +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_TABLES_IPV6=m +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_REJECT_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +# CONFIG_IP6_NF_MATCH_HL is not set +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +# CONFIG_IP6_NF_TARGET_HL is not set +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_TARGET_SYNPROXY=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_NF_NAT_IPV6=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +CONFIG_NF_TABLES_BRIDGE=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m + +# +# DCCP CCIDs Configuration +# +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=y +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=y + +# +# DCCP Kernel Hacking +# +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_NET_DCCPPROBE=m +CONFIG_IP_SCTP=m +CONFIG_NET_SCTPPROBE=m +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +CONFIG_RDS=m +CONFIG_RDS_TCP=m +# CONFIG_RDS_DEBUG is not set +CONFIG_TIPC=m +CONFIG_TIPC_PORTS=8191 +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_MRP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +# CONFIG_DECNET is not set +CONFIG_LLC=m +CONFIG_LLC2=m +# CONFIG_IPX is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +CONFIG_PHONET=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_6LOWPAN_IPHC=m +# CONFIG_MAC802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_HHF=m +CONFIG_NET_SCH_PIE=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_CANID=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +CONFIG_DCB=y +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_OPENVSWITCH_GRE=y +# CONFIG_VSOCKETS is not set +CONFIG_NETLINK_MMAP=y +CONFIG_NETLINK_DIAG=m +CONFIG_NET_MPLS_GSO=y +# CONFIG_HSR is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +CONFIG_CGROUP_NET_PRIO=m +CONFIG_CGROUP_NET_CLASSID=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_BPF_JIT=y +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_TCPPROBE is not set +# CONFIG_NET_DROP_MONITOR is not set +# CONFIG_HAMRADIO is not set +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m +CONFIG_CAN_GW=m + +# +# CAN Device Drivers +# +# CONFIG_CAN_VCAN is not set +# CONFIG_CAN_SLCAN is not set +CONFIG_CAN_DEV=m +CONFIG_CAN_CALC_BITTIMING=y +# CONFIG_CAN_LEDS is not set +# CONFIG_CAN_AT91 is not set +# CONFIG_CAN_TI_HECC is not set +# CONFIG_CAN_MCP251X is not set +# CONFIG_CAN_FLEXCAN is not set +# CONFIG_CAN_GRCAN is not set +# CONFIG_CAN_SJA1000 is not set +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PLATFORM=m +# CONFIG_CAN_CC770 is not set + +# +# CAN USB interfaces +# +# CONFIG_CAN_EMS_USB is not set +# CONFIG_CAN_ESD_USB2 is not set +# CONFIG_CAN_KVASER_USB is not set +# CONFIG_CAN_PEAK_USB is not set +# CONFIG_CAN_8DEV_USB is not set +# CONFIG_CAN_SOFTING is not set +# CONFIG_CAN_DEBUG_DEVICES is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +# CONFIG_BT_RFCOMM is not set +# CONFIG_BT_BNEP is not set +# CONFIG_BT_HIDP is not set + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIBTUSB is not set +# CONFIG_BT_HCIBTSDIO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIUART_ATH3K is not set +CONFIG_BT_HCIUART_LL=y +# CONFIG_BT_HCIUART_3WIRE is not set +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set +CONFIG_BT_WILINK=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +# CONFIG_RXKAD is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_WEXT is not set +CONFIG_LIB80211=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_PID=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_PID=y +# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set +CONFIG_MAC80211_RC_DEFAULT="pid" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y +CONFIG_RFKILL_LEDS=y +# CONFIG_RFKILL_INPUT is not set +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="am335x-pm-firmware.elf am335x-bone-scale-data.bin am335x-evm-scale-data.bin am43x-evm-scale-data.bin" +CONFIG_EXTRA_FIRMWARE_DIR="firmware" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=m +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=24 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +# +# Bus devices +# +CONFIG_OMAP_OCP2SCP=y +CONFIG_OMAP_INTERCONNECT=y +# CONFIG_ARM_CCI is not set +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_MTD=y +CONFIG_MTD_TESTS=m +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +CONFIG_MTD_OOPS=y +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_PHYSMAP_OF is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_DATAFLASH is not set +CONFIG_MTD_M25P80=m +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_BCH=y +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_PLATFORM is not set +CONFIG_MTD_ONENAND=y +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_GENERIC is not set +CONFIG_MTD_ONENAND_OMAP2=y +# CONFIG_MTD_ONENAND_OTP is not set +# CONFIG_MTD_ONENAND_2X_PROGRAM is not set + +# +# LPDDR flash memory drivers +# +# CONFIG_MTD_LPDDR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +CONFIG_ZRAM=m +# CONFIG_ZRAM_DEBUG is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_VIRTIO_BLK is not set +# CONFIG_BLK_DEV_RBD is not set + +# +# Misc devices +# +CONFIG_SENSORS_LIS3LV02D=m +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ATMEL_SSC is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +CONFIG_SENSORS_TSL2550=m +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m +# CONFIG_BMP085_SPI is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=y +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_EEPROM_93XX46 is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=y +CONFIG_ST_HCI=y +# CONFIG_SENSORS_LIS3_SPI is not set +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# + +# +# Argus cape driver for beaglebone black +# +CONFIG_CAPE_BONE_ARGUS=y +CONFIG_BEAGLEBONE_PINMUX_HELPER=y + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_LIBFC is not set +# CONFIG_LIBFCOE is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_VIRTIO is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI_PLATFORM=y +# CONFIG_AHCI_IMX is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_SATA_HIGHBANK is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_RCAR is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ARASAN_CF is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_PLATFORM is not set + +# +# Generic fallback / legacy drivers +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID10 is not set +# CONFIG_MD_RAID456 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_THIN_PROVISIONING is not set +# CONFIG_DM_CACHE is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_RAID is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +# CONFIG_DM_FLAKEY is not set +# CONFIG_DM_VERITY is not set +# CONFIG_DM_SWITCH is not set +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_EQUALIZER is not set +# CONFIG_IFB is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +# CONFIG_VIRTIO_NET is not set +# CONFIG_NLMON is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +# CONFIG_ATM_TCP is not set + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +# CONFIG_NET_DSA_MV88E6XXX is not set +# CONFIG_NET_DSA_MV88E6060 is not set +# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set +# CONFIG_NET_DSA_MV88E6131 is not set +# CONFIG_NET_DSA_MV88E6123_61_65 is not set +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_ARC=y +# CONFIG_ARC_EMAC is not set +CONFIG_NET_CADENCE=y +# CONFIG_ARM_AT91_ETHER is not set +# CONFIG_MACB is not set +CONFIG_NET_VENDOR_BROADCOM=y +# CONFIG_B44 is not set +# CONFIG_NET_CALXEDA_XGMAC is not set +CONFIG_NET_VENDOR_CIRRUS=y +# CONFIG_CS89x0 is not set +# CONFIG_DM9000 is not set +# CONFIG_DNET is not set +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +# CONFIG_MVMDIO is not set +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +CONFIG_KS8851=y +CONFIG_KS8851_MLL=y +CONFIG_NET_VENDOR_MICROCHIP=y +# CONFIG_ENC28J60 is not set +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +# CONFIG_AX88796 is not set +# CONFIG_ETHOC is not set +# CONFIG_SH_ETH is not set +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=y +# CONFIG_SMC911X is not set +CONFIG_SMSC911X=y +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +# CONFIG_STMMAC_ETH is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_DAVINCI_EMAC is not set +CONFIG_TI_DAVINCI_MDIO=y +CONFIG_TI_DAVINCI_CPDMA=y +CONFIG_TI_CPSW_PHY_SEL=y +CONFIG_TI_CPSW=y +CONFIG_TI_CPTS=y +CONFIG_NET_VENDOR_VIA=y +# CONFIG_VIA_VELOCITY is not set +CONFIG_NET_VENDOR_WIZNET=y +# CONFIG_WIZNET_W5100 is not set +# CONFIG_WIZNET_W5300 is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_AT803X_PHY=y +# CONFIG_AMD_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +CONFIG_SMSC_PHY=y +# CONFIG_BROADCOM_PHY is not set +# CONFIG_BCM87XX_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_FIXED_PHY is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_MICREL_KS8995MA is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +CONFIG_USB_USBNET=y +CONFIG_USB_NET_AX8817X=y +CONFIG_USB_NET_AX88179_178A=y +CONFIG_USB_NET_CDCETHER=y +# CONFIG_USB_NET_CDC_EEM is not set +CONFIG_USB_NET_CDC_NCM=y +# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set +# CONFIG_USB_NET_CDC_MBIM is not set +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_SR9700 is not set +# CONFIG_USB_NET_SR9800 is not set +# CONFIG_USB_NET_SMSC75XX is not set +CONFIG_USB_NET_SMSC95XX=y +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=y +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +CONFIG_USB_NET_CDC_SUBSET=y +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=y +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_CDC_PHONET is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_VL600 is not set +CONFIG_WLAN=y +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AT76C50X_USB=m +CONFIG_USB_ZD1201=m +# CONFIG_USB_NET_RNDIS_WLAN is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +# CONFIG_MAC80211_HWSIM is not set +CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +# CONFIG_ATH9K is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +# CONFIG_ATH6KL is not set +CONFIG_AR5523=m +CONFIG_ATH10K=m +# CONFIG_ATH10K_DEBUG is not set +# CONFIG_ATH10K_DEBUGFS is not set +# CONFIG_ATH10K_TRACING is not set +CONFIG_WCN36XX=m +# CONFIG_WCN36XX_DEBUGFS is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMSMAC is not set +# CONFIG_BRCMFMAC is not set +# CONFIG_HOSTAP is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_SPI is not set +CONFIG_LIBERTAS_DEBUG=y +# CONFIG_LIBERTAS_MESH is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +# CONFIG_P54_SPI is not set +CONFIG_P54_LEDS=y +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_USB=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192C_COMMON=m +CONFIG_WL_TI=y +# CONFIG_WL1251 is not set +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SPI=m +CONFIG_WLCORE_SDIO=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_USB=m +# CONFIG_CW1200 is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=m +# CONFIG_INPUT_SPARSEKMAP is not set +CONFIG_INPUT_MATRIXKMAP=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +CONFIG_KEYBOARD_MATRIX=m +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_OMAP4 is not set +CONFIG_KEYBOARD_TWL4030=y +# CONFIG_KEYBOARD_XTKBD is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +# CONFIG_TOUCHSCREEN_AD7877 is not set +# CONFIG_TOUCHSCREEN_AD7879 is not set +CONFIG_TOUCHSCREEN_ATMEL_MXT=y +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set +# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +# CONFIG_TOUCHSCREEN_EGALAX is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set +# CONFIG_TOUCHSCREEN_WACOM_I2C is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +# CONFIG_TOUCHSCREEN_MCS5000 is not set +# CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_INEXIO is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +CONFIG_TOUCHSCREEN_EDT_FT5X06=y +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=y +CONFIG_TOUCHSCREEN_PIXCIR=m +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set +# CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2005 is not set +# CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_W90X900 is not set +# CONFIG_TOUCHSCREEN_ST1232 is not set +# CONFIG_TOUCHSCREEN_SUR40 is not set +# CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ZFORCE is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_BEEPER is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_TWL4030_PWRBUTTON=y +# CONFIG_INPUT_TWL4030_VIBRA is not set +# CONFIG_INPUT_TWL6040_VIBRA is not set +# CONFIG_INPUT_UINPUT is not set +CONFIG_INPUT_PALMAS_PWRBUTTON=y +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_OLPC_APSP is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_EM is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_SH_SCI is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_ST_ASC is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_HVC_DCC is not set +# CONFIG_VIRTIO_CONSOLE is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_ATMEL is not set +CONFIG_HW_RANDOM_OMAP=y +CONFIG_HW_RANDOM_OMAP3_ROM=y +# CONFIG_HW_RANDOM_VIRTIO is not set +# CONFIG_HW_RANDOM_EXYNOS is not set +CONFIG_HW_RANDOM_TPM=m +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +CONFIG_TCG_TPM=m +CONFIG_TCG_TIS_I2C_ATMEL=m +# CONFIG_TCG_TIS_I2C_INFINEON is not set +# CONFIG_TCG_TIS_I2C_NUVOTON is not set +# CONFIG_TCG_ATMEL is not set +# CONFIG_TCG_ST33_I2C is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_PCA9541 is not set +# CONFIG_I2C_MUX_PCA954x is not set +# CONFIG_I2C_MUX_PINCTRL is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_CBUS_GPIO is not set +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +CONFIG_I2C_GPIO=m +# CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=y +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_BITBANG=m +CONFIG_SPI_GPIO=m +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=y +CONFIG_SPI_TI_QSPI=y +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_DESIGNWARE is not set + +# +# SPI Protocol Masters +# +CONFIG_SPI_SPIDEV=y +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_HSI is not set + +# +# PPS support +# +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_CAPRI is not set +# CONFIG_PINCTRL_MSM8X74 is not set +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_PALMAS=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_DEVRES=y +CONFIG_OF_GPIO=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO drivers: +# +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_EM is not set +# CONFIG_GPIO_RCAR is not set +# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_TS5500 is not set +# CONFIG_GPIO_GRGPIO is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X_IRQ is not set +CONFIG_GPIO_PCF857X=y +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_TWL4030=y +# CONFIG_GPIO_TWL6040 is not set +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_74X164 is not set + +# +# AC97 GPIO expanders: +# + +# +# LPC GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_PALMAS=y +# CONFIG_GPIO_TPS65910 is not set +# CONFIG_GPIO_BCM_KONA is not set + +# +# USB GPIO expanders: +# +CONFIG_W1=y +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_DS2490 is not set +# CONFIG_W1_MASTER_DS2482 is not set +# CONFIG_W1_MASTER_DS1WM is not set +# CONFIG_W1_MASTER_GPIO is not set +# CONFIG_HDQ_MASTER_OMAP is not set + +# +# 1-wire Slaves +# +# CONFIG_W1_SLAVE_THERM is not set +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2408 is not set +# CONFIG_W1_SLAVE_DS2413 is not set +# CONFIG_W1_SLAVE_DS2423 is not set +# CONFIG_W1_SLAVE_DS2431 is not set +# CONFIG_W1_SLAVE_DS2433 is not set +# CONFIG_W1_SLAVE_DS2760 is not set +# CONFIG_W1_SLAVE_DS2780 is not set +# CONFIG_W1_SLAVE_DS2781 is not set +# CONFIG_W1_SLAVE_DS28E04 is not set +# CONFIG_W1_SLAVE_BQ27000 is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_TWL4030 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24190 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_POWER_RESET is not set +# CONFIG_POWER_RESET_RESTART is not set +CONFIG_POWER_AVS=y +CONFIG_VOLTAGE_DOMAIN=y + +# +# Voltage Domain Framework Drivers +# +CONFIG_VOLTAGE_DOMAIN_OMAP=y +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_AD7314 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADCXX is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7310 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_HTU21 is not set +# CONFIG_SENSORS_IIO_HWMON is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_JC42 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set +CONFIG_SENSORS_LM75=m +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NTC_THERMISTOR is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SCH56XX_COMMON is not set +# CONFIG_SENSORS_SCH5627 is not set +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_ADS1015 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_ADS7871 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_THMC50 is not set +CONFIG_SENSORS_TMP102=y +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_OF=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +# CONFIG_THERMAL_EMULATION is not set +# CONFIG_IMX_THERMAL is not set + +# +# Texas Instruments thermal drivers +# +CONFIG_TI_SOC_THERMAL=y +CONFIG_TI_THERMAL=y +CONFIG_OMAP4_THERMAL=y +CONFIG_OMAP5_THERMAL=y +CONFIG_DRA752_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_GPIO_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +CONFIG_OMAP_WATCHDOG=y +CONFIG_TWL4030_WATCHDOG=y +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_MEN_A21_WDT is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +CONFIG_MFD_TI_AM335X_TSCADC=y +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +CONFIG_MFD_OMAP_USB_HOST=y +CONFIG_MFD_PALMAS=y +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65090 is not set +CONFIG_MFD_TPS65217=y +CONFIG_MFD_TPS65218=y +# CONFIG_MFD_TPS6586X is not set +CONFIG_MFD_TPS65910=y +# CONFIG_MFD_TPS65912 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +CONFIG_TWL4030_CORE=y +# CONFIG_TWL4030_MADC is not set +CONFIG_TWL4030_POWER=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_TWL6040_CORE=y +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_VEXPRESS_CONFIG is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_FAN53555 is not set +CONFIG_REGULATOR_GPIO=y +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +CONFIG_REGULATOR_PALMAS=y +CONFIG_REGULATOR_PBIAS=y +# CONFIG_REGULATOR_PFUZE100 is not set +CONFIG_REGULATOR_TI_ABB=y +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +CONFIG_REGULATOR_TPS65023=y +CONFIG_REGULATOR_TPS6507X=y +CONFIG_REGULATOR_TPS65217=y +CONFIG_REGULATOR_TPS65218=y +# CONFIG_REGULATOR_TPS6524X is not set +CONFIG_REGULATOR_TPS65910=y +CONFIG_REGULATOR_TWL4030=y +CONFIG_MEDIA_SUPPORT=m + +# +# Multimedia core support +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set +# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set +# CONFIG_MEDIA_RADIO_SUPPORT is not set +# CONFIG_MEDIA_RC_SUPPORT is not set +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=m +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +# CONFIG_TTPCI_EEPROM is not set + +# +# Media drivers +# +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +# CONFIG_USB_M5602 is not set +# CONFIG_USB_STV06XX is not set +# CONFIG_USB_GL860 is not set +# CONFIG_USB_GSPCA_BENQ is not set +# CONFIG_USB_GSPCA_CONEX is not set +# CONFIG_USB_GSPCA_CPIA1 is not set +# CONFIG_USB_GSPCA_ETOMS is not set +# CONFIG_USB_GSPCA_FINEPIX is not set +# CONFIG_USB_GSPCA_JEILINJ is not set +# CONFIG_USB_GSPCA_JL2005BCD is not set +# CONFIG_USB_GSPCA_KINECT is not set +# CONFIG_USB_GSPCA_KONICA is not set +# CONFIG_USB_GSPCA_MARS is not set +# CONFIG_USB_GSPCA_MR97310A is not set +# CONFIG_USB_GSPCA_NW80X is not set +# CONFIG_USB_GSPCA_OV519 is not set +# CONFIG_USB_GSPCA_OV534 is not set +# CONFIG_USB_GSPCA_OV534_9 is not set +# CONFIG_USB_GSPCA_PAC207 is not set +# CONFIG_USB_GSPCA_PAC7302 is not set +# CONFIG_USB_GSPCA_PAC7311 is not set +# CONFIG_USB_GSPCA_SE401 is not set +# CONFIG_USB_GSPCA_SN9C2028 is not set +# CONFIG_USB_GSPCA_SN9C20X is not set +# CONFIG_USB_GSPCA_SONIXB is not set +# CONFIG_USB_GSPCA_SONIXJ is not set +# CONFIG_USB_GSPCA_SPCA500 is not set +# CONFIG_USB_GSPCA_SPCA501 is not set +# CONFIG_USB_GSPCA_SPCA505 is not set +# CONFIG_USB_GSPCA_SPCA506 is not set +# CONFIG_USB_GSPCA_SPCA508 is not set +# CONFIG_USB_GSPCA_SPCA561 is not set +# CONFIG_USB_GSPCA_SPCA1528 is not set +# CONFIG_USB_GSPCA_SQ905 is not set +# CONFIG_USB_GSPCA_SQ905C is not set +# CONFIG_USB_GSPCA_SQ930X is not set +# CONFIG_USB_GSPCA_STK014 is not set +# CONFIG_USB_GSPCA_STK1135 is not set +# CONFIG_USB_GSPCA_STV0680 is not set +# CONFIG_USB_GSPCA_SUNPLUS is not set +# CONFIG_USB_GSPCA_T613 is not set +# CONFIG_USB_GSPCA_TOPRO is not set +# CONFIG_USB_GSPCA_TV8532 is not set +# CONFIG_USB_GSPCA_VC032X is not set +# CONFIG_USB_GSPCA_VICAM is not set +# CONFIG_USB_GSPCA_XIRLINK_CIT is not set +# CONFIG_USB_GSPCA_ZC3XX is not set +# CONFIG_USB_PWC is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +# CONFIG_VIDEO_USBTV is not set + +# +# Webcam, TV (analog/digital) USB devices +# +# CONFIG_VIDEO_EM28XX is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_DM6446_CCDC is not set +# CONFIG_VIDEO_OMAP2_VOUT is not set +# CONFIG_VIDEO_TIMBERDALE is not set +# CONFIG_VIDEO_OMAP3 is not set +# CONFIG_SOC_CAMERA is not set +CONFIG_VIDEO_AM437X_VPFE=m +CONFIG_VIDEO_TI_VIP=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +# CONFIG_VIDEO_SH_VEU is not set +# CONFIG_VIDEO_RENESAS_VSP1 is not set +CONFIG_VIDEO_TI_VPE=m +# CONFIG_VIDEO_TI_VPE_DEBUG is not set +CONFIG_VIDEO_TI_VPDMA_HELPER=m +# CONFIG_V4L_TEST_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_CYPRESS_FIRMWARE is not set + +# +# Media ancillary drivers (tuners, sensors, i2c, frontends) +# +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_UDA1342 is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set +# CONFIG_VIDEO_SONY_BTF_MPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_ADV7183 is not set +# CONFIG_VIDEO_ADV7604 is not set +# CONFIG_VIDEO_ADV7842 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_ML86V7667 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_TW2804 is not set +# CONFIG_VIDEO_TW9903 is not set +# CONFIG_VIDEO_TW9906 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_ADV7393 is not set +# CONFIG_VIDEO_ADV7511 is not set +# CONFIG_VIDEO_AD9389B is not set +# CONFIG_VIDEO_AK881X is not set +# CONFIG_VIDEO_THS8200 is not set + +# +# Camera sensor devices +# +CONFIG_VIDEO_OV2659=m +# CONFIG_VIDEO_OV7640 is not set +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_OV9650 is not set +# CONFIG_VIDEO_VS6624 is not set +# CONFIG_VIDEO_MT9M032 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set +# CONFIG_VIDEO_S5K4ECGX is not set +# CONFIG_VIDEO_S5K5BAF is not set +# CONFIG_VIDEO_SMIAPP is not set +# CONFIG_VIDEO_S5C73M3 is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set +# CONFIG_VIDEO_AS3645A is not set +# CONFIG_VIDEO_LM3560 is not set + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Audio/Video compression chips +# +# CONFIG_VIDEO_SAA6752HS is not set + +# +# Miscellaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set + +# +# Sensors used on soc_camera driver +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# + +# +# Direct Rendering Manager +# +CONFIG_DRM=y +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_KMS_FB_HELPER=y +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_KMS_CMA_HELPER=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +CONFIG_DRM_I2C_NXP_TDA998X=m +# CONFIG_DRM_EXYNOS is not set +# CONFIG_DRM_UDL is not set +# CONFIG_DRM_ARMADA is not set +# CONFIG_DRM_RCAR_DU is not set +# CONFIG_DRM_SHMOBILE is not set +CONFIG_DRM_OMAP=m +CONFIG_DRM_OMAP_NUM_CRTCS=2 +CONFIG_DRM_TILCDC=m + +# +# Frame buffer Devices +# +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_CFB_FILLRECT is not set +# CONFIG_FB_CFB_COPYAREA is not set +# CONFIG_FB_CFB_IMAGEBLIT is not set +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_UVESA is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_GOLDFISH is not set +# CONFIG_FB_DA8XX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +CONFIG_OMAP2_DSS_INIT=y +CONFIG_OMAP2_DSS=m +# CONFIG_OMAP2_DSS_DEBUG is not set +# CONFIG_OMAP2_DSS_DEBUGFS is not set +CONFIG_OMAP2_DSS_DPI=y +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP2_DSS_HDMI_COMMON=y +CONFIG_OMAP_DSS_HDMI_AUDIO=y +CONFIG_OMAP4_DSS_HDMI=y +CONFIG_OMAP4_DSS_HDMI_AUDIO=y +CONFIG_OMAP5_DSS_HDMI=y +CONFIG_OMAP5_DSS_HDMI_AUDIO=y +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_DSI=y +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +# CONFIG_FB_OMAP2 is not set + +# +# OMAP Display Device Drivers (new device model) +# +CONFIG_DISPLAY_ENCODER_TFP410=m +CONFIG_DISPLAY_ENCODER_TPD12S015=m +CONFIG_DISPLAY_DRA7EVM_ENCODER_TPD12S015=m +CONFIG_DISPLAY_ENCODER_SII9022=m +CONFIG_DISPLAY_ENCODER_SII9022_AUDIO_CODEC=y +CONFIG_DISPLAY_CONNECTOR_DVI=m +CONFIG_DISPLAY_CONNECTOR_HDMI=m +# CONFIG_DISPLAY_CONNECTOR_ANALOG_TV is not set +CONFIG_DISPLAY_PANEL_DPI=m +# CONFIG_DISPLAY_PANEL_DSI_CM is not set +# CONFIG_DISPLAY_PANEL_SONY_ACX565AKM is not set +# CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02 is not set +# CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01 is not set +# CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1 is not set +# CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1 is not set +# CONFIG_DISPLAY_PANEL_NEC_NL8048HL11 is not set +CONFIG_DISPLAY_PANEL_TLC59108=m +# CONFIG_EXYNOS_VIDEO is not set +# CONFIG_FB_SSD1307 is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=y +# CONFIG_LCD_L4F00242T03 is not set +# CONFIG_LCD_LMS283GF05 is not set +# CONFIG_LCD_LTV350QV is not set +# CONFIG_LCD_ILI922X is not set +# CONFIG_LCD_ILI9320 is not set +# CONFIG_LCD_TDO24M is not set +# CONFIG_LCD_VGG2432A4 is not set +CONFIG_LCD_PLATFORM=y +# CONFIG_LCD_S6E63M0 is not set +# CONFIG_LCD_LD9040 is not set +# CONFIG_LCD_AMS369FG06 is not set +# CONFIG_LCD_LMS501KF03 is not set +# CONFIG_LCD_HX8357 is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PWM=y +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630A is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set +# CONFIG_BACKLIGHT_PANDORA is not set +# CONFIG_BACKLIGHT_TPS65217 is not set +CONFIG_BACKLIGHT_GPIO=y +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_DMAENGINE_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_JACK=y +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_ARM=y +CONFIG_SND_SPI=y +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_ATMEL_SOC is not set +CONFIG_SND_EDMA_SOC=m +CONFIG_SND_DAVINCI_SOC_MCASP=m +CONFIG_SND_DAVINCI_SOC_GENERIC_EVM=m +CONFIG_SND_AM33XX_SOC_EVM=m +CONFIG_SND_AM335X_SOC_NXPTDA_EVM=m +# CONFIG_SND_DESIGNWARE_I2S is not set +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_DMIC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_MCPDM=m +CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m +CONFIG_SND_OMAP_SOC_DRA7EVM=m +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m +CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_DMIC=m +CONFIG_SND_SOC_HDMI_CODEC=m +CONFIG_SND_SOC_TLV320AIC31XX=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_SIMPLE_CARD=m +# CONFIG_SOUND_PRIME is not set + +# +# HID support +# +CONFIG_HID=y +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=y +CONFIG_HID_APPLEIR=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=m +CONFIG_DRAGONRISE_FF=y +CONFIG_HID_EMS_FF=m +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EZKEY=y +CONFIG_HID_HOLTEK=m +CONFIG_HOLTEK_FF=y +CONFIG_HID_HUION=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=m +# CONFIG_HID_LENOVO_TPKBD is not set +CONFIG_HID_LOGITECH=y +CONFIG_HID_LOGITECH_DJ=m +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +# CONFIG_HID_PICOLCD_LCD is not set +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_SONY_FF=y +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_GREENASIA=m +CONFIG_GREENASIA_FF=y +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_THRUSTMASTER_FF=y +CONFIG_HID_WACOM=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_ZEROPLUS_FF=y +CONFIG_HID_ZYDACRON=m +CONFIG_HID_SENSOR_HUB=m + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_OTG=y +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_MON=y +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_HCD_OMAP=y +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_FUSBH200_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set +# CONFIG_USB_RENESAS_USBHS is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=y +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MUSB_HDRC=m +# CONFIG_USB_MUSB_HOST is not set +# CONFIG_USB_MUSB_GADGET is not set +CONFIG_USB_MUSB_DUAL_ROLE=y +# CONFIG_USB_MUSB_TUSB6010 is not set +CONFIG_USB_MUSB_OMAP2PLUS=m +# CONFIG_USB_MUSB_AM35X is not set +CONFIG_USB_MUSB_DSPS=m +# CONFIG_USB_MUSB_UX500 is not set +CONFIG_USB_MUSB_AM335X_CHILD=m +# CONFIG_USB_INVENTRA_DMA is not set +CONFIG_USB_TI_CPPI41_DMA=y +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_OMAP=m + +# +# Debugging features +# +# CONFIG_USB_DWC3_DEBUG is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=m +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_SIMPLE is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_F81232 is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_METRO is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MXUPORT is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +# CONFIG_USB_SERIAL_ZTE is not set +# CONFIG_USB_SERIAL_SSU100 is not set +# CONFIG_USB_SERIAL_QT2 is not set +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +CONFIG_USB_TEST=m +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_ATM is not set + +# +# USB Physical Layer drivers +# +CONFIG_USB_PHY=y +# CONFIG_USB_OTG_FSM is not set +CONFIG_NOP_USB_XCEIV=y +CONFIG_AM335X_CONTROL_USB=y +CONFIG_AM335X_PHY_USB=y +# CONFIG_SAMSUNG_USB2PHY is not set +# CONFIG_SAMSUNG_USB3PHY is not set +CONFIG_TWL6030_USB=m +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_RCAR_PHY is not set +# CONFIG_USB_ULPI is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +# +# USB Peripheral Controller +# +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_S3C_HSOTG is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_LIBCOMPOSITE=m +CONFIG_USB_F_ACM=m +CONFIG_USB_F_SS_LB=m +CONFIG_USB_U_SERIAL=m +CONFIG_USB_U_ETHER=m +CONFIG_USB_F_SERIAL=m +CONFIG_USB_F_OBEX=m +CONFIG_USB_F_NCM=m +CONFIG_USB_F_ECM=m +CONFIG_USB_F_EEM=m +CONFIG_USB_F_SUBSET=m +CONFIG_USB_F_RNDIS=m +CONFIG_USB_F_MASS_STORAGE=m +CONFIG_USB_F_FS=m +# CONFIG_USB_CONFIGFS is not set +CONFIG_USB_ZERO=m +# CONFIG_USB_ZERO_HNPTEST is not set +CONFIG_USB_AUDIO=m +# CONFIG_GADGET_UAC1 is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_ETH_EEM=y +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +CONFIG_USB_FUNCTIONFS_RNDIS=y +CONFIG_USB_FUNCTIONFS_GENERIC=y +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_CDC_COMPOSITE=m +# CONFIG_USB_G_NOKIA is not set +CONFIG_USB_G_ACM_MS=m +CONFIG_USB_G_MULTI=m +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_HID=m +CONFIG_USB_G_DBGP=m +# CONFIG_USB_G_DBGP_PRINTK is not set +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_WEBCAM=m +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_UNSAFE_RESUME=y +# CONFIG_MMC_CLKGATE is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=y +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_SDHCI is not set +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set +CONFIG_MMC_OMAP=y +CONFIG_MMC_OMAP_HS=y +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA9685 is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_PWM is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_OT200 is not set +# CONFIG_LEDS_BLINKM is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_TRANSIENT=y +CONFIG_LEDS_TRIGGER_CAMERA=y +# CONFIG_ACCESSIBILITY is not set +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=y +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12057 is not set +# CONFIG_RTC_DRV_X1205 is not set +CONFIG_RTC_DRV_PALMAS=y +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +CONFIG_RTC_DRV_TWL4030=y +# CONFIG_RTC_DRV_TPS65910 is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_DS3234 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_RX4581 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_DS2404 is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_OMAP=y +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_RTC_DRV_MOXART is not set + +# +# HID Sensor RTC drivers +# +# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +# CONFIG_DW_DMAC_CORE is not set +# CONFIG_DW_DMAC is not set +# CONFIG_TIMB_DMA is not set +CONFIG_TI_EDMA=y +CONFIG_DMA_OMAP=y +CONFIG_TI_CPPI41=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set +CONFIG_OMAP_DMA_CROSSBAR=y +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VFIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO=y + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_STAGING is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_CLK_TWL6040 is not set +# CONFIG_COMMON_CLK_QCOM is not set + +# +# Hardware Spinlock drivers +# +# CONFIG_HWSPINLOCK_OMAP is not set +CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_MMIO=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_MAILBOX=y +CONFIG_OMAP2PLUS_MBOX=y +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_OF_IOMMU=y +CONFIG_OMAP_IOMMU=y +CONFIG_OMAP_IOVMM=y +# CONFIG_OMAP_IOMMU_DEBUG is not set + +# +# Remoteproc drivers +# +CONFIG_REMOTEPROC=y +CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_REMOTEPROC_WATCHDOG=y +# CONFIG_STE_MODEM_RPROC is not set +CONFIG_WKUP_M3_RPROC=y +CONFIG_PRUSS_REMOTEPROC=y + +# +# Rpmsg drivers +# +CONFIG_RPMSG=y +CONFIG_RPMSG_RPC=m +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_USERSPACE=y + +# +# DEVFREQ Drivers +# +CONFIG_EXTCON=y + +# +# Extcon Device Drivers +# +CONFIG_EXTCON_GPIO=y +# CONFIG_EXTCON_ADC_JACK is not set +CONFIG_EXTCON_PALMAS=y +CONFIG_MEMORY=y +CONFIG_TI_EMIF=y +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 + +# +# Accelerometers +# +# CONFIG_BMA180 is not set +# CONFIG_HID_SENSOR_ACCEL_3D is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set +# CONFIG_KXSD9 is not set + +# +# Analog to digital converters +# +# CONFIG_AD7266 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_EXYNOS_ADC is not set +# CONFIG_MAX1363 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +# CONFIG_NAU7802 is not set +# CONFIG_TI_ADC081C is not set +CONFIG_TI_AM335X_ADC=m +# CONFIG_TWL6030_GPADC is not set + +# +# Amplifiers +# +# CONFIG_AD8366 is not set + +# +# Hid Sensor IIO Common +# +# CONFIG_HID_SENSOR_IIO_COMMON is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_AD5686 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7303 is not set +# CONFIG_MAX517 is not set +# CONFIG_MCP4725 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Humidity sensors +# +# CONFIG_DHT11 is not set + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_APDS9300 is not set +# CONFIG_CM32181 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_HID_SENSOR_ALS is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL4531 is not set +# CONFIG_VCNL4000 is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_MAG3110 is not set +# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set + +# +# Inclinometer sensors +# +# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set + +# +# Triggers - standalone +# +# CONFIG_IIO_INTERRUPT_TRIGGER is not set +# CONFIG_IIO_SYSFS_TRIGGER is not set + +# +# Pressure sensors +# +# CONFIG_MPL3115 is not set +# CONFIG_IIO_ST_PRESS is not set + +# +# Temperature sensors +# +# CONFIG_TMP006 is not set +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +# CONFIG_PWM_PCA9685 is not set +CONFIG_PWM_TIECAP=y +CONFIG_PWM_TIEHRPWM=y +CONFIG_PWM_TIPWMSS=y +# CONFIG_PWM_TWL is not set +# CONFIG_PWM_TWL_LED is not set +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_IRQ_CROSSBAR=y +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set +# CONFIG_FMC is not set + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set +CONFIG_OMAP_CONTROL_PHY=y +CONFIG_OMAP_USB2=y +CONFIG_TI_PIPE3=y +CONFIG_TWL4030_USB=m +# CONFIG_PHY_EXYNOS_DP_VIDEO is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_POWERCAP is not set + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_XFS_FS=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_BTRFS_FS=y +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +CONFIG_NILFS2_FS=m +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=m + +# +# Caches +# +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=y +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS_MESSAGING is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +CONFIG_UBIFS_FS=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_LOGFS=m +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +# CONFIG_HPFS_FS is not set +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +# CONFIG_QNX6FS_DEBUG is not set +CONFIG_ROMFS_FS=m +# CONFIG_ROMFS_BACKED_BY_BLOCK is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_BACKED_BY_BOTH=y +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_ROMFS_ON_MTD=y +# CONFIG_PSTORE is not set +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_F2FS_FS=y +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_SWAP=y +# CONFIG_NFS_V4_1 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFS_DEBUG=y +# CONFIG_NFSD is not set +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_SWAP=y +CONFIG_SUNRPC_DEBUG=y +CONFIG_CEPH_FS=m +# CONFIG_CEPH_FSCACHE is not set +CONFIG_CEPH_FS_POSIX_ACL=y +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_FSCACHE=y +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FSCACHE=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=m +# CONFIG_DLM is not set + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=y + +# +# Compile-time checks and compiler options +# +# CONFIG_DEBUG_INFO is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_DEBUG_KERNEL=y + +# +# Memory Debugging +# +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_DEBUG_PREEMPT=y + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_PROVE_LOCKING=y +CONFIG_LOCKDEP=y +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_LOCKDEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_TRACE_IRQFLAGS=y +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_PROVE_RCU is not set +# CONFIG_PROVE_RCU_DELAY is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +CONFIG_RCU_CPU_STALL_VERBOSE=y +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_ENABLE_DEFAULT_TRACERS is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_TRACER_SNAPSHOT is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_STACK_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_KPROBE_EVENT=y +CONFIG_PROBE_EVENTS=y +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set + +# +# Runtime Testing +# +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_KPROBES_SANITY_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_TEST_MODULE is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_ARM_PTDUMP is not set +# CONFIG_STRICT_DEVMEM is not set +CONFIG_ARM_UNWIND=y +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_UART_PL01X is not set +# CONFIG_DEBUG_UART_8250 is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +# CONFIG_ARM_KPROBES_TEST is not set +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_DEBUG_SET_MODULE_RONX is not set + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_TRUSTED_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +# CONFIG_SECURITY_NETWORK is not set +# CONFIG_SECURITY_PATH is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_YAMA is not set +# CONFIG_IMA is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_XOR_BLOCKS=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +# CONFIG_CRYPTO_GCM is not set +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CTR=m +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_GHASH is not set +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA1_ARM is not set +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_ARM is not set +# CONFIG_CRYPTO_AES_ARM_BS is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_OMAP_SHAM=y +CONFIG_CRYPTO_DEV_OMAP_AES=y +CONFIG_CRYPTO_DEV_OMAP_DES=y +# CONFIG_ASYMMETRIC_KEY_TYPE is not set +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=y +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +CONFIG_CRC7=y +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=m +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +# CONFIG_XZ_DEC_SPARC is not set +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_BCH=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_BTREE=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_AVERAGE=y +# CONFIG_CORDIC is not set +CONFIG_DDR=y +CONFIG_OID_REGISTRY=y +CONFIG_FONT_SUPPORT=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_VIRTUALIZATION=y From e380b6d88e961a3e92dc7325ba0ae727330c281c Mon Sep 17 00:00:00 2001 From: Charles Steinkuehler Date: Sun, 28 Sep 2014 12:16:16 +0000 Subject: [PATCH 63/63] BeagleBone DTS : Enable run-time pinmux for HDMI Add cape-universal-hdmi pin info to am335x-bone-common-pinmux.dtsi Edit hdmi dtsi include files to use new mode= setting to set HDMI mode at startup, leaving pinmux configurable at runtime. Signed-off-by: Charles Steinkuehler --- .../boot/dts/am335x-bone-common-pinmux.dtsi | 676 +++++++++++++++++- .../dts/am335x-boneblack-nxp-hdmi-audio.dtsi | 73 +- .../am335x-boneblack-nxp-hdmi-no-audio.dtsi | 61 +- 3 files changed, 779 insertions(+), 31 deletions(-) diff --git a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi index 09907edb39900..a1ecd6d6e238f 100644 --- a/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common-pinmux.dtsi @@ -406,6 +406,12 @@ >; }; + mcasp0_clken: mcasp0_clken { + pinctrl-single,pins = < + 0x06c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */ + >; + }; + /* audio rev a */ mcasp0_pins_audio_reva: mcasp0_pins_audio_reva { pinctrl-single,pins = < @@ -628,51 +634,318 @@ pinctrl-single,pins = <0x07c 0x27>; }; /* Mode 7, Pull-Down, RxActive */ /* P8_27 (ZCZ ball U5 ) hdmi */ + P8_27_default_pin: pinmux_P8_27_default_pin { + pinctrl-single,pins = <0x0e0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_27_gpio_pin: pinmux_P8_27_gpio_pin { + pinctrl-single,pins = <0x0e0 0x2F>; }; /* Mode 7, RxActive */ + P8_27_gpio_pu_pin: pinmux_P8_27_gpio_pu_pin { + pinctrl-single,pins = <0x0e0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_27_gpio_pd_pin: pinmux_P8_27_gpio_pd_pin { + pinctrl-single,pins = <0x0e0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_27_pruout_pin: pinmux_P8_27_pruout_pin { + pinctrl-single,pins = <0x0e0 0x05>; }; /* Mode 5, Pull-Down*/ + P8_27_pruin_pin: pinmux_P8_27_pruin_pin { + pinctrl-single,pins = <0x0e0 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_27_hdmi_pin: pinmux_P8_27_hdmi_pin { + pinctrl-single,pins = <0x0e0 0x00>; }; /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + /* P8_28 (ZCZ ball V5 ) hdmi */ + P8_28_default_pin: pinmux_P8_28_default_pin { + pinctrl-single,pins = <0x0e8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_28_gpio_pin: pinmux_P8_28_gpio_pin { + pinctrl-single,pins = <0x0e8 0x2F>; }; /* Mode 7, RxActive */ + P8_28_gpio_pu_pin: pinmux_P8_28_gpio_pu_pin { + pinctrl-single,pins = <0x0e8 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_28_gpio_pd_pin: pinmux_P8_28_gpio_pd_pin { + pinctrl-single,pins = <0x0e8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_28_pruout_pin: pinmux_P8_28_pruout_pin { + pinctrl-single,pins = <0x0e8 0x05>; }; /* Mode 5, Pull-Down */ + P8_28_pruin_pin: pinmux_P8_28_pruin_pin { + pinctrl-single,pins = <0x0e8 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_28_hdmi_pin: pinmux_P8_28_hdmi_pin { + pinctrl-single,pins = <0x0e8 0x00>; }; /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + /* P8_29 (ZCZ ball R5 ) hdmi */ + P8_29_default_pin: pinmux_P8_29_default_pin { + pinctrl-single,pins = <0x0e4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_29_gpio_pin: pinmux_P8_29_gpio_pin { + pinctrl-single,pins = <0x0e4 0x2F>; }; /* Mode 7, RxActive */ + P8_29_gpio_pu_pin: pinmux_P8_29_gpio_pu_pin { + pinctrl-single,pins = <0x0e4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_29_gpio_pd_pin: pinmux_P8_29_gpio_pd_pin { + pinctrl-single,pins = <0x0e4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_29_pruout_pin: pinmux_P8_29_pruout_pin { + pinctrl-single,pins = <0x0e4 0x05>; }; /* Mode 5, Pull-Down*/ + P8_29_pruin_pin: pinmux_P8_29_pruin_pin { + pinctrl-single,pins = <0x0e4 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_29_hdmi_pin: pinmux_P8_29_hdmi_pin { + pinctrl-single,pins = <0x0e4 0x00>; }; /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + /* P8_30 (ZCZ ball R6 ) hdmi */ + P8_30_default_pin: pinmux_P8_30_default_pin { + pinctrl-single,pins = <0x0ec 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_30_gpio_pin: pinmux_P8_30_gpio_pin { + pinctrl-single,pins = <0x0ec 0x2F>; }; /* Mode 7, RxActive */ + P8_30_gpio_pu_pin: pinmux_P8_30_gpio_pu_pin { + pinctrl-single,pins = <0x0ec 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_30_gpio_pd_pin: pinmux_P8_30_gpio_pd_pin { + pinctrl-single,pins = <0x0ec 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_30_pruout_pin: pinmux_P8_30_pruout_pin { + pinctrl-single,pins = <0x0ec 0x05>; }; /* Mode 5, Pull-Down*/ + P8_30_pruin_pin: pinmux_P8_30_pruin_pin { + pinctrl-single,pins = <0x0ec 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_30_hdmi_pin: pinmux_P8_30_hdmi_pin { + pinctrl-single,pins = <0x0ec 0x00>; }; /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + /* P8_31 (ZCZ ball V4 ) hdmi */ + P8_31_default_pin: pinmux_P8_31_default_pin { + pinctrl-single,pins = <0x0d8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_31_gpio_pin: pinmux_P8_31_gpio_pin { + pinctrl-single,pins = <0x0d8 0x2F>; }; /* Mode 7, RxActive */ + P8_31_gpio_pu_pin: pinmux_P8_31_gpio_pu_pin { + pinctrl-single,pins = <0x0d8 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_31_gpio_pd_pin: pinmux_P8_31_gpio_pd_pin { + pinctrl-single,pins = <0x0d8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_31_uart_pin: pinmux_P8_31_uart_pin { + pinctrl-single,pins = <0x0d8 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + P8_31_hdmi_pin: pinmux_P8_31_hdmi_pin { + pinctrl-single,pins = <0x0d8 0x08>; }; /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_32 (ZCZ ball T5 ) hdmi */ + P8_32_default_pin: pinmux_P8_32_default_pin { + pinctrl-single,pins = <0x0dc 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_32_gpio_pin: pinmux_P8_32_gpio_pin { + pinctrl-single,pins = <0x0dc 0x2F>; }; /* Mode 7, RxActive */ + P8_32_gpio_pu_pin: pinmux_P8_32_gpio_pu_pin { + pinctrl-single,pins = <0x0dc 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_32_gpio_pd_pin: pinmux_P8_32_gpio_pd_pin { + pinctrl-single,pins = <0x0dc 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_32_uart_pin: pinmux_P8_32_uart_pin { + pinctrl-single,pins = <0x0dc 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_32_hdmi_pin: pinmux_P8_32_hdmi_pin { + pinctrl-single,pins = <0x0dc 0x08>; }; /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_33 (ZCZ ball V3 ) hdmi */ + P8_33_default_pin: pinmux_P8_33_default_pin { + pinctrl-single,pins = <0x0d4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_33_gpio_pin: pinmux_P8_33_gpio_pin { + pinctrl-single,pins = <0x0d4 0x2F>; }; /* Mode 7, RxActive */ + P8_33_gpio_pu_pin: pinmux_P8_33_gpio_pu_pin { + pinctrl-single,pins = <0x0d4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_33_gpio_pd_pin: pinmux_P8_33_gpio_pd_pin { + pinctrl-single,pins = <0x0d4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_33_hdmi_pin: pinmux_P8_33_hdmi_pin { + pinctrl-single,pins = <0x0d4 0x08>; }; /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_34 (ZCZ ball U4 ) hdmi */ + P8_34_default_pin: pinmux_P8_34_default_pin { + pinctrl-single,pins = <0x0cc 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_34_gpio_pin: pinmux_P8_34_gpio_pin { + pinctrl-single,pins = <0x0cc 0x2F>; }; /* Mode 7, RxActive */ + P8_34_gpio_pu_pin: pinmux_P8_34_gpio_pu_pin { + pinctrl-single,pins = <0x0cc 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_34_gpio_pd_pin: pinmux_P8_34_gpio_pd_pin { + pinctrl-single,pins = <0x0cc 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_34_pwm_pin: pinmux_P8_34_pwm_pin { + pinctrl-single,pins = <0x0cc 0x22>; }; /* Mode 2, Pull-Down, RxActive */ + P8_34_hdmi_pin: pinmux_P8_34_hdmi_pin { + pinctrl-single,pins = <0x0cc 0x08>; }; /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_35 (ZCZ ball V2 ) hdmi */ + P8_35_default_pin: pinmux_P8_35_default_pin { + pinctrl-single,pins = <0x0d0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_35_gpio_pin: pinmux_P8_35_gpio_pin { + pinctrl-single,pins = <0x0d0 0x2F>; }; /* Mode 7, RxActive */ + P8_35_gpio_pu_pin: pinmux_P8_35_gpio_pu_pin { + pinctrl-single,pins = <0x0d0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_35_gpio_pd_pin: pinmux_P8_35_gpio_pd_pin { + pinctrl-single,pins = <0x0d0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_35_hdmi_pin: pinmux_P8_35_hdmi_pin { + pinctrl-single,pins = <0x0d0 0x08>; }; /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_36 (ZCZ ball U3 ) hdmi */ + P8_36_default_pin: pinmux_P8_36_default_pin { + pinctrl-single,pins = <0x0c8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_36_gpio_pin: pinmux_P8_36_gpio_pin { + pinctrl-single,pins = <0x0c8 0x2F>; }; /* Mode 7, RxActive */ + P8_36_gpio_pu_pin: pinmux_P8_36_gpio_pu_pin { + pinctrl-single,pins = <0x0c8 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_36_gpio_pd_pin: pinmux_P8_36_gpio_pd_pin { + pinctrl-single,pins = <0x0c8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_36_pwm_pin: pinmux_P8_36_pwm_pin { + pinctrl-single,pins = <0x0c8 0x22>; }; /* Mode 2, Pull-Down, RxActive */ + P8_36_hdmi_pin: pinmux_P8_36_hdmi_pin { + pinctrl-single,pins = <0x0c8 0x08>; }; /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_37 (ZCZ ball U1 ) hdmi */ P8_37_default_pin: pinmux_P8_37_default_pin { - pinctrl-single,pins = <0x0C0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + pinctrl-single,pins = <0x0c0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_37_gpio_pin: pinmux_P8_37_gpio_pin { - pinctrl-single,pins = <0x0C0 0x2F>; }; /* Mode 7, RxActive */ + pinctrl-single,pins = <0x0c0 0x2F>; }; /* Mode 7, RxActive */ P8_37_gpio_pu_pin: pinmux_P8_37_gpio_pu_pin { - pinctrl-single,pins = <0x0C0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + pinctrl-single,pins = <0x0c0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_37_gpio_pd_pin: pinmux_P8_37_gpio_pd_pin { - pinctrl-single,pins = <0x0C0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + pinctrl-single,pins = <0x0c0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_37_uart_pin: pinmux_P8_37_uart_pin { - pinctrl-single,pins = <0x0C0 0x04>; }; /* Mode 4, Pull-Down*/ + pinctrl-single,pins = <0x0c0 0x04>; }; /* Mode 4, Pull-Down*/ P8_37_pwm_pin: pinmux_P8_37_pwm_pin { - pinctrl-single,pins = <0x0C0 0x02>; }; /* Mode 2, Pull-Down*/ + pinctrl-single,pins = <0x0c0 0x02>; }; /* Mode 2, Pull-Down*/ + P8_37_hdmi_pin: pinmux_P8_37_hdmi_pin { + pinctrl-single,pins = <0x0c0 0x08>; }; /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_38 (ZCZ ball U2 ) hdmi */ P8_38_default_pin: pinmux_P8_38_default_pin { - pinctrl-single,pins = <0x0C4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + pinctrl-single,pins = <0x0c4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_38_gpio_pin: pinmux_P8_38_gpio_pin { - pinctrl-single,pins = <0x0C4 0x2F>; }; /* Mode 7, RxActive */ + pinctrl-single,pins = <0x0c4 0x2F>; }; /* Mode 7, RxActive */ P8_38_gpio_pu_pin: pinmux_P8_38_gpio_pu_pin { - pinctrl-single,pins = <0x0C4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + pinctrl-single,pins = <0x0c4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ P8_38_gpio_pd_pin: pinmux_P8_38_gpio_pd_pin { - pinctrl-single,pins = <0x0C4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + pinctrl-single,pins = <0x0c4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ P8_38_uart_pin: pinmux_P8_38_uart_pin { - pinctrl-single,pins = <0x0C4 0x24>; }; /* Mode 4, Pull-Down, RxActive */ + pinctrl-single,pins = <0x0c4 0x24>; }; /* Mode 4, Pull-Down, RxActive */ P8_38_pwm_pin: pinmux_P8_38_pwm_pin { - pinctrl-single,pins = <0x0C4 0x22>; }; /* Mode 2, Pull-Down, RxActive */ + pinctrl-single,pins = <0x0c4 0x22>; }; /* Mode 2, Pull-Down, RxActive */ + P8_38_hdmi_pin: pinmux_P8_38_hdmi_pin { + pinctrl-single,pins = <0x0c4 0x08>; }; /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_39 (ZCZ ball T3 ) hdmi */ + P8_39_default_pin: pinmux_P8_39_default_pin { + pinctrl-single,pins = <0x0b8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_39_gpio_pin: pinmux_P8_39_gpio_pin { + pinctrl-single,pins = <0x0b8 0x2F>; }; /* Mode 7, RxActive */ + P8_39_gpio_pu_pin: pinmux_P8_39_gpio_pu_pin { + pinctrl-single,pins = <0x0b8 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_39_gpio_pd_pin: pinmux_P8_39_gpio_pd_pin { + pinctrl-single,pins = <0x0b8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_39_pruout_pin: pinmux_P8_39_pruout_pin { + pinctrl-single,pins = <0x0b8 0x05>; }; /* Mode 5, Pull-Down*/ + P8_39_pruin_pin: pinmux_P8_39_pruin_pin { + pinctrl-single,pins = <0x0b8 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_39_hdmi_pin: pinmux_P8_39_hdmi_pin { + pinctrl-single,pins = <0x0b8 0x08>; }; /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_40 (ZCZ ball T4 ) hdmi */ + P8_40_default_pin: pinmux_P8_40_default_pin { + pinctrl-single,pins = <0x0bc 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_40_gpio_pin: pinmux_P8_40_gpio_pin { + pinctrl-single,pins = <0x0bc 0x2F>; }; /* Mode 7, RxActive */ + P8_40_gpio_pu_pin: pinmux_P8_40_gpio_pu_pin { + pinctrl-single,pins = <0x0bc 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_40_gpio_pd_pin: pinmux_P8_40_gpio_pd_pin { + pinctrl-single,pins = <0x0bc 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_40_pruout_pin: pinmux_P8_40_pruout_pin { + pinctrl-single,pins = <0x0bc 0x05>; }; /* Mode 5, Pull-Down*/ + P8_40_pruin_pin: pinmux_P8_40_pruin_pin { + pinctrl-single,pins = <0x0bc 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_40_hdmi_pin: pinmux_P8_40_hdmi_pin { + pinctrl-single,pins = <0x0bc 0x08>; }; /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_41 (ZCZ ball T1 ) hdmi */ + P8_41_default_pin: pinmux_P8_41_default_pin { + pinctrl-single,pins = <0x0b0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_41_gpio_pin: pinmux_P8_41_gpio_pin { + pinctrl-single,pins = <0x0b0 0x2F>; }; /* Mode 7, RxActive */ + P8_41_gpio_pu_pin: pinmux_P8_41_gpio_pu_pin { + pinctrl-single,pins = <0x0b0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_41_gpio_pd_pin: pinmux_P8_41_gpio_pd_pin { + pinctrl-single,pins = <0x0b0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_41_pruout_pin: pinmux_P8_41_pruout_pin { + pinctrl-single,pins = <0x0b0 0x05>; }; /* Mode 5, Pull-Down*/ + P8_41_pruin_pin: pinmux_P8_41_pruin_pin { + pinctrl-single,pins = <0x0b0 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_41_hdmi_pin: pinmux_P8_41_hdmi_pin { + pinctrl-single,pins = <0x0b0 0x08>; }; /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_42 (ZCZ ball T2 ) hdmi */ + P8_42_default_pin: pinmux_P8_42_default_pin { + pinctrl-single,pins = <0x0b4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_42_gpio_pin: pinmux_P8_42_gpio_pin { + pinctrl-single,pins = <0x0b4 0x2F>; }; /* Mode 7, RxActive */ + P8_42_gpio_pu_pin: pinmux_P8_42_gpio_pu_pin { + pinctrl-single,pins = <0x0b4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_42_gpio_pd_pin: pinmux_P8_42_gpio_pd_pin { + pinctrl-single,pins = <0x0b4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_42_pruout_pin: pinmux_P8_42_pruout_pin { + pinctrl-single,pins = <0x0b4 0x05>; }; /* Mode 5, Pull-Down*/ + P8_42_pruin_pin: pinmux_P8_42_pruin_pin { + pinctrl-single,pins = <0x0b4 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_42_hdmi_pin: pinmux_P8_42_hdmi_pin { + pinctrl-single,pins = <0x0b4 0x08>; }; /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_43 (ZCZ ball R3 ) hdmi */ + P8_43_default_pin: pinmux_P8_43_default_pin { + pinctrl-single,pins = <0x0a8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_43_gpio_pin: pinmux_P8_43_gpio_pin { + pinctrl-single,pins = <0x0a8 0x2F>; }; /* Mode 7, RxActive */ + P8_43_gpio_pu_pin: pinmux_P8_43_gpio_pu_pin { + pinctrl-single,pins = <0x0a8 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_43_gpio_pd_pin: pinmux_P8_43_gpio_pd_pin { + pinctrl-single,pins = <0x0a8 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_43_pruout_pin: pinmux_P8_43_pruout_pin { + pinctrl-single,pins = <0x0a8 0x05>; }; /* Mode 5, Pull-Down*/ + P8_43_pruin_pin: pinmux_P8_43_pruin_pin { + pinctrl-single,pins = <0x0a8 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_43_pwm_pin: pinmux_P8_43_pwm_pin { + pinctrl-single,pins = <0x0a8 0x03>; }; /* Mode 3, Pull-Down */ + P8_43_hdmi_pin: pinmux_P8_43_hdmi_pin { + pinctrl-single,pins = <0x0a8 0x08>; }; /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_44 (ZCZ ball R4 ) hdmi */ + P8_44_default_pin: pinmux_P8_44_default_pin { + pinctrl-single,pins = <0x0ac 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_44_gpio_pin: pinmux_P8_44_gpio_pin { + pinctrl-single,pins = <0x0ac 0x2F>; }; /* Mode 7, RxActive */ + P8_44_gpio_pu_pin: pinmux_P8_44_gpio_pu_pin { + pinctrl-single,pins = <0x0ac 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_44_gpio_pd_pin: pinmux_P8_44_gpio_pd_pin { + pinctrl-single,pins = <0x0ac 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_44_pruout_pin: pinmux_P8_44_pruout_pin { + pinctrl-single,pins = <0x0ac 0x05>; }; /* Mode 5, Pull-Down*/ + P8_44_pruin_pin: pinmux_P8_44_pruin_pin { + pinctrl-single,pins = <0x0ac 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_44_pwm_pin: pinmux_P8_44_pwm_pin { + pinctrl-single,pins = <0x0ac 0x23>; }; /* Mode 3, Pull-Down, RxActive */ + P8_44_hdmi_pin: pinmux_P8_44_hdmi_pin { + pinctrl-single,pins = <0x0ac 0x08>; }; /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_45 (ZCZ ball R1 ) hdmi */ + P8_45_default_pin: pinmux_P8_45_default_pin { + pinctrl-single,pins = <0x0a0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_45_gpio_pin: pinmux_P8_45_gpio_pin { + pinctrl-single,pins = <0x0a0 0x2F>; }; /* Mode 7, RxActive */ + P8_45_gpio_pu_pin: pinmux_P8_45_gpio_pu_pin { + pinctrl-single,pins = <0x0a0 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_45_gpio_pd_pin: pinmux_P8_45_gpio_pd_pin { + pinctrl-single,pins = <0x0a0 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_45_pruout_pin: pinmux_P8_45_pruout_pin { + pinctrl-single,pins = <0x0a0 0x05>; }; /* Mode 5, Pull-Down*/ + P8_45_pruin_pin: pinmux_P8_45_pruin_pin { + pinctrl-single,pins = <0x0a0 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_45_pwm_pin: pinmux_P8_45_pwm_pin { + pinctrl-single,pins = <0x0a0 0x03>; }; /* Mode 3, Pull-Down*/ + P8_45_hdmi_pin: pinmux_P8_45_hdmi_pin { + pinctrl-single,pins = <0x0a0 0x08>; }; /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ + /* P8_46 (ZCZ ball R2 ) hdmi */ + P8_46_default_pin: pinmux_P8_46_default_pin { + pinctrl-single,pins = <0x0a4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_46_gpio_pin: pinmux_P8_46_gpio_pin { + pinctrl-single,pins = <0x0a4 0x2F>; }; /* Mode 7, RxActive */ + P8_46_gpio_pu_pin: pinmux_P8_46_gpio_pu_pin { + pinctrl-single,pins = <0x0a4 0x37>; }; /* Mode 7, Pull-Up, RxActive */ + P8_46_gpio_pd_pin: pinmux_P8_46_gpio_pd_pin { + pinctrl-single,pins = <0x0a4 0x27>; }; /* Mode 7, Pull-Down, RxActive */ + P8_46_pruout_pin: pinmux_P8_46_pruout_pin { + pinctrl-single,pins = <0x0a4 0x05>; }; /* Mode 5, Pull-Down*/ + P8_46_pruin_pin: pinmux_P8_46_pruin_pin { + pinctrl-single,pins = <0x0a4 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P8_46_pwm_pin: pinmux_P8_46_pwm_pin { + pinctrl-single,pins = <0x0a4 0x03>; }; /* Mode 3, Pull-Down*/ + P8_46_hdmi_pin: pinmux_P8_46_hdmi_pin { + pinctrl-single,pins = <0x0a4 0x08>; }; /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ /************************/ /* P9 Header */ @@ -876,6 +1149,8 @@ pinctrl-single,pins = <0x1ac 0x25>; }; /* Mode 5, Pull-Down, RxActive */ P9_25_pruin_pin: pinmux_P9_25_pruin_pin { pinctrl-single,pins = <0x1ac 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P9_25_audio_pin: pinmux_P9_25_audio_pin { + pinctrl-single,pins = <0x1ac (PIN_INPUT_PULLUP | MUX_MODE0)>; }; /* mcasp0_ahclkx.mcasp0_ahclkx */ /* P9_26 (ZCZ ball D16) */ P9_26_default_pin: pinmux_P9_26_default_pin { @@ -930,6 +1205,8 @@ pinctrl-single,pins = <0x19c 0x25>; }; /* Mode 5, Pull-Down, RxActive */ P9_28_pruin_pin: pinmux_P9_28_pruin_pin { pinctrl-single,pins = <0x19c 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P9_28_audio_pin: pinmux_P9_28_audio_pin { + pinctrl-single,pins = <0x19c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)>; }; /* mcasp0_ahclkr.mcasp0_axr2 */ /* P9_29 (ZCZ ball B13) Audio */ P9_29_default_pin: pinmux_P9_29_default_pin { @@ -948,6 +1225,8 @@ pinctrl-single,pins = <0x194 0x25>; }; /* Mode 5, Pull-Down, RxActive */ P9_29_pruin_pin: pinmux_P9_29_pruin_pin { pinctrl-single,pins = <0x194 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P9_29_audio_pin: pinmux_P9_29_audio_pin { + pinctrl-single,pins = <0x194 (PIN_OUTPUT_PULLUP | MUX_MODE0)>; }; /* mcasp0_fsx.mcasp0_fsx */ /* P9_30 (ZCZ ball D12) */ P9_30_default_pin: pinmux_P9_30_default_pin { @@ -984,6 +1263,8 @@ pinctrl-single,pins = <0x190 0x25>; }; /* Mode 5, Pull-Down, RxActive */ P9_31_pruin_pin: pinmux_P9_31_pruin_pin { pinctrl-single,pins = <0x190 0x26>; }; /* Mode 6, Pull-Down, RxActive */ + P9_31_audio_pin: pinmux_P9_31_audio_pin { + pinctrl-single,pins = <0x190 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)>; }; /* mcasp0_aclkx.mcasp0_aclkx */ /* P9_32 VADC */ /* P9_33 (ZCZ ball C8 ) AIN4 */ @@ -1236,32 +1517,263 @@ pinctrl-3 = <&P8_26_gpio_pd_pin>; }; + P8_27_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_27_default_pin>; + pinctrl-1 = <&P8_27_gpio_pin>; + pinctrl-2 = <&P8_27_gpio_pu_pin>; + pinctrl-3 = <&P8_27_gpio_pd_pin>; + pinctrl-4 = <&P8_27_pruout_pin>; + pinctrl-5 = <&P8_27_pruin_pin>; + pinctrl-6 = <&P8_27_hdmi_pin>; + }; + + P8_28_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_28_default_pin>; + pinctrl-1 = <&P8_28_gpio_pin>; + pinctrl-2 = <&P8_28_gpio_pu_pin>; + pinctrl-3 = <&P8_28_gpio_pd_pin>; + pinctrl-4 = <&P8_28_pruout_pin>; + pinctrl-5 = <&P8_28_pruin_pin>; + pinctrl-6 = <&P8_28_hdmi_pin>; + }; + + P8_29_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_29_default_pin>; + pinctrl-1 = <&P8_29_gpio_pin>; + pinctrl-2 = <&P8_29_gpio_pu_pin>; + pinctrl-3 = <&P8_29_gpio_pd_pin>; + pinctrl-4 = <&P8_29_pruout_pin>; + pinctrl-5 = <&P8_29_pruin_pin>; + pinctrl-6 = <&P8_29_hdmi_pin>; + }; + + P8_30_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_30_default_pin>; + pinctrl-1 = <&P8_30_gpio_pin>; + pinctrl-2 = <&P8_30_gpio_pu_pin>; + pinctrl-3 = <&P8_30_gpio_pd_pin>; + pinctrl-4 = <&P8_30_pruout_pin>; + pinctrl-5 = <&P8_30_pruin_pin>; + pinctrl-6 = <&P8_30_hdmi_pin>; + }; + + P8_31_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart", "hdmi"; + pinctrl-0 = <&P8_31_default_pin>; + pinctrl-1 = <&P8_31_gpio_pin>; + pinctrl-2 = <&P8_31_gpio_pu_pin>; + pinctrl-3 = <&P8_31_gpio_pd_pin>; + pinctrl-4 = <&P8_31_uart_pin>; + pinctrl-5 = <&P8_31_hdmi_pin>; + }; + + P8_32_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "hdmi"; + pinctrl-0 = <&P8_32_default_pin>; + pinctrl-1 = <&P8_32_gpio_pin>; + pinctrl-2 = <&P8_32_gpio_pu_pin>; + pinctrl-3 = <&P8_32_gpio_pd_pin>; + pinctrl-4 = <&P8_32_hdmi_pin>; + }; + + P8_33_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "hdmi"; + pinctrl-0 = <&P8_33_default_pin>; + pinctrl-1 = <&P8_33_gpio_pin>; + pinctrl-2 = <&P8_33_gpio_pu_pin>; + pinctrl-3 = <&P8_33_gpio_pd_pin>; + pinctrl-4 = <&P8_33_hdmi_pin>; + }; + + P8_34_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","pwm", "hdmi"; + pinctrl-0 = <&P8_34_default_pin>; + pinctrl-1 = <&P8_34_gpio_pin>; + pinctrl-2 = <&P8_34_gpio_pu_pin>; + pinctrl-3 = <&P8_34_gpio_pd_pin>; + pinctrl-4 = <&P8_34_pwm_pin>; + pinctrl-5 = <&P8_34_hdmi_pin>; + }; + + P8_35_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "hdmi"; + pinctrl-0 = <&P8_35_default_pin>; + pinctrl-1 = <&P8_35_gpio_pin>; + pinctrl-2 = <&P8_35_gpio_pu_pin>; + pinctrl-3 = <&P8_35_gpio_pd_pin>; + pinctrl-4 = <&P8_35_hdmi_pin>; + }; + + P8_36_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","pwm", "hdmi"; + pinctrl-0 = <&P8_36_default_pin>; + pinctrl-1 = <&P8_36_gpio_pin>; + pinctrl-2 = <&P8_36_gpio_pu_pin>; + pinctrl-3 = <&P8_36_gpio_pd_pin>; + pinctrl-4 = <&P8_36_pwm_pin>; + pinctrl-5 = <&P8_36_hdmi_pin>; + }; + P8_37_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; - pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart","pwm"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart","pwm", "hdmi"; pinctrl-0 = <&P8_37_default_pin>; pinctrl-1 = <&P8_37_gpio_pin>; pinctrl-2 = <&P8_37_gpio_pu_pin>; pinctrl-3 = <&P8_37_gpio_pd_pin>; pinctrl-4 = <&P8_37_uart_pin>; pinctrl-5 = <&P8_37_pwm_pin>; + pinctrl-6 = <&P8_37_hdmi_pin>; }; P8_38_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; - pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart","pwm"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd","uart","pwm", "hdmi"; pinctrl-0 = <&P8_38_default_pin>; pinctrl-1 = <&P8_38_gpio_pin>; pinctrl-2 = <&P8_38_gpio_pu_pin>; pinctrl-3 = <&P8_38_gpio_pd_pin>; pinctrl-4 = <&P8_38_uart_pin>; pinctrl-5 = <&P8_38_pwm_pin>; + pinctrl-6 = <&P8_38_hdmi_pin>; + }; + + P8_39_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_39_default_pin>; + pinctrl-1 = <&P8_39_gpio_pin>; + pinctrl-2 = <&P8_39_gpio_pu_pin>; + pinctrl-3 = <&P8_39_gpio_pd_pin>; + pinctrl-4 = <&P8_39_pruout_pin>; + pinctrl-5 = <&P8_39_pruin_pin>; + pinctrl-6 = <&P8_39_hdmi_pin>; + }; + + P8_40_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_40_default_pin>; + pinctrl-1 = <&P8_40_gpio_pin>; + pinctrl-2 = <&P8_40_gpio_pu_pin>; + pinctrl-3 = <&P8_40_gpio_pd_pin>; + pinctrl-4 = <&P8_40_pruout_pin>; + pinctrl-5 = <&P8_40_pruin_pin>; + pinctrl-6 = <&P8_40_hdmi_pin>; + }; + + P8_41_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_41_default_pin>; + pinctrl-1 = <&P8_41_gpio_pin>; + pinctrl-2 = <&P8_41_gpio_pu_pin>; + pinctrl-3 = <&P8_41_gpio_pd_pin>; + pinctrl-4 = <&P8_41_pruout_pin>; + pinctrl-5 = <&P8_41_pruin_pin>; + pinctrl-6 = <&P8_41_hdmi_pin>; + }; + + P8_42_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin", "hdmi"; + pinctrl-0 = <&P8_42_default_pin>; + pinctrl-1 = <&P8_42_gpio_pin>; + pinctrl-2 = <&P8_42_gpio_pu_pin>; + pinctrl-3 = <&P8_42_gpio_pd_pin>; + pinctrl-4 = <&P8_42_pruout_pin>; + pinctrl-5 = <&P8_42_pruin_pin>; + pinctrl-6 = <&P8_42_hdmi_pin>; + }; + + P8_43_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin","pwm", "hdmi"; + pinctrl-0 = <&P8_43_default_pin>; + pinctrl-1 = <&P8_43_gpio_pin>; + pinctrl-2 = <&P8_43_gpio_pu_pin>; + pinctrl-3 = <&P8_43_gpio_pd_pin>; + pinctrl-4 = <&P8_43_pruout_pin>; + pinctrl-5 = <&P8_43_pruin_pin>; + pinctrl-6 = <&P8_43_pwm_pin>; + pinctrl-7 = <&P8_43_hdmi_pin>; + }; + + P8_44_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin","pwm", "hdmi"; + pinctrl-0 = <&P8_44_default_pin>; + pinctrl-1 = <&P8_44_gpio_pin>; + pinctrl-2 = <&P8_44_gpio_pu_pin>; + pinctrl-3 = <&P8_44_gpio_pd_pin>; + pinctrl-4 = <&P8_44_pruout_pin>; + pinctrl-5 = <&P8_44_pruin_pin>; + pinctrl-6 = <&P8_44_pwm_pin>; + pinctrl-7 = <&P8_44_hdmi_pin>; + }; + + P8_45_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin","pwm", "hdmi"; + pinctrl-0 = <&P8_45_default_pin>; + pinctrl-1 = <&P8_45_gpio_pin>; + pinctrl-2 = <&P8_45_gpio_pu_pin>; + pinctrl-3 = <&P8_45_gpio_pd_pin>; + pinctrl-4 = <&P8_45_pruout_pin>; + pinctrl-5 = <&P8_45_pruin_pin>; + pinctrl-6 = <&P8_45_pwm_pin>; + pinctrl-7 = <&P8_45_hdmi_pin>; + }; + + P8_46_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "pruin","pwm", "hdmi"; + pinctrl-0 = <&P8_46_default_pin>; + pinctrl-1 = <&P8_46_gpio_pin>; + pinctrl-2 = <&P8_46_gpio_pu_pin>; + pinctrl-3 = <&P8_46_gpio_pd_pin>; + pinctrl-4 = <&P8_46_pruout_pin>; + pinctrl-5 = <&P8_46_pruin_pin>; + pinctrl-6 = <&P8_46_pwm_pin>; + pinctrl-7 = <&P8_46_hdmi_pin>; }; /************************/ - /* P9 Header */ + /* P9 Header */ /************************/ P9_11_pinmux { @@ -1415,7 +1927,7 @@ P9_25_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; - pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin", "audio"; pinctrl-0 = <&P9_25_default_pin>; pinctrl-1 = <&P9_25_gpio_pin>; pinctrl-2 = <&P9_25_gpio_pu_pin>; @@ -1423,6 +1935,7 @@ pinctrl-4 = <&P9_25_qep_pin>; pinctrl-5 = <&P9_25_pruout_pin>; pinctrl-6 = <&P9_25_pruin_pin>; + pinctrl-7 = <&P9_25_audio_pin>; }; P9_26_pinmux { @@ -1455,7 +1968,7 @@ P9_28_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; - pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pwm2", "pruout", "pruin"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pwm2", "pruout", "pruin", "audio"; pinctrl-0 = <&P9_28_default_pin>; pinctrl-1 = <&P9_28_gpio_pin>; pinctrl-2 = <&P9_28_gpio_pu_pin>; @@ -1465,12 +1978,13 @@ pinctrl-6 = <&P9_28_pwm2_pin>; pinctrl-7 = <&P9_28_pruout_pin>; pinctrl-8 = <&P9_28_pruin_pin>; + pinctrl-9 = <&P9_28_audio_pin>; }; P9_29_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; - pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin", "audio"; pinctrl-0 = <&P9_29_default_pin>; pinctrl-1 = <&P9_29_gpio_pin>; pinctrl-2 = <&P9_29_gpio_pu_pin>; @@ -1479,6 +1993,7 @@ pinctrl-5 = <&P9_29_spi_pin>; pinctrl-6 = <&P9_29_pruout_pin>; pinctrl-7 = <&P9_29_pruin_pin>; + pinctrl-8 = <&P9_29_audio_pin>; }; P9_30_pinmux { @@ -1498,7 +2013,7 @@ P9_31_pinmux { compatible = "bone-pinmux-helper"; status = "okay"; - pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin"; + pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin", "audio"; pinctrl-0 = <&P9_31_default_pin>; pinctrl-1 = <&P9_31_gpio_pin>; pinctrl-2 = <&P9_31_gpio_pu_pin>; @@ -1507,6 +2022,7 @@ pinctrl-5 = <&P9_31_spi_pin>; pinctrl-6 = <&P9_31_pruout_pin>; pinctrl-7 = <&P9_31_pruin_pin>; + pinctrl-8 = <&P9_31_audio_pin>; }; P9_41_pinmux { @@ -1645,12 +2161,134 @@ input; dir-changeable; }; + P8_26 { gpio-name = "P8_26"; gpio = <&gpio1 29 0>; input; dir-changeable; }; + P8_27 { + gpio-name = "P8_27"; + gpio = <&gpio2 22 0>; + input; + dir-changeable; + }; + P8_28 { + gpio-name = "P8_28"; + gpio = <&gpio2 24 0>; + input; + dir-changeable; + }; + P8_29 { + gpio-name = "P8_29"; + gpio = <&gpio2 23 0>; + input; + dir-changeable; + }; + P8_30 { + gpio-name = "P8_30"; + gpio = <&gpio2 25 0>; + input; + dir-changeable; + }; + P8_31 { + gpio-name = "P8_31"; + gpio = <&gpio0 10 0>; + input; + dir-changeable; + }; + P8_32 { + gpio-name = "P8_32"; + gpio = <&gpio0 11 0>; + input; + dir-changeable; + }; + P8_33 { + gpio-name = "P8_33"; + gpio = <&gpio0 9 0>; + input; + dir-changeable; + }; + P8_34 { + gpio-name = "P8_34"; + gpio = <&gpio2 17 0>; + input; + dir-changeable; + }; + P8_35 { + gpio-name = "P8_35"; + gpio = <&gpio0 8 0>; + input; + dir-changeable; + }; + P8_36 { + gpio-name = "P8_36"; + gpio = <&gpio2 16 0>; + input; + dir-changeable; + }; + P8_37 { + gpio-name = "P8_37"; + gpio = <&gpio2 14 0>; + input; + dir-changeable; + }; + P8_38 { + gpio-name = "P8_38"; + gpio = <&gpio2 15 0>; + input; + dir-changeable; + }; + P8_39 { + gpio-name = "P8_39"; + gpio = <&gpio2 12 0>; + input; + dir-changeable; + }; + P8_40 { + gpio-name = "P8_40"; + gpio = <&gpio2 13 0>; + input; + dir-changeable; + }; + P8_41 { + gpio-name = "P8_41"; + gpio = <&gpio2 10 0>; + input; + dir-changeable; + }; + P8_42 { + gpio-name = "P8_42"; + gpio = <&gpio2 11 0>; + input; + dir-changeable; + }; + P8_43 { + gpio-name = "P8_43"; + gpio = <&gpio2 8 0>; + input; + dir-changeable; + }; + P8_44 { + gpio-name = "P8_44"; + gpio = <&gpio2 9 0>; + input; + dir-changeable; + }; + P8_45 { + gpio-name = "P8_45"; + gpio = <&gpio2 6 0>; + input; + dir-changeable; + }; + P8_46 { + gpio-name = "P8_46"; + gpio = <&gpio2 7 0>; + input; + dir-changeable; + }; + P9_11 { gpio-name = "P9_11"; diff --git a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi index 646656047b491..ed9861e19258b 100644 --- a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi +++ b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-audio.dtsi @@ -8,27 +8,81 @@ &ocp { /* hdmi */ + P8_27_pinmux { + mode = "hdmi"; + }; + P8_28_pinmux { + mode = "hdmi"; + }; + P8_29_pinmux { + mode = "hdmi"; + }; + P8_30_pinmux { + mode = "hdmi"; + }; + P8_31_pinmux { + mode = "hdmi"; + }; + P8_32_pinmux { + mode = "hdmi"; + }; + P8_33_pinmux { + mode = "hdmi"; + }; + P8_34_pinmux { + mode = "hdmi"; + }; + P8_35_pinmux { + mode = "hdmi"; + }; + P8_36_pinmux { + mode = "hdmi"; + }; P8_37_pinmux { - status = "disabled"; + mode = "hdmi"; }; P8_38_pinmux { - status = "disabled"; + mode = "hdmi"; + }; + P8_39_pinmux { + mode = "hdmi"; + }; + P8_40_pinmux { + mode = "hdmi"; + }; + P8_41_pinmux { + mode = "hdmi"; + }; + P8_42_pinmux { + mode = "hdmi"; + }; + P8_43_pinmux { + mode = "hdmi"; + }; + P8_44_pinmux { + mode = "hdmi"; + }; + P8_45_pinmux { + mode = "hdmi"; + }; + P8_46_pinmux { + mode = "hdmi"; }; /* audio */ P9_25_pinmux { - status = "disabled"; + mode = "audio"; }; P9_28_pinmux { - status = "disabled"; + mode = "audio"; }; P9_29_pinmux { - status = "disabled"; + mode = "audio"; }; P9_31_pinmux { - status = "disabled"; + mode = "audio"; }; P9_41_pinmux { - status = "disabled"; + mode = "audio"; }; }; @@ -38,7 +92,7 @@ &mcasp0 { pinctrl-names = "default"; - pinctrl-0 = <&mcasp0_pins>; + pinctrl-0 = <&mcasp0_clken>; status = "okay"; op-mode = <0>; /* MCASP_IIS_MODE */ tdm-slots = <2>; @@ -54,7 +108,8 @@ compatible = "ti,tilcdc,slave"; i2c = <&i2c0>; pinctrl-names = "default", "off"; - pinctrl-0 = <&nxp_hdmi_bonelt_pins>; + /* pinctrl-0 = <&nxp_hdmi_bonelt_pins>; */ + pinctrl-0 = <&nxp_hdmi_bonelt_off_pins>; pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; status = "okay"; }; diff --git a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi index 63d0214084071..2085aa0182973 100644 --- a/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi +++ b/arch/arm/boot/dts/am335x-boneblack-nxp-hdmi-no-audio.dtsi @@ -8,11 +8,65 @@ &ocp { /* hdmi */ + P8_27_pinmux { + mode = "hdmi"; + }; + P8_28_pinmux { + mode = "hdmi"; + }; + P8_29_pinmux { + mode = "hdmi"; + }; + P8_30_pinmux { + mode = "hdmi"; + }; + P8_31_pinmux { + mode = "hdmi"; + }; + P8_32_pinmux { + mode = "hdmi"; + }; + P8_33_pinmux { + mode = "hdmi"; + }; + P8_34_pinmux { + mode = "hdmi"; + }; + P8_35_pinmux { + mode = "hdmi"; + }; + P8_36_pinmux { + mode = "hdmi"; + }; P8_37_pinmux { - status = "disabled"; + mode = "hdmi"; }; P8_38_pinmux { - status = "disabled"; + mode = "hdmi"; + }; + P8_39_pinmux { + mode = "hdmi"; + }; + P8_40_pinmux { + mode = "hdmi"; + }; + P8_41_pinmux { + mode = "hdmi"; + }; + P8_42_pinmux { + mode = "hdmi"; + }; + P8_43_pinmux { + mode = "hdmi"; + }; + P8_44_pinmux { + mode = "hdmi"; + }; + P8_45_pinmux { + mode = "hdmi"; + }; + P8_46_pinmux { + mode = "hdmi"; }; }; @@ -25,7 +79,8 @@ compatible = "ti,tilcdc,slave"; i2c = <&i2c0>; pinctrl-names = "default", "off"; - pinctrl-0 = <&nxp_hdmi_bonelt_pins>; + /* pinctrl-0 = <&nxp_hdmi_bonelt_pins>; */ + pinctrl-0 = <&nxp_hdmi_bonelt_off_pins>; pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; status = "okay"; };