mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-21 06:35:53 +00:00
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
101 lines
2.5 KiB
C
101 lines
2.5 KiB
C
/*
|
|
* omap_usb.h -- omap usb2 phy header file
|
|
*
|
|
* 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 as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Author: Kishon Vijay Abraham I <kishon@ti.com>
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#ifndef __DRIVERS_OMAP_USB2_H
|
|
#define __DRIVERS_OMAP_USB2_H
|
|
|
|
#include <linux/io.h>
|
|
#include <linux/usb/otg.h>
|
|
|
|
struct usb_dpll_params {
|
|
u16 m;
|
|
u8 n;
|
|
u8 freq:3;
|
|
u8 sd;
|
|
u32 mf;
|
|
};
|
|
|
|
enum omap_usb_phy_type {
|
|
TYPE_USB2, /* USB2_PHY, power down in CONTROL_DEV_CONF */
|
|
TYPE_DRA7USB2, /* USB2 PHY, power and power_aux e.g. DRA7 */
|
|
TYPE_AM437USB2, /* USB2 PHY, power e.g. AM437x */
|
|
};
|
|
|
|
struct omap_usb {
|
|
struct usb_phy phy;
|
|
struct phy_companion *comparator;
|
|
void __iomem *pll_ctrl_base;
|
|
void __iomem *phy_base;
|
|
struct device *dev;
|
|
struct device *control_dev;
|
|
struct clk *wkupclk;
|
|
struct clk *optclk;
|
|
u8 flags;
|
|
enum omap_usb_phy_type type;
|
|
struct regmap *syscon_phy_power; /* ctrl. reg. acces */
|
|
unsigned int power_reg; /* power reg. index within syscon */
|
|
u32 mask;
|
|
u32 power_on;
|
|
u32 power_off;
|
|
};
|
|
|
|
struct usb_phy_data {
|
|
const char *label;
|
|
u8 flags;
|
|
u32 mask;
|
|
u32 power_on;
|
|
u32 power_off;
|
|
};
|
|
|
|
/* Driver Flags */
|
|
#define OMAP_USB2_HAS_START_SRP (1 << 0)
|
|
#define OMAP_USB2_HAS_SET_VBUS (1 << 1)
|
|
#define OMAP_USB2_CALIBRATE_FALSE_DISCONNECT (1 << 2)
|
|
|
|
#define OMAP_DEV_PHY_PD BIT(0)
|
|
#define OMAP_USB2_PHY_PD BIT(28)
|
|
|
|
#define AM437X_USB2_PHY_PD BIT(0)
|
|
#define AM437X_USB2_OTG_PD BIT(1)
|
|
#define AM437X_USB2_OTGVDET_EN BIT(19)
|
|
#define AM437X_USB2_OTGSESSEND_EN BIT(20)
|
|
|
|
#define phy_to_omapusb(x) container_of((x), struct omap_usb, phy)
|
|
|
|
#if defined(CONFIG_OMAP_USB2) || defined(CONFIG_OMAP_USB2_MODULE)
|
|
extern int omap_usb2_set_comparator(struct phy_companion *comparator);
|
|
#else
|
|
static inline int omap_usb2_set_comparator(struct phy_companion *comparator)
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
#endif
|
|
|
|
static inline u32 omap_usb_readl(void __iomem *addr, unsigned offset)
|
|
{
|
|
return __raw_readl(addr + offset);
|
|
}
|
|
|
|
static inline void omap_usb_writel(void __iomem *addr, unsigned offset,
|
|
u32 data)
|
|
{
|
|
__raw_writel(data, addr + offset);
|
|
}
|
|
|
|
#endif /* __DRIVERS_OMAP_USB_H */
|