19 #include <linux/i2c.h>
21 #include <linux/slab.h>
23 #include <linux/types.h>
27 #include <mach/common.h>
28 #include <mach/hardware.h>
36 static unsigned int marxbot_pins[] = {
68 #define SDHC2_CD IOMUX_TO_GPIO(MX31_PIN_ATA_DIOR)
69 #define SDHC2_WP IOMUX_TO_GPIO(MX31_PIN_ATA_DIOW)
71 static int marxbot_sdhc2_get_ro(
struct device *
dev)
94 "sdhc2-card-detect", data);
108 static void marxbot_sdhc2_exit(
struct device *dev,
void *data)
116 .get_ro = marxbot_sdhc2_get_ro,
117 .init = marxbot_sdhc2_init,
118 .exit = marxbot_sdhc2_exit,
121 #define TRSLAT_RST_B IOMUX_TO_GPIO(MX31_PIN_STXD5)
122 #define DSPICS_RST_B IOMUX_TO_GPIO(MX31_PIN_SRXD5)
124 static void dspics_resets_init(
void)
139 .modalias =
"spidev",
140 .max_speed_hz = 300000,
146 #define TURRETCAM_POWER IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)
147 #define BASECAM_POWER IOMUX_TO_GPIO(MX31_PIN_CSI_D5)
148 #define TURRETCAM_RST_B IOMUX_TO_GPIO(MX31_PIN_GPIO3_0)
149 #define BASECAM_RST_B IOMUX_TO_GPIO(MX31_PIN_CSI_D4)
150 #define CAM_CHOICE IOMUX_TO_GPIO(MX31_PIN_TXD2)
152 static int marxbot_basecam_power(
struct device *dev,
int on)
158 static int marxbot_basecam_reset(
struct device *dev)
174 .power = marxbot_basecam_power,
175 .reset = marxbot_basecam_reset,
176 .board_info = &marxbot_i2c_devices[0],
182 .name =
"soc-camera-pdrv",
185 .platform_data = &base_iclink,
194 static int __init marxbot_cam_init(
void)
222 #define SEL0 IOMUX_TO_GPIO(MX31_PIN_DTR_DCE1)
223 #define SEL1 IOMUX_TO_GPIO(MX31_PIN_DSR_DCE1)
224 #define SEL2 IOMUX_TO_GPIO(MX31_PIN_RI_DCE1)
225 #define SEL3 IOMUX_TO_GPIO(MX31_PIN_DCD_DCE1)
227 static void marxbot_init_sel_gpios(
void)
231 gpio_export(
SEL0,
true);
236 gpio_export(
SEL1,
true);
241 gpio_export(
SEL2,
true);
246 gpio_export(
SEL3,
true);
250 #define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \
251 PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU)
272 #define USBH1_VBUSEN_B IOMUX_TO_GPIO(MX31_PIN_NFRE_B)
273 #define USBH1_MODE IOMUX_TO_GPIO(MX31_PIN_NFALE)
275 static int marxbot_isp1105_init(
struct usb_phy *otg)
294 static int marxbot_isp1105_set_vbus(
struct usb_otg *otg,
bool on)
305 .
init = marxbot_usbh1_hw_init,
309 static int __init marxbot_usbh1_init(
void)
324 phy->
label =
"ISP1105";
325 phy->
init = marxbot_isp1105_init;
326 phy->
otg->set_vbus = marxbot_isp1105_set_vbus;
328 usbh1_pdata.otg =
phy;
332 return PTR_ERR(pdev);
352 marxbot_init_sel_gpios();
354 dspics_resets_init();
371 marxbot_usbh1_init();