root/include/linux/phy/omap_usb.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. omap_usb2_set_comparator
  2. omap_usb_readl
  3. omap_usb_writel

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * omap_usb.h -- omap usb2 phy header file
   4  *
   5  * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com
   6  * Author: Kishon Vijay Abraham I <kishon@ti.com>
   7  */
   8 
   9 #ifndef __DRIVERS_OMAP_USB2_H
  10 #define __DRIVERS_OMAP_USB2_H
  11 
  12 #include <linux/io.h>
  13 #include <linux/usb/otg.h>
  14 
  15 struct usb_dpll_params {
  16         u16     m;
  17         u8      n;
  18         u8      freq:3;
  19         u8      sd;
  20         u32     mf;
  21 };
  22 
  23 enum omap_usb_phy_type {
  24         TYPE_USB2,    /* USB2_PHY, power down in CONTROL_DEV_CONF */
  25         TYPE_DRA7USB2, /* USB2 PHY, power and power_aux e.g. DRA7 */
  26         TYPE_AM437USB2, /* USB2 PHY, power e.g. AM437x */
  27 };
  28 
  29 struct omap_usb {
  30         struct usb_phy          phy;
  31         struct phy_companion    *comparator;
  32         void __iomem            *pll_ctrl_base;
  33         void __iomem            *phy_base;
  34         struct device           *dev;
  35         struct device           *control_dev;
  36         struct clk              *wkupclk;
  37         struct clk              *optclk;
  38         u8                      flags;
  39         enum omap_usb_phy_type  type;
  40         struct regmap           *syscon_phy_power; /* ctrl. reg. acces */
  41         unsigned int            power_reg; /* power reg. index within syscon */
  42         u32                     mask;
  43         u32                     power_on;
  44         u32                     power_off;
  45 };
  46 
  47 struct usb_phy_data {
  48         const char *label;
  49         u8 flags;
  50         u32 mask;
  51         u32 power_on;
  52         u32 power_off;
  53 };
  54 
  55 /* Driver Flags */
  56 #define OMAP_USB2_HAS_START_SRP (1 << 0)
  57 #define OMAP_USB2_HAS_SET_VBUS (1 << 1)
  58 #define OMAP_USB2_CALIBRATE_FALSE_DISCONNECT (1 << 2)
  59 
  60 #define OMAP_DEV_PHY_PD         BIT(0)
  61 #define OMAP_USB2_PHY_PD        BIT(28)
  62 
  63 #define AM437X_USB2_PHY_PD              BIT(0)
  64 #define AM437X_USB2_OTG_PD              BIT(1)
  65 #define AM437X_USB2_OTGVDET_EN          BIT(19)
  66 #define AM437X_USB2_OTGSESSEND_EN       BIT(20)
  67 
  68 #define phy_to_omapusb(x)       container_of((x), struct omap_usb, phy)
  69 
  70 #if defined(CONFIG_OMAP_USB2) || defined(CONFIG_OMAP_USB2_MODULE)
  71 extern int omap_usb2_set_comparator(struct phy_companion *comparator);
  72 #else
  73 static inline int omap_usb2_set_comparator(struct phy_companion *comparator)
  74 {
  75         return -ENODEV;
  76 }
  77 #endif
  78 
  79 static inline u32 omap_usb_readl(void __iomem *addr, unsigned offset)
  80 {
  81         return __raw_readl(addr + offset);
  82 }
  83 
  84 static inline void omap_usb_writel(void __iomem *addr, unsigned offset,
  85         u32 data)
  86 {
  87         __raw_writel(data, addr + offset);
  88 }
  89 
  90 #endif /* __DRIVERS_OMAP_USB_H */

/* [<][>][^][v][top][bottom][index][help] */