|
@@ -559,3 +559,149 @@ static struct i2c_board_info i2c0_devices[] = {
|
|
I2C_BOARD_INFO("ak4648", 0x12),
|
|
I2C_BOARD_INFO("ak4648", 0x12),
|
|
},
|
|
},
|
|
{
|
|
{
|
|
|
|
+ I2C_BOARD_INFO("r2025sd", 0x32),
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ I2C_BOARD_INFO("ak8975", 0x0c),
|
|
|
|
+ .irq = intcs_evt2irq(0x3380), /* IRQ28 */
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ I2C_BOARD_INFO("adxl34x", 0x1d),
|
|
|
|
+ .irq = intcs_evt2irq(0x3340), /* IRQ26 */
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct i2c_board_info i2c1_devices[] = {
|
|
|
|
+ {
|
|
|
|
+ I2C_BOARD_INFO("st1232-ts", 0x55),
|
|
|
|
+ .irq = intcs_evt2irq(0x300), /* IRQ8 */
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct i2c_board_info i2c3_devices[] = {
|
|
|
|
+ {
|
|
|
|
+ I2C_BOARD_INFO("pcf8575", 0x20),
|
|
|
|
+ .irq = intcs_evt2irq(0x3260), /* IRQ19 */
|
|
|
|
+ .platform_data = &pcf8575_pdata,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device *kzm_devices[] __initdata = {
|
|
|
|
+ &smsc_device,
|
|
|
|
+ &usb_host_device,
|
|
|
|
+ &usbhs_device,
|
|
|
|
+ &lcdc_device,
|
|
|
|
+ &mmc_device,
|
|
|
|
+ &sdhi0_device,
|
|
|
|
+ &sdhi2_device,
|
|
|
|
+ &gpio_keys_device,
|
|
|
|
+ &fsi_device,
|
|
|
|
+ &fsi_ak4648_device,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * FIXME
|
|
|
|
+ *
|
|
|
|
+ * This is quick hack for enabling LCDC backlight
|
|
|
|
+ */
|
|
|
|
+static int __init as3711_enable_lcdc_backlight(void)
|
|
|
|
+{
|
|
|
|
+ struct i2c_adapter *a = i2c_get_adapter(0);
|
|
|
|
+ struct i2c_msg msg;
|
|
|
|
+ int i, ret;
|
|
|
|
+ __u8 magic[] = {
|
|
|
|
+ 0x40, 0x2a,
|
|
|
|
+ 0x43, 0x3c,
|
|
|
|
+ 0x44, 0x3c,
|
|
|
|
+ 0x45, 0x3c,
|
|
|
|
+ 0x54, 0x03,
|
|
|
|
+ 0x51, 0x00,
|
|
|
|
+ 0x51, 0x01,
|
|
|
|
+ 0xff, 0x00, /* wait */
|
|
|
|
+ 0x43, 0xf0,
|
|
|
|
+ 0x44, 0xf0,
|
|
|
|
+ 0x45, 0xf0,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ if (!machine_is_kzm9g())
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
|
|
+ if (!a)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
|
|
+ msg.addr = 0x40;
|
|
|
|
+ msg.len = 2;
|
|
|
|
+ msg.flags = 0;
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < ARRAY_SIZE(magic); i += 2) {
|
|
|
|
+ msg.buf = magic + i;
|
|
|
|
+
|
|
|
|
+ if (0xff == msg.buf[0]) {
|
|
|
|
+ udelay(500);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ret = i2c_transfer(a, &msg, 1);
|
|
|
|
+ if (ret < 0) {
|
|
|
|
+ pr_err("i2c transfer fail\n");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+device_initcall(as3711_enable_lcdc_backlight);
|
|
|
|
+
|
|
|
|
+static void __init kzm_init(void)
|
|
|
|
+{
|
|
|
|
+ regulator_register_always_on(0, "fixed-1.8V", fixed1v8_power_consumers,
|
|
|
|
+ ARRAY_SIZE(fixed1v8_power_consumers), 1800000);
|
|
|
|
+ regulator_register_always_on(1, "fixed-2.8V", fixed2v8_power_consumers,
|
|
|
|
+ ARRAY_SIZE(fixed2v8_power_consumers), 2800000);
|
|
|
|
+ regulator_register_fixed(2, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
|
|
|
+
|
|
|
|
+ sh73a0_pinmux_init();
|
|
|
|
+
|
|
|
|
+ /* enable SCIFA4 */
|
|
|
|
+ gpio_request(GPIO_FN_SCIFA4_TXD, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SCIFA4_RXD, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SCIFA4_RTS_, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_SCIFA4_CTS_, NULL);
|
|
|
|
+
|
|
|
|
+ /* CS4 for SMSC/USB */
|
|
|
|
+ gpio_request(GPIO_FN_CS4_, NULL); /* CS4 */
|
|
|
|
+
|
|
|
|
+ /* SMSC */
|
|
|
|
+ gpio_request(GPIO_PORT224, NULL); /* IRQ3 */
|
|
|
|
+ gpio_direction_input(GPIO_PORT224);
|
|
|
|
+
|
|
|
|
+ /* LCDC */
|
|
|
|
+ gpio_request(GPIO_FN_LCDD23, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD22, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD21, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD20, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD19, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD18, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD17, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD16, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD15, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD14, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD13, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD12, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD11, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD10, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD9, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD8, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD7, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD6, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD5, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD4, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD3, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD2, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD1, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDD0, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDDISP, NULL);
|
|
|
|
+ gpio_request(GPIO_FN_LCDDCK, NULL);
|
|
|
|
+
|
|
|
|
+ gpio_request(GPIO_PORT222, NULL); /* LCDCDON */
|
|
|
|
+ gpio_request(GPIO_PORT226, NULL); /* SC */
|