404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.129.218.121: ~ $
/*
 * Copyright (c) 201 Broadcom Corporation
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _LINUX_BRCMFMAC_PLATFORM_H
#define _LINUX_BRCMFMAC_PLATFORM_H


#define BRCMFMAC_PDATA_NAME		"brcmfmac"

#define BRCMFMAC_COUNTRY_BUF_SZ		4


/*
 * Platform specific driver functions and data. Through the platform specific
 * device data functions and data can be provided to help the brcmfmac driver to
 * operate with the device in combination with the used platform.
 */


/**
 * Note: the brcmfmac can be loaded as module or be statically built-in into
 * the kernel. If built-in then do note that it uses module_init (and
 * module_exit) routines which equal device_initcall. So if you intend to
 * create a module with the platform specific data for the brcmfmac and have
 * it built-in to the kernel then use a higher initcall then device_initcall
 * (see init.h). If this is not done then brcmfmac will load without problems
 * but will not pickup the platform data.
 *
 * When the driver does not "detect" platform driver data then it will continue
 * without reporting anything and just assume there is no data needed. Which is
 * probably true for most platforms.
 */

/**
 * enum brcmf_bus_type - Bus type identifier. Currently SDIO, USB and PCIE are
 *			 supported.
 */
enum brcmf_bus_type {
	BRCMF_BUSTYPE_SDIO,
	BRCMF_BUSTYPE_USB,
	BRCMF_BUSTYPE_PCIE
};


/**
 * struct brcmfmac_sdio_pd - SDIO Device specific platform data.
 *
 * @txglomsz:		SDIO txglom size. Use 0 if default of driver is to be
 *			used.
 * @drive_strength:	is the preferred drive_strength to be used for the SDIO
 *			pins. If 0 then a default value will be used. This is
 *			the target drive strength, the exact drive strength
 *			which will be used depends on the capabilities of the
 *			device.
 * @oob_irq_supported:	does the board have support for OOB interrupts. SDIO
 *			in-band interrupts are relatively slow and for having
 *			less overhead on interrupt processing an out of band
 *			interrupt can be used. If the HW supports this then
 *			enable this by setting this field to true and configure
 *			the oob related fields.
 * @oob_irq_nr,
 * @oob_irq_flags:	the OOB interrupt information. The values are used for
 *			registering the irq using request_irq function.
 * @broken_sg_support:	flag for broken sg list support of SDIO host controller.
 *			Set this to true if the SDIO host controller has higher
 *			align requirement than 32 bytes for each scatterlist
 *			item.
 * @sd_head_align:	alignment requirement for start of data buffer.
 * @sd_sgentry_align:	length alignment requirement for each sg entry.
 * @reset:		This function can get called if the device communication
 *			broke down. This functionality is particularly useful in
 *			case of SDIO type devices. It is possible to reset a
 *			dongle via sdio data interface, but it requires that
 *			this is fully functional. This function is chip/module
 *			specific and this function should return only after the
 *			complete reset has completed.
 */
struct brcmfmac_sdio_pd {
	int		txglomsz;
	unsigned int	drive_strength;
	bool		oob_irq_supported;
	unsigned int	oob_irq_nr;
	unsigned long	oob_irq_flags;
	bool		broken_sg_support;
	unsigned short	sd_head_align;
	unsigned short	sd_sgentry_align;
	void		(*reset)(void);
};

/**
 * struct brcmfmac_pd_cc_entry - Struct for translating user space country code
 *				 (iso3166) to firmware country code and
 *				 revision.
 *
 * @iso3166:	iso3166 alpha 2 country code string.
 * @cc:		firmware country code string.
 * @rev:	firmware country code revision.
 */
struct brcmfmac_pd_cc_entry {
	char	iso3166[BRCMFMAC_COUNTRY_BUF_SZ];
	char	cc[BRCMFMAC_COUNTRY_BUF_SZ];
	s32	rev;
};

/**
 * struct brcmfmac_pd_cc - Struct for translating country codes as set by user
 *			   space to a country code and rev which can be used by
 *			   firmware.
 *
 * @table_size:	number of entries in table (> 0)
 * @table:	array of 1 or more elements with translation information.
 */
struct brcmfmac_pd_cc {
	int				table_size;
	struct brcmfmac_pd_cc_entry	table[0];
};

/**
 * struct brcmfmac_pd_device - Device specific platform data. (id/rev/bus_type)
 *			       is the unique identifier of the device.
 *
 * @id:			ID of the device for which this data is. In case of SDIO
 *			or PCIE this is the chipid as identified by chip.c In
 *			case of USB this is the chipid as identified by the
 *			device query.
 * @rev:		chip revision, see id.
 * @bus_type:		The type of bus. Some chipid/rev exist for different bus
 *			types. Each bus type has its own set of settings.
 * @feature_disable:	Bitmask of features to disable (override), See feature.c
 *			in brcmfmac for details.
 * @country_codes:	If available, pointer to struct for translating country
 *			codes.
 * @bus:		Bus specific (union) device settings. Currently only
 *			SDIO.
 */
struct brcmfmac_pd_device {
	unsigned int		id;
	unsigned int		rev;
	enum brcmf_bus_type	bus_type;
	unsigned int		feature_disable;
	struct brcmfmac_pd_cc	*country_codes;
	union {
		struct brcmfmac_sdio_pd sdio;
	} bus;
};

/**
 * struct brcmfmac_platform_data - BRCMFMAC specific platform data.
 *
 * @power_on:	This function is called by the brcmfmac driver when the module
 *		gets loaded. This can be particularly useful for low power
 *		devices. The platform spcific routine may for example decide to
 *		power up the complete device. If there is no use-case for this
 *		function then provide NULL.
 * @power_off:	This function is called by the brcmfmac when the module gets
 *		unloaded. At this point the devices can be powered down or
 *		otherwise be reset. So if an actual power_off is not supported
 *		but reset is supported by the devices then reset the devices
 *		when this function gets called. This can be particularly useful
 *		for low power devices. If there is no use-case for this
 *		function then provide NULL.
 */
struct brcmfmac_platform_data {
	void	(*power_on)(void);
	void	(*power_off)(void);
	char	*fw_alternative_path;
	int	device_count;
	struct brcmfmac_pd_device devices[0];
};


#endif /* _LINUX_BRCMFMAC_PLATFORM_H */

Filemanager

Name Type Size Permission Actions
media Folder 0755
x86 Folder 0755
ad5449.h File 1.16 KB 0644
ad5755.h File 2.74 KB 0644
ad5761.h File 1.23 KB 0644
ad7266.h File 1.46 KB 0644
ad7291.h File 296 B 0644
ad7298.h File 410 B 0644
ad7303.h File 458 B 0644
ad7791.h File 530 B 0644
ad7793.h File 3.74 KB 0644
ad7879.h File 1.16 KB 0644
ad7887.h File 749 B 0644
adau17x1.h File 3.51 KB 0644
adau1977.h File 1.25 KB 0644
adp5588.h File 6.54 KB 0644
adp8860.h File 4.6 KB 0644
adp8870.h File 4.51 KB 0644
ads1015.h File 1.11 KB 0644
ads7828.h File 832 B 0644
apds990x.h File 2.43 KB 0644
arm-ux500-pm.h File 586 B 0644
asoc-imx-ssi.h File 686 B 0644
asoc-kirkwood.h File 145 B 0644
asoc-mx27vis.h File 285 B 0644
asoc-palm27x.h File 152 B 0644
asoc-s3c.h File 1.47 KB 0644
asoc-s3c24xx_simtec.h File 892 B 0644
asoc-ti-mcbsp.h File 1.72 KB 0644
asoc-ux500-msp.h File 452 B 0644
at24.h File 1.98 KB 0644
at91_adc.h File 1.38 KB 0644
ata-pxa.h File 1.03 KB 0644
ata-samsung_cf.h File 962 B 0644
atmel.h File 646 B 0644
atmel_mxt_ts.h File 870 B 0644
b53.h File 1.01 KB 0644
bcmgenet.h File 402 B 0644
bd6107.h File 414 B 0644
bfin_rotary.h File 4.97 KB 0644
bh1770glc.h File 1.78 KB 0644
brcmfmac.h File 6.63 KB 0644
bt-nokia-h4p.h File 1.13 KB 0644
clk-integrator.h File 118 B 0644
clk-lpss.h File 565 B 0644
clk-u300.h File 47 B 0644
cpuidle-exynos.h File 507 B 0644
crypto-atmel.h File 545 B 0644
crypto-ux500.h File 543 B 0644
cyttsp4.h File 2.21 KB 0644
davinci_asp.h File 3.23 KB 0644
db8500_thermal.h File 1.07 KB 0644
dma-atmel.h File 2.45 KB 0644
dma-coh901318.h File 1.99 KB 0644
dma-dw.h File 2.63 KB 0644
dma-ep93xx.h File 2.68 KB 0644
dma-hsu.h File 478 B 0644
dma-imx-sdma.h File 1.59 KB 0644
dma-imx.h File 1.97 KB 0644
dma-mmp_tdma.h File 799 B 0644
dma-mv_xor.h File 375 B 0644
dma-s3c24xx.h File 1.5 KB 0644
dma-ste-dma40.h File 6.05 KB 0644
dmtimer-omap.h File 1.07 KB 0644
ds620.h File 426 B 0644
dwc3-omap.h File 1.96 KB 0644
edma.h File 2.73 KB 0644
efm32-spi.h File 375 B 0644
efm32-uart.h File 393 B 0644
ehci-sh.h File 995 B 0644
elm.h File 1.74 KB 0644
emif_plat.h File 4.06 KB 0644
eth-netx.h File 884 B 0644
fsa9480.h File 656 B 0644
g762.h File 1.33 KB 0644
gpio-ath79.h File 476 B 0644
gpio-davinci.h File 1.44 KB 0644
gpio-dwapb.h File 814 B 0644
gpio-htc-egpio.h File 1.77 KB 0644
gpio-omap.h File 6.52 KB 0644
gpio-ts5500.h File 838 B 0644
gpio_backlight.h File 445 B 0644
gpmc-omap.h File 5.68 KB 0644
hsmmc-omap.h File 2.46 KB 0644
hwmon-s3c.h File 1.33 KB 0644
i2c-cbus-gpio.h File 790 B 0644
i2c-davinci.h File 913 B 0644
i2c-designware.h File 619 B 0644
i2c-hid.h File 1.36 KB 0644
i2c-imx.h File 420 B 0644
i2c-mux-reg.h File 1.41 KB 0644
i2c-s3c2410.h File 3 KB 0644
ina2xx.h File 554 B 0644
intel-mid_wdt.h File 620 B 0644
intel-spi.h File 751 B 0644
invensense_mpu6050.h File 1.24 KB 0644
iommu-omap.h File 567 B 0644
irda-pxaficp.h File 704 B 0644
irda-sa11x0.h File 557 B 0644
isl9305.h File 704 B 0644
itco_wdt.h File 569 B 0644
keyboard-pxa930_rotary.h File 642 B 0644
keyboard-spear.h File 3.81 KB 0644
keypad-ep93xx.h File 1.05 KB 0644
keypad-nomadik-ske.h File 1.17 KB 0644
keypad-omap.h File 1.44 KB 0644
keypad-pxa27x.h File 2.16 KB 0644
keypad-w90p910.h File 380 B 0644
keyscan-davinci.h File 1.15 KB 0644
lcd-mipid.h File 586 B 0644
leds-kirkwood-netxbig.h File 1.08 KB 0644
leds-kirkwood-ns2.h File 742 B 0644
leds-lm355x.h File 1.43 KB 0644
leds-lm3642.h File 823 B 0644
leds-lp55xx.h File 2.04 KB 0644
leds-omap.h File 498 B 0644
leds-pca963x.h File 1.22 KB 0644
leds-s3c24xx.h File 669 B 0644
lm3630a_bl.h File 1.64 KB 0644
lm3639_bl.h File 1.51 KB 0644
lm8323.h File 1.34 KB 0644
lp855x.h File 4.07 KB 0644
lp8727.h File 1.58 KB 0644
lp8755.h File 1.62 KB 0644
ltc4245.h File 538 B 0644
lv5207lp.h File 419 B 0644
macb.h File 799 B 0644
max197.h File 757 B 0644
max3421-hcd.h File 808 B 0644
max6639.h File 433 B 0644
max6697.h File 1.03 KB 0644
max732x.h File 573 B 0644
mcs.h File 913 B 0644
mdio-bcm-unimac.h File 275 B 0644
mdio-gpio.h File 758 B 0644
mfd-mcp-sa11x0.h File 418 B 0644
microchip-ksz.h File 962 B 0644
mlxcpld-hotplug.h File 3.97 KB 0644
mmc-davinci.h File 736 B 0644
mmc-esdhc-imx.h File 1.55 KB 0644
mmc-mxcmmc.h File 1.07 KB 0644
mmc-omap.h File 3.38 KB 0644
mmc-pxamci.h File 1.01 KB 0644
mmc-s3cmci.h File 2.04 KB 0644
mmc-sdhci-s3c.h File 2.22 KB 0644
mmp_audio.h File 492 B 0644
mmp_dma.h File 419 B 0644
mms114.h File 580 B 0644
mouse-pxa930_trkball.h File 226 B 0644
mtd-davinci-aemif.h File 769 B 0644
mtd-davinci.h File 2.65 KB 0644
mtd-mxc_nand.h File 1.25 KB 0644
mtd-nand-omap2.h File 2.14 KB 0644
mtd-nand-pxa3xx.h File 1.32 KB 0644
mtd-nand-s3c2410.h File 2.18 KB 0644
mtd-onenand-omap2.h File 829 B 0644
mtd-orion_nand.h File 561 B 0644
mv_usb.h File 1.32 KB 0644
net-cw1200.h File 2.72 KB 0644
nfcmrvl.h File 1.23 KB 0644
ntc_thermistor.h File 1.89 KB 0644
nxp-nci.h File 816 B 0644
omap-twl4030.h File 1.64 KB 0644
omap-wd-timer.h File 1.08 KB 0644
omap1_bl.h File 229 B 0644
omapdss.h File 1.08 KB 0644
pca953x.h File 690 B 0644
pca954x.h File 1.53 KB 0644
pcf857x.h File 1.78 KB 0644
pcmcia-pxa2xx_viper.h File 200 B 0644
pinctrl-adi2.h File 1.07 KB 0644
pinctrl-single.h File 339 B 0644
pixcir_i2c_ts.h File 1.45 KB 0644
pwm_omap_dmtimer.h File 3.32 KB 0644
pxa2xx_udc.h File 983 B 0644
pxa_sdhci.h File 1.76 KB 0644
regulator-haptic.h File 837 B 0644
remoteproc-omap.h File 1.71 KB 0644
rtc-ds2404.h File 467 B 0644
rtc-v3020.h File 1.03 KB 0644
s3c-hsotg.h File 1.18 KB 0644
s3c-hsudc.h File 1.13 KB 0644
sa11x0-serial.h File 874 B 0644
sc18is602.h File 539 B 0644
sdhci-pic32.h File 757 B 0644
serial-imx.h File 945 B 0644
serial-omap.h File 1.2 KB 0644
serial-sccnxp.h File 2.1 KB 0644
sh_ipmmu.h File 443 B 0644
shmob_drm.h File 2.87 KB 0644
sht3x.h File 801 B 0644
shtc1.h File 720 B 0644
si5351.h File 3.48 KB 0644
simplefb.h File 2.26 KB 0644
sky81452-backlight.h File 1.52 KB 0644
spi-clps711x.h File 628 B 0644
spi-davinci.h File 3.09 KB 0644
spi-ep93xx.h File 454 B 0644
spi-imx.h File 1.13 KB 0644
spi-mt65xx.h File 531 B 0644
spi-nuc900.h File 730 B 0644
spi-omap2-mcspi.h File 598 B 0644
spi-s3c64xx.h File 2.16 KB 0644
ssm2518.h File 489 B 0644
st33zp24.h File 967 B 0644
st_sensors_pdata.h File 730 B 0644
syscon.h File 163 B 0644
tc35876x.h File 172 B 0644
ti-aemif.h File 553 B 0644
touchscreen-s3c2410.h File 741 B 0644
tsc2007.h File 655 B 0644
tsl2563.h File 180 B 0644
uio_dmem_genirq.h File 800 B 0644
uio_pruss.h File 827 B 0644
usb-davinci.h File 1.04 KB 0644
usb-ehci-mxc.h File 332 B 0644
usb-ehci-orion.h File 440 B 0644
usb-musb-ux500.h File 575 B 0644
usb-mx2.h File 1.29 KB 0644
usb-ohci-pxa27x.h File 925 B 0644
usb-ohci-s3c2410.h File 1.06 KB 0644
usb-omap.h File 2.81 KB 0644
usb-omap1.h File 1.47 KB 0644
usb-pxa3xx-ulpi.h File 821 B 0644
usb-s3c2410_udc.h File 1.19 KB 0644
usb3503.h File 461 B 0644
ux500_wdt.h File 320 B 0644
video-clcd-versatile.h File 758 B 0644
video-ep93xx.h File 1.49 KB 0644
video-imxfb.h File 1.75 KB 0644
video-mx3fb.h File 1.54 KB 0644
video-nuc900fb.h File 1.89 KB 0644
video-pxafb.h File 5.37 KB 0644
video_s3c.h File 1.71 KB 0644
voltage-omap.h File 1.29 KB 0644
wiznet.h File 504 B 0644
wkup_m3.h File 937 B 0644
zforce_ts.h File 727 B 0644