calculationAnalysisOfCablePower.c 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * linux/arch/arm/mach-omap2/board-n8x0.c
  3. *
  4. * Copyright (C) 2005-2009 Nokia Corporation
  5. * Author: Juha Yrjola <juha.yrjola@nokia.com>
  6. *
  7. * Modified from mach-omap2/board-generic.c
  8. *
  9. * This program is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License version 2 as
  11. * published by the Free Software Foundation.
  12. */
  13. #include <linux/clk.h>
  14. #include <linux/delay.h>
  15. #include <linux/gpio.h>
  16. #include <linux/init.h>
  17. #include <linux/io.h>
  18. #include <linux/irq.h>
  19. #include <linux/stddef.h>
  20. #include <linux/i2c.h>
  21. #include <linux/spi/spi.h>
  22. #include <linux/usb/musb.h>
  23. #include <linux/platform_data/i2c-cbus-gpio.h>
  24. #include <linux/platform_data/spi-omap2-mcspi.h>
  25. #include <linux/platform_data/mtd-onenand-omap2.h>
  26. #include <linux/mfd/menelaus.h>
  27. #include <sound/tlv320aic3x.h>
  28. #include <asm/mach/arch.h>
  29. #include <asm/mach-types.h>
  30. #include "common.h"
  31. #include "mmc.h"
  32. #include "mux.h"
  33. #include "gpmc-onenand.h"
  34. #define TUSB6010_ASYNC_CS 1
  35. #define TUSB6010_SYNC_CS 4
  36. #define TUSB6010_GPIO_INT 58
  37. #define TUSB6010_GPIO_ENABLE 0
  38. #define TUSB6010_DMACHAN 0x3f
  39. #if defined(CONFIG_I2C_CBUS_GPIO) || defined(CONFIG_I2C_CBUS_GPIO_MODULE)
  40. static struct i2c_cbus_platform_data n8x0_cbus_data = {
  41. .clk_gpio = 66,
  42. .dat_gpio = 65,
  43. .sel_gpio = 64,
  44. };
  45. static struct platform_device n8x0_cbus_device = {
  46. .name = "i2c-cbus-gpio",
  47. .id = 3,
  48. .dev = {
  49. .platform_data = &n8x0_cbus_data,
  50. },
  51. };
  52. static struct i2c_board_info n8x0_i2c_board_info_3[] __initdata = {
  53. {
  54. I2C_BOARD_INFO("retu-mfd", 0x01),
  55. },
  56. };
  57. static void __init n8x0_cbus_init(void)
  58. {
  59. const int retu_irq_gpio = 108;
  60. if (gpio_request_one(retu_irq_gpio, GPIOF_IN, "Retu IRQ"))
  61. return;
  62. irq_set_irq_type(gpio_to_irq(retu_irq_gpio), IRQ_TYPE_EDGE_RISING);
  63. n8x0_i2c_board_info_3[0].irq = gpio_to_irq(retu_irq_gpio);
  64. i2c_register_board_info(3, n8x0_i2c_board_info_3,
  65. ARRAY_SIZE(n8x0_i2c_board_info_3));
  66. platform_device_register(&n8x0_cbus_device);
  67. }
  68. #else /* CONFIG_I2C_CBUS_GPIO */
  69. static void __init n8x0_cbus_init(void)
  70. {
  71. }
  72. #endif /* CONFIG_I2C_CBUS_GPIO */
  73. #if defined(CONFIG_USB_MUSB_TUSB6010) || defined(CONFIG_USB_MUSB_TUSB6010_MODULE)
  74. /*
  75. * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and
  76. * 1.5 V voltage regulators of PM companion chip. Companion chip will then
  77. * provide then PGOOD signal to TUSB6010 which will release it from reset.
  78. */