diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/db8500-prcmu.h | 10 | ||||
| -rw-r--r-- | include/linux/mfd/dbx500-prcmu.h | 38 | ||||
| -rw-r--r-- | include/linux/platform_data/arm-ux500-pm.h | 21 | ||||
| -rw-r--r-- | include/linux/platform_data/asoc-ux500-msp.h | 27 | ||||
| -rw-r--r-- | include/linux/platform_data/clk-ux500.h | 3 | ||||
| -rw-r--r-- | include/linux/platform_data/mmc-sdhci-s3c.h | 56 | ||||
| -rw-r--r-- | include/linux/tegra-powergate.h | 49 | 
7 files changed, 162 insertions, 42 deletions
| diff --git a/include/linux/mfd/db8500-prcmu.h b/include/linux/mfd/db8500-prcmu.h index 77a46ae2fc1..0bd69446bb0 100644 --- a/include/linux/mfd/db8500-prcmu.h +++ b/include/linux/mfd/db8500-prcmu.h @@ -489,7 +489,7 @@ struct prcmu_auto_pm_config {  #ifdef CONFIG_MFD_DB8500_PRCMU -void db8500_prcmu_early_init(void); +void db8500_prcmu_early_init(u32 phy_base, u32 size);  int prcmu_set_rc_a2p(enum romcode_write);  enum romcode_read prcmu_get_rc_p2a(void);  enum ap_pwrst prcmu_get_xp70_current_state(void); @@ -522,12 +522,6 @@ int db8500_prcmu_load_a9wdog(u8 id, u32 val);  void db8500_prcmu_system_reset(u16 reset_code);  int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll);  u8 db8500_prcmu_get_power_state_result(void); -int db8500_prcmu_gic_decouple(void); -int db8500_prcmu_gic_recouple(void); -int db8500_prcmu_copy_gic_settings(void); -bool db8500_prcmu_gic_pending_irq(void); -bool db8500_prcmu_pending_irq(void); -bool db8500_prcmu_is_cpu_in_wfi(int cpu);  void db8500_prcmu_enable_wakeups(u32 wakeups);  int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state);  int db8500_prcmu_request_clock(u8 clock, bool enable); @@ -553,7 +547,7 @@ void db8500_prcmu_write_masked(unsigned int reg, u32 mask, u32 value);  #else /* !CONFIG_MFD_DB8500_PRCMU */ -static inline void db8500_prcmu_early_init(void) {} +static inline void db8500_prcmu_early_init(u32 phy_base, u32 size) {}  static inline int prcmu_set_rc_a2p(enum romcode_write code)  { diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h index 3abcca91eec..689e6a0d9c9 100644 --- a/include/linux/mfd/dbx500-prcmu.h +++ b/include/linux/mfd/dbx500-prcmu.h @@ -237,6 +237,8 @@ struct prcmu_pdata  	bool enable_set_ddr_opp;  	bool enable_ape_opp_100_voltage;  	struct ab8500_platform_data *ab_platdata; +	int ab_irq; +	int irq_base;  	u32 version_offset;  	u32 legacy_offset;  	u32 adt_offset; @@ -276,9 +278,9 @@ struct prcmu_fw_version {  #if defined(CONFIG_UX500_SOC_DB8500) -static inline void __init prcmu_early_init(void) +static inline void prcmu_early_init(u32 phy_base, u32 size)  { -	return db8500_prcmu_early_init(); +	return db8500_prcmu_early_init(phy_base, size);  }  static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk, @@ -293,36 +295,6 @@ static inline u8 prcmu_get_power_state_result(void)  	return db8500_prcmu_get_power_state_result();  } -static inline int prcmu_gic_decouple(void) -{ -	return db8500_prcmu_gic_decouple(); -} - -static inline int prcmu_gic_recouple(void) -{ -	return db8500_prcmu_gic_recouple(); -} - -static inline bool prcmu_gic_pending_irq(void) -{ -	return db8500_prcmu_gic_pending_irq(); -} - -static inline bool prcmu_is_cpu_in_wfi(int cpu) -{ -	return db8500_prcmu_is_cpu_in_wfi(cpu); -} - -static inline int prcmu_copy_gic_settings(void) -{ -	return db8500_prcmu_copy_gic_settings(); -} - -static inline bool prcmu_pending_irq(void) -{ -	return db8500_prcmu_pending_irq(); -} -  static inline int prcmu_set_epod(u16 epod_id, u8 epod_state)  {  	return db8500_prcmu_set_epod(epod_id, epod_state); @@ -500,7 +472,7 @@ static inline int prcmu_config_a9wdog(u8 num, bool sleep_auto_off)  }  #else -static inline void __init prcmu_early_init(void) {} +static inline void prcmu_early_init(u32 phy_base, u32 size) {}  static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk,  	bool keep_ap_pll) diff --git a/include/linux/platform_data/arm-ux500-pm.h b/include/linux/platform_data/arm-ux500-pm.h new file mode 100644 index 00000000000..8dff64b29ec --- /dev/null +++ b/include/linux/platform_data/arm-ux500-pm.h @@ -0,0 +1,21 @@ +/* + * Copyright (C) ST-Ericsson SA 2010-2013 + * Author: Rickard Andersson <rickard.andersson@stericsson.com> for + *         ST-Ericsson. + * Author: Daniel Lezcano <daniel.lezcano@linaro.org> for Linaro. + * License terms: GNU General Public License (GPL) version 2 + * + */ + +#ifndef ARM_UX500_PM_H +#define ARM_UX500_PM_H + +int prcmu_gic_decouple(void); +int prcmu_gic_recouple(void); +bool prcmu_gic_pending_irq(void); +bool prcmu_pending_irq(void); +bool prcmu_is_cpu_in_wfi(int cpu); +int prcmu_copy_gic_settings(void); +void ux500_pm_init(u32 phy_base, u32 size); + +#endif /* ARM_UX500_PM_H */ diff --git a/include/linux/platform_data/asoc-ux500-msp.h b/include/linux/platform_data/asoc-ux500-msp.h new file mode 100644 index 00000000000..9991aea3d57 --- /dev/null +++ b/include/linux/platform_data/asoc-ux500-msp.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) ST-Ericsson SA 2010 + * + * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson + * License terms: GNU General Public License (GPL), version 2. + */ + +#ifndef __MSP_H +#define __MSP_H + +#include <linux/platform_data/dma-ste-dma40.h> + +enum msp_i2s_id { +	MSP_I2S_0 = 0, +	MSP_I2S_1, +	MSP_I2S_2, +	MSP_I2S_3, +}; + +/* Platform data structure for a MSP I2S-device */ +struct msp_i2s_platform_data { +	enum msp_i2s_id id; +	struct stedma40_chan_cfg *msp_i2s_dma_rx; +	struct stedma40_chan_cfg *msp_i2s_dma_tx; +}; + +#endif diff --git a/include/linux/platform_data/clk-ux500.h b/include/linux/platform_data/clk-ux500.h index 3af0da1f3be..320d9c39ea0 100644 --- a/include/linux/platform_data/clk-ux500.h +++ b/include/linux/platform_data/clk-ux500.h @@ -10,7 +10,8 @@  #ifndef __CLK_UX500_H  #define __CLK_UX500_H -void u8500_clk_init(void); +void u8500_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, +		    u32 clkrst5_base, u32 clkrst6_base);  void u9540_clk_init(void);  void u8540_clk_init(void); diff --git a/include/linux/platform_data/mmc-sdhci-s3c.h b/include/linux/platform_data/mmc-sdhci-s3c.h new file mode 100644 index 00000000000..249f02387a3 --- /dev/null +++ b/include/linux/platform_data/mmc-sdhci-s3c.h @@ -0,0 +1,56 @@ +#ifndef __PLATFORM_DATA_SDHCI_S3C_H +#define __PLATFORM_DATA_SDHCI_S3C_H + +struct platform_device; + +enum cd_types { +	S3C_SDHCI_CD_INTERNAL,	/* use mmc internal CD line */ +	S3C_SDHCI_CD_EXTERNAL,	/* use external callback */ +	S3C_SDHCI_CD_GPIO,	/* use external gpio pin for CD line */ +	S3C_SDHCI_CD_NONE,	/* no CD line, use polling to detect card */ +	S3C_SDHCI_CD_PERMANENT,	/* no CD line, card permanently wired to host */ +}; + +/** + * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI + * @max_width: The maximum number of data bits supported. + * @host_caps: Standard MMC host capabilities bit field. + * @host_caps2: The second standard MMC host capabilities bit field. + * @cd_type: Type of Card Detection method (see cd_types enum above) + * @ext_cd_init: Initialize external card detect subsystem. Called on + *		 sdhci-s3c driver probe when cd_type == S3C_SDHCI_CD_EXTERNAL. + *		 notify_func argument is a callback to the sdhci-s3c driver + *		 that triggers the card detection event. Callback arguments: + *		 dev is pointer to platform device of the host controller, + *		 state is new state of the card (0 - removed, 1 - inserted). + * @ext_cd_cleanup: Cleanup external card detect subsystem. Called on + *		 sdhci-s3c driver remove when cd_type == S3C_SDHCI_CD_EXTERNAL. + *		 notify_func argument is the same callback as for ext_cd_init. + * @ext_cd_gpio: gpio pin used for external CD line, valid only if + *		 cd_type == S3C_SDHCI_CD_GPIO + * @ext_cd_gpio_invert: invert values for external CD gpio line + * @cfg_gpio: Configure the GPIO for a specific card bit-width + * + * Initialisation data specific to either the machine or the platform + * for the device driver to use or call-back when configuring gpio or + * card speed information. +*/ +struct s3c_sdhci_platdata { +	unsigned int	max_width; +	unsigned int	host_caps; +	unsigned int	host_caps2; +	unsigned int	pm_caps; +	enum cd_types	cd_type; + +	int		ext_cd_gpio; +	bool		ext_cd_gpio_invert; +	int	(*ext_cd_init)(void (*notify_func)(struct platform_device *, +						   int state)); +	int	(*ext_cd_cleanup)(void (*notify_func)(struct platform_device *, +						      int state)); + +	void	(*cfg_gpio)(struct platform_device *dev, int width); +}; + + +#endif /* __PLATFORM_DATA_SDHCI_S3C_H */ diff --git a/include/linux/tegra-powergate.h b/include/linux/tegra-powergate.h new file mode 100644 index 00000000000..55c29a8d501 --- /dev/null +++ b/include/linux/tegra-powergate.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2010 Google, Inc + * + * Author: + *	Colin Cross <ccross@google.com> + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * 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 _MACH_TEGRA_POWERGATE_H_ +#define _MACH_TEGRA_POWERGATE_H_ + +struct clk; + +#define TEGRA_POWERGATE_CPU	0 +#define TEGRA_POWERGATE_3D	1 +#define TEGRA_POWERGATE_VENC	2 +#define TEGRA_POWERGATE_PCIE	3 +#define TEGRA_POWERGATE_VDEC	4 +#define TEGRA_POWERGATE_L2	5 +#define TEGRA_POWERGATE_MPE	6 +#define TEGRA_POWERGATE_HEG	7 +#define TEGRA_POWERGATE_SATA	8 +#define TEGRA_POWERGATE_CPU1	9 +#define TEGRA_POWERGATE_CPU2	10 +#define TEGRA_POWERGATE_CPU3	11 +#define TEGRA_POWERGATE_CELP	12 +#define TEGRA_POWERGATE_3D1	13 + +#define TEGRA_POWERGATE_CPU0	TEGRA_POWERGATE_CPU +#define TEGRA_POWERGATE_3D0	TEGRA_POWERGATE_3D + +int tegra_powergate_is_powered(int id); +int tegra_powergate_power_on(int id); +int tegra_powergate_power_off(int id); +int tegra_powergate_remove_clamping(int id); + +/* Must be called with clk disabled, and returns with clk enabled */ +int tegra_powergate_sequence_power_up(int id, struct clk *clk); + +#endif /* _MACH_TEGRA_POWERGATE_H_ */ |