Fist set of fixes for omaps for v4.10-rc cycle, mostly
to deal with various regressions noticed during the merge window and to fix various device tree configurations for boards. Also included is removal of mach-omap2/gpio.c that is now dead code with device tree based booting that should be OK for the early -rc cycle: - A series of fixes to add empty chosen node to fix regressions caused for bootloaders that don't create chosen node as the decompressor needs the chosen node to merge command line and ATAGs into it - Fix missing logicpd-som-lv-37xx-devkit.dtb entry in Makefile - Fix regression for am437x timers - Fix wrong strcat for non-NULL terminated string - A series of changes to fix tps65217 interrupts to not use defines as we don't do that for interrupts - Two patches to fix USB VBUS detection on am57xx-idk and force it to peripheral mode until dwc3 role detection is working - Add missing dra72-evm-tps65917 missing voltage supplies accidentally left out of an earlier patch - Fix n900 eMMC detection when booted on qemu - Remove unwanted pr_err on failed memory allocation for prm_common.c - Remove legacy mach-omap2/gpio.c that now is dead code since we boot mach-omap2 in device tree only mode - Fix am572x-idk pcie1 by adding the missing gpio reset pin -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlhmsscRHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXNiYA/+IA8G8Ik93lmVQfdvVtnPcgVsNbWZvQVW Nhgs+Q0dbcK7ZVYSNyymjUlNtFMwHljRuJQOqv/XMK1xcTLFX1PGuZyBDZeEjwlt PAFh1SwpNc/gn/ePx5T6fhnfxlHyiD0M1MFgqe169ndj2VFjQvNGyey4kxW5KMKB f9rWeM7EbLC4FaLs69UDR5XRmgmoeTmAfA+NNJFWfcbBJpzSQiFLoUISQlcXWuVf gv+/dvWEX0o0xGVoIuaK8zxqGveNWKkETlUylSi7q64PsGWu1LXxaeblvK5fCcE0 /fYWFFHS/LFa2+wh79d3Anh693TBT9n/UvnFkDDNUWNTNrYWyppeQ79hLTvoF0ha GVp0AEfrhcnlXHD4QO+VMMsJPll1Xm7r7oiSJh8MzDbHbuPC81BrbHcyssQ9ujzf WVTnEE9wv3sriwTrCspXOdZn4DdyAzAABV9W17A0HabUEfnhggHxhXKK5awtNqoh YQvVj4VnY2DRFFmIUUOazIs0Sp+jSonhdv/UQ8TZRTfHwE42C9LMuKYIDzQ9+xcc PY4edJ1ynIPLeiTZN8sVrorpCZASOoWFkGGgoP/wyPc3zG/9FdDnRSqcVFQpnfWR uSV5WibLr2ifBlIRXWH7meb9dHH2t+CY2NnDkH8Oa7/6HUvzx2rs+04fZ8MV+jCK nY1kFeJu1Go= =UNWK -----END PGP SIGNATURE----- Merge tag 'omap-for-v4.10/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Pull "omap fixes for v4.10-rc cycle" from Tony Lindgren: Fist set of fixes for omaps for v4.10-rc cycle, mostly to deal with various regressions noticed during the merge window and to fix various device tree configurations for boards. Also included is removal of mach-omap2/gpio.c that is now dead code with device tree based booting that should be OK for the early -rc cycle: - A series of fixes to add empty chosen node to fix regressions caused for bootloaders that don't create chosen node as the decompressor needs the chosen node to merge command line and ATAGs into it - Fix missing logicpd-som-lv-37xx-devkit.dtb entry in Makefile - Fix regression for am437x timers - Fix wrong strcat for non-NULL terminated string - A series of changes to fix tps65217 interrupts to not use defines as we don't do that for interrupts - Two patches to fix USB VBUS detection on am57xx-idk and force it to peripheral mode until dwc3 role detection is working - Add missing dra72-evm-tps65917 missing voltage supplies accidentally left out of an earlier patch - Fix n900 eMMC detection when booted on qemu - Remove unwanted pr_err on failed memory allocation for prm_common.c - Remove legacy mach-omap2/gpio.c that now is dead code since we boot mach-omap2 in device tree only mode - Fix am572x-idk pcie1 by adding the missing gpio reset pin * tag 'omap-for-v4.10/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (23 commits) ARM: dts: am572x-idk: Add gpios property to control PCIE_RESETn ARM: OMAP2+: PRM: Delete an error message for a failed memory allocation ARM: dts: n900: Mark eMMC slot with no-sdio and no-sd flags ARM: dts: dra72-evm-tps65917: Add voltage supplies to usb_phy, mmc, dss ARM: dts: am57xx-idk: Put USB2 port in peripheral mode ARM: dts: am57xx-idk: Support VBUS detection on USB2 port dt-bindings: input: Specify the interrupt number of TPS65217 power button dt-bindings: power/supply: Update TPS65217 properties dt-bindings: mfd: Remove TPS65217 interrupts ARM: dts: am335x: Fix the interrupt name of TPS65217 ARM: omap2+: fixing wrong strcat for Non-NULL terminated string ARM: omap2+: am437x: rollback to use omap3_gptimer_timer_init() ARM: dts: omap3: Add DTS for Logic PD SOM-LV 37xx Dev Kit ARM: dts: dra7: Add an empty chosen node to top level DTSI ARM: dts: dm816x: Add an empty chosen node to top level DTSI ARM: dts: dm814x: Add an empty chosen node to top level DTSI ARM: dts: am4372: Add an empty chosen node to top level DTSI ARM: dts: am33xx: Add an empty chosen node to top level DTSI ARM: dts: omap5: Add an empty chosen node to top level DTSI ARM: dts: omap4: Add an empty chosen node to top level DTSI ...
This commit is contained in:
commit
46a3bf8071
26 changed files with 74 additions and 221 deletions
|
@ -8,8 +8,9 @@ This driver provides a simple power button event via an Interrupt.
|
|||
Required properties:
|
||||
- compatible: should be "ti,tps65217-pwrbutton" or "ti,tps65218-pwrbutton"
|
||||
|
||||
Required properties for TPS65218:
|
||||
Required properties:
|
||||
- interrupts: should be one of the following
|
||||
- <2>: For controllers compatible with tps65217
|
||||
- <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps65218
|
||||
|
||||
Examples:
|
||||
|
@ -17,6 +18,7 @@ Examples:
|
|||
&tps {
|
||||
tps65217-pwrbutton {
|
||||
compatible = "ti,tps65217-pwrbutton";
|
||||
interrupts = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -2,11 +2,16 @@ TPS65217 Charger
|
|||
|
||||
Required Properties:
|
||||
-compatible: "ti,tps65217-charger"
|
||||
-interrupts: TPS65217 interrupt numbers for the AC and USB charger input change.
|
||||
Should be <0> for the USB charger and <1> for the AC adapter.
|
||||
-interrupt-names: Should be "USB" and "AC"
|
||||
|
||||
This node is a subnode of the tps65217 PMIC.
|
||||
|
||||
Example:
|
||||
|
||||
tps65217-charger {
|
||||
compatible = "ti,tps65090-charger";
|
||||
compatible = "ti,tps65217-charger";
|
||||
interrupts = <0>, <1>;
|
||||
interrupt-names = "USB", "AC";
|
||||
};
|
||||
|
|
|
@ -501,6 +501,7 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
|
|||
am3517-evm.dtb \
|
||||
am3517_mt_ventoux.dtb \
|
||||
logicpd-torpedo-37xx-devkit.dtb \
|
||||
logicpd-som-lv-37xx-devkit.dtb \
|
||||
omap3430-sdp.dtb \
|
||||
omap3-beagle.dtb \
|
||||
omap3-beagle-xm.dtb \
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/mfd/tps65217.h>
|
||||
|
||||
/ {
|
||||
cpus {
|
||||
cpu@0 {
|
||||
|
@ -319,13 +317,13 @@
|
|||
ti,pmic-shutdown-controller;
|
||||
|
||||
charger {
|
||||
interrupts = <TPS65217_IRQ_AC>, <TPS65217_IRQ_USB>;
|
||||
interrupts-names = "AC", "USB";
|
||||
interrupts = <0>, <1>;
|
||||
interrupt-names = "USB", "AC";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pwrbutton {
|
||||
interrupts = <TPS65217_IRQ_PB>;
|
||||
interrupts = <2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
interrupt-parent = <&intc>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c0;
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
interrupt-parent = <&wakeupgen>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
|
|
|
@ -62,11 +62,6 @@
|
|||
linux,default-trigger = "mmc0";
|
||||
};
|
||||
};
|
||||
|
||||
extcon_usb2: extcon_usb2 {
|
||||
compatible = "linux,extcon-usb-gpio";
|
||||
id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
|
@ -79,3 +74,8 @@
|
|||
&omap_dwc3_2 {
|
||||
extcon = <&extcon_usb2>;
|
||||
};
|
||||
|
||||
&extcon_usb2 {
|
||||
id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
|
||||
vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
|
|
@ -23,11 +23,6 @@
|
|||
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||
};
|
||||
|
||||
extcon_usb2: extcon_usb2 {
|
||||
compatible = "linux,extcon-usb-gpio";
|
||||
id-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
status-leds {
|
||||
compatible = "gpio-leds";
|
||||
cpu0-led {
|
||||
|
@ -76,6 +71,11 @@
|
|||
extcon = <&extcon_usb2>;
|
||||
};
|
||||
|
||||
&extcon_usb2 {
|
||||
id-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>;
|
||||
vbus-gpio = <&gpio3 26 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
status = "okay";
|
||||
vmmc-supply = <&v3_3d>;
|
||||
|
@ -87,3 +87,7 @@
|
|||
&sn65hvs882 {
|
||||
load-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
|
|
@ -303,6 +303,13 @@
|
|||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
extcon_usb2: tps659038_usb {
|
||||
compatible = "ti,palmas-usb-vid";
|
||||
ti,enable-vbus-detection;
|
||||
ti,enable-id-detection;
|
||||
/* ID & VBUS GPIOs provided in board dts */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -369,7 +376,7 @@
|
|||
};
|
||||
|
||||
&usb2 {
|
||||
dr_mode = "otg";
|
||||
dr_mode = "peripheral";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
interrupt-parent = <&intc>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c1;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
interrupt-parent = <&intc>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c1;
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
compatible = "ti,dra7xx";
|
||||
interrupt-parent = <&crossbar_mpu>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c1;
|
||||
|
|
|
@ -132,3 +132,19 @@
|
|||
ti,palmas-long-press-seconds = <6>;
|
||||
};
|
||||
};
|
||||
|
||||
&usb2_phy1 {
|
||||
phy-supply = <&ldo4_reg>;
|
||||
};
|
||||
|
||||
&usb2_phy2 {
|
||||
phy-supply = <&ldo4_reg>;
|
||||
};
|
||||
|
||||
&dss {
|
||||
vdda_video-supply = <&ldo5_reg>;
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
vmmc_aux-supply = <&ldo1_reg>;
|
||||
};
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
interrupt-parent = <&intc>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
|
|
|
@ -734,6 +734,8 @@
|
|||
vmmc_aux-supply = <&vsim>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
no-sdio;
|
||||
no-sd;
|
||||
};
|
||||
|
||||
&mmc3 {
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
interrupt-parent = <&intc>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c1;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
interrupt-parent = <&wakeupgen>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c1;
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
compatible = "ti,omap5";
|
||||
interrupt-parent = <&wakeupgen>;
|
||||
chosen { };
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c1;
|
||||
|
|
|
@ -7,7 +7,7 @@ ccflags-y := -I$(srctree)/$(src)/include \
|
|||
|
||||
# Common support
|
||||
obj-y := id.o io.o control.o devices.o fb.o timer.o pm.o \
|
||||
common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \
|
||||
common.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \
|
||||
omap_device.o omap-headsmp.o sram.o drm.o
|
||||
|
||||
hwmod-common = omap_hwmod.o omap_hwmod_reset.o \
|
||||
|
|
|
@ -304,7 +304,7 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)")
|
|||
.init_late = am43xx_init_late,
|
||||
.init_irq = omap_gic_of_init,
|
||||
.init_machine = omap_generic_init,
|
||||
.init_time = omap4_local_timer_init,
|
||||
.init_time = omap3_gptimer_timer_init,
|
||||
.dt_compat = am43_boards_compat,
|
||||
.restart = omap44xx_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -1,160 +0,0 @@
|
|||
/*
|
||||
* OMAP2+ specific gpio initialization
|
||||
*
|
||||
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* Author:
|
||||
* Charulatha V <charu@ti.com>
|
||||
*
|
||||
* 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 version 2.
|
||||
*
|
||||
* 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 <linux/gpio.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "omap_hwmod.h"
|
||||
#include "omap_device.h"
|
||||
#include "omap-pm.h"
|
||||
|
||||
#include "powerdomain.h"
|
||||
|
||||
static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
struct omap_gpio_platform_data *pdata;
|
||||
struct omap_gpio_dev_attr *dev_attr;
|
||||
char *name = "omap_gpio";
|
||||
int id;
|
||||
struct powerdomain *pwrdm;
|
||||
|
||||
/*
|
||||
* extract the device id from name field available in the
|
||||
* hwmod database and use the same for constructing ids for
|
||||
* gpio devices.
|
||||
* CAUTION: Make sure the name in the hwmod database does
|
||||
* not change. If changed, make corresponding change here
|
||||
* or make use of static variable mechanism to handle this.
|
||||
*/
|
||||
sscanf(oh->name, "gpio%d", &id);
|
||||
|
||||
pdata = kzalloc(sizeof(struct omap_gpio_platform_data), GFP_KERNEL);
|
||||
if (!pdata) {
|
||||
pr_err("gpio%d: Memory allocation failed\n", id);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
dev_attr = (struct omap_gpio_dev_attr *)oh->dev_attr;
|
||||
pdata->bank_width = dev_attr->bank_width;
|
||||
pdata->dbck_flag = dev_attr->dbck_flag;
|
||||
pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count;
|
||||
pdata->regs = kzalloc(sizeof(struct omap_gpio_reg_offs), GFP_KERNEL);
|
||||
if (!pdata->regs) {
|
||||
pr_err("gpio%d: Memory allocation failed\n", id);
|
||||
kfree(pdata);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
switch (oh->class->rev) {
|
||||
case 0:
|
||||
if (id == 1)
|
||||
/* non-wakeup GPIO pins for OMAP2 Bank1 */
|
||||
pdata->non_wakeup_gpios = 0xe203ffc0;
|
||||
else if (id == 2)
|
||||
/* non-wakeup GPIO pins for OMAP2 Bank2 */
|
||||
pdata->non_wakeup_gpios = 0x08700040;
|
||||
/* fall through */
|
||||
|
||||
case 1:
|
||||
pdata->regs->revision = OMAP24XX_GPIO_REVISION;
|
||||
pdata->regs->direction = OMAP24XX_GPIO_OE;
|
||||
pdata->regs->datain = OMAP24XX_GPIO_DATAIN;
|
||||
pdata->regs->dataout = OMAP24XX_GPIO_DATAOUT;
|
||||
pdata->regs->set_dataout = OMAP24XX_GPIO_SETDATAOUT;
|
||||
pdata->regs->clr_dataout = OMAP24XX_GPIO_CLEARDATAOUT;
|
||||
pdata->regs->irqstatus = OMAP24XX_GPIO_IRQSTATUS1;
|
||||
pdata->regs->irqstatus2 = OMAP24XX_GPIO_IRQSTATUS2;
|
||||
pdata->regs->irqenable = OMAP24XX_GPIO_IRQENABLE1;
|
||||
pdata->regs->irqenable2 = OMAP24XX_GPIO_IRQENABLE2;
|
||||
pdata->regs->set_irqenable = OMAP24XX_GPIO_SETIRQENABLE1;
|
||||
pdata->regs->clr_irqenable = OMAP24XX_GPIO_CLEARIRQENABLE1;
|
||||
pdata->regs->debounce = OMAP24XX_GPIO_DEBOUNCE_VAL;
|
||||
pdata->regs->debounce_en = OMAP24XX_GPIO_DEBOUNCE_EN;
|
||||
pdata->regs->ctrl = OMAP24XX_GPIO_CTRL;
|
||||
pdata->regs->wkup_en = OMAP24XX_GPIO_WAKE_EN;
|
||||
pdata->regs->leveldetect0 = OMAP24XX_GPIO_LEVELDETECT0;
|
||||
pdata->regs->leveldetect1 = OMAP24XX_GPIO_LEVELDETECT1;
|
||||
pdata->regs->risingdetect = OMAP24XX_GPIO_RISINGDETECT;
|
||||
pdata->regs->fallingdetect = OMAP24XX_GPIO_FALLINGDETECT;
|
||||
break;
|
||||
case 2:
|
||||
pdata->regs->revision = OMAP4_GPIO_REVISION;
|
||||
pdata->regs->direction = OMAP4_GPIO_OE;
|
||||
pdata->regs->datain = OMAP4_GPIO_DATAIN;
|
||||
pdata->regs->dataout = OMAP4_GPIO_DATAOUT;
|
||||
pdata->regs->set_dataout = OMAP4_GPIO_SETDATAOUT;
|
||||
pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT;
|
||||
pdata->regs->irqstatus_raw0 = OMAP4_GPIO_IRQSTATUSRAW0;
|
||||
pdata->regs->irqstatus_raw1 = OMAP4_GPIO_IRQSTATUSRAW1;
|
||||
pdata->regs->irqstatus = OMAP4_GPIO_IRQSTATUS0;
|
||||
pdata->regs->irqstatus2 = OMAP4_GPIO_IRQSTATUS1;
|
||||
pdata->regs->irqenable = OMAP4_GPIO_IRQSTATUSSET0;
|
||||
pdata->regs->irqenable2 = OMAP4_GPIO_IRQSTATUSSET1;
|
||||
pdata->regs->set_irqenable = OMAP4_GPIO_IRQSTATUSSET0;
|
||||
pdata->regs->clr_irqenable = OMAP4_GPIO_IRQSTATUSCLR0;
|
||||
pdata->regs->debounce = OMAP4_GPIO_DEBOUNCINGTIME;
|
||||
pdata->regs->debounce_en = OMAP4_GPIO_DEBOUNCENABLE;
|
||||
pdata->regs->ctrl = OMAP4_GPIO_CTRL;
|
||||
pdata->regs->wkup_en = OMAP4_GPIO_IRQWAKEN0;
|
||||
pdata->regs->leveldetect0 = OMAP4_GPIO_LEVELDETECT0;
|
||||
pdata->regs->leveldetect1 = OMAP4_GPIO_LEVELDETECT1;
|
||||
pdata->regs->risingdetect = OMAP4_GPIO_RISINGDETECT;
|
||||
pdata->regs->fallingdetect = OMAP4_GPIO_FALLINGDETECT;
|
||||
break;
|
||||
default:
|
||||
WARN(1, "Invalid gpio bank_type\n");
|
||||
kfree(pdata->regs);
|
||||
kfree(pdata);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pwrdm = omap_hwmod_get_pwrdm(oh);
|
||||
pdata->loses_context = pwrdm_can_ever_lose_context(pwrdm);
|
||||
|
||||
pdev = omap_device_build(name, id - 1, oh, pdata, sizeof(*pdata));
|
||||
kfree(pdata);
|
||||
|
||||
if (IS_ERR(pdev)) {
|
||||
WARN(1, "Can't build omap_device for %s:%s.\n",
|
||||
name, oh->name);
|
||||
return PTR_ERR(pdev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* gpio_init needs to be done before
|
||||
* machine_init functions access gpio APIs.
|
||||
* Hence gpio_init is a omap_postcore_initcall.
|
||||
*/
|
||||
static int __init omap2_gpio_init(void)
|
||||
{
|
||||
/* If dtb is there, the devices will be created dynamically */
|
||||
if (of_have_populated_dt())
|
||||
return -ENODEV;
|
||||
|
||||
return omap_hwmod_for_each_by_class("gpio", omap2_gpio_dev_init, NULL);
|
||||
}
|
||||
omap_postcore_initcall(omap2_gpio_init);
|
|
@ -741,14 +741,14 @@ static int _init_main_clk(struct omap_hwmod *oh)
|
|||
int ret = 0;
|
||||
char name[MOD_CLK_MAX_NAME_LEN];
|
||||
struct clk *clk;
|
||||
static const char modck[] = "_mod_ck";
|
||||
|
||||
/* +7 magic comes from '_mod_ck' suffix */
|
||||
if (strlen(oh->name) + 7 > MOD_CLK_MAX_NAME_LEN)
|
||||
if (strlen(oh->name) >= MOD_CLK_MAX_NAME_LEN - strlen(modck))
|
||||
pr_warn("%s: warning: cropping name for %s\n", __func__,
|
||||
oh->name);
|
||||
|
||||
strncpy(name, oh->name, MOD_CLK_MAX_NAME_LEN - 7);
|
||||
strcat(name, "_mod_ck");
|
||||
strlcpy(name, oh->name, MOD_CLK_MAX_NAME_LEN - strlen(modck));
|
||||
strlcat(name, modck, MOD_CLK_MAX_NAME_LEN);
|
||||
|
||||
clk = clk_get(NULL, name);
|
||||
if (!IS_ERR(clk)) {
|
||||
|
|
|
@ -121,10 +121,6 @@ extern struct omap_hwmod_irq_info omap2_uart3_mpu_irqs[];
|
|||
extern struct omap_hwmod_irq_info omap2_dispc_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_i2c1_mpu_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_i2c2_mpu_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_gpio1_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_gpio2_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_gpio3_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_gpio4_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_dma_system_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_mcspi1_mpu_irqs[];
|
||||
extern struct omap_hwmod_irq_info omap2_mcspi2_mpu_irqs[];
|
||||
|
|
|
@ -295,10 +295,8 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup)
|
|||
GFP_KERNEL);
|
||||
|
||||
if (!prcm_irq_chips || !prcm_irq_setup->saved_mask ||
|
||||
!prcm_irq_setup->priority_mask) {
|
||||
pr_err("PRCM: kzalloc failed\n");
|
||||
!prcm_irq_setup->priority_mask)
|
||||
goto err;
|
||||
}
|
||||
|
||||
memset(mask, 0, sizeof(mask));
|
||||
|
||||
|
|
|
@ -510,18 +510,19 @@ void __init omap3_secure_sync32k_timer_init(void)
|
|||
}
|
||||
#endif /* CONFIG_ARCH_OMAP3 */
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
|
||||
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
|
||||
defined(CONFIG_SOC_AM43XX)
|
||||
void __init omap3_gptimer_timer_init(void)
|
||||
{
|
||||
__omap_sync32k_timer_init(2, "timer_sys_ck", NULL,
|
||||
1, "timer_sys_ck", "ti,timer-alwon", true);
|
||||
|
||||
clocksource_probe();
|
||||
if (of_have_populated_dt())
|
||||
clocksource_probe();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \
|
||||
defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX)
|
||||
defined(CONFIG_SOC_DRA7XX)
|
||||
static void __init omap4_sync32k_timer_init(void)
|
||||
{
|
||||
__omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon",
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
* This header provides macros for TI TPS65217 DT bindings.
|
||||
*
|
||||
* Copyright (C) 2016 Texas Instruments
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __DT_BINDINGS_TPS65217_H__
|
||||
#define __DT_BINDINGS_TPS65217_H__
|
||||
|
||||
#define TPS65217_IRQ_USB 0
|
||||
#define TPS65217_IRQ_AC 1
|
||||
#define TPS65217_IRQ_PB 2
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue