X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=arch%2Farm%2Fmach-tegra%2Fxusb-padctl-common.h;h=f44790a65004e8a5192dbc8fc094a236c3d2adc3;hb=cd85bec36d0e0d16fedb00e0c434ed070a9c6b37;hp=a65b754f6b7d2e09cbe8504273a89dea0926f1fa;hpb=1680d7b6de2c63333d3a67c2f5f852a127e412cd;p=u-boot diff --git a/arch/arm/mach-tegra/xusb-padctl-common.h b/arch/arm/mach-tegra/xusb-padctl-common.h index a65b754f6b..f44790a650 100644 --- a/arch/arm/mach-tegra/xusb-padctl-common.h +++ b/arch/arm/mach-tegra/xusb-padctl-common.h @@ -33,8 +33,8 @@ struct tegra_xusb_phy_ops { }; struct tegra_xusb_phy { + unsigned int type; const struct tegra_xusb_phy_ops *ops; - struct tegra_xusb_padctl *padctl; }; @@ -45,8 +45,8 @@ struct tegra_xusb_padctl_pin { int iddq; }; -#define MAX_GROUPS 3 -#define MAX_PINS 6 +#define MAX_GROUPS 5 +#define MAX_PINS 7 struct tegra_xusb_padctl_group { const char *name; @@ -58,6 +58,15 @@ struct tegra_xusb_padctl_group { int iddq; }; +struct tegra_xusb_padctl_soc { + const struct tegra_xusb_padctl_lane *lanes; + unsigned int num_lanes; + const char *const *functions; + unsigned int num_functions; + struct tegra_xusb_phy *phys; + unsigned int num_phys; +}; + struct tegra_xusb_padctl_config { const char *name; @@ -66,20 +75,13 @@ struct tegra_xusb_padctl_config { }; struct tegra_xusb_padctl { + const struct tegra_xusb_padctl_soc *socdata; + struct tegra_xusb_padctl_config config; struct fdt_resource regs; - unsigned int enable; - struct tegra_xusb_phy phys[2]; - - const struct tegra_xusb_padctl_lane *lanes; - unsigned int num_lanes; - - const char *const *functions; - unsigned int num_functions; - - struct tegra_xusb_padctl_config config; }; +extern struct tegra_xusb_padctl padctl; static inline u32 padctl_readl(struct tegra_xusb_padctl *padctl, unsigned long offset) @@ -93,11 +95,7 @@ static inline void padctl_writel(struct tegra_xusb_padctl *padctl, writel(value, padctl->regs.start + offset); } -extern struct tegra_xusb_padctl *padctl; - -int tegra_xusb_padctl_parse_dt(struct tegra_xusb_padctl *padctl, - const void *fdt, int node); -int tegra_xusb_padctl_config_apply(struct tegra_xusb_padctl *padctl, - struct tegra_xusb_padctl_config *config); +int tegra_xusb_process_nodes(const void *fdt, int nodes[], unsigned int count, + const struct tegra_xusb_padctl_soc *socdata); #endif