Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: Add in XIIC to some configurations of timberdale

This patch adds in the Xilinx I2C bus driver to some of the
configurations of the timberdale MFD.

It provides the I2C devices to the XIIC via platform data in a
similar way as done to the ocores driver.

Signed-off-by: Richard Röjfors <richard.rojfors@pelagicore.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Richard Röjfors and committed by
Samuel Ortiz
d84027bc 9ad285d6

+41
+41
drivers/mfd/timberdale.c
··· 31 31 32 32 #include <linux/i2c.h> 33 33 #include <linux/i2c-ocores.h> 34 + #include <linux/i2c-xiic.h> 34 35 #include <linux/i2c/tsc2007.h> 35 36 36 37 #include <linux/spi/spi.h> ··· 70 69 }, 71 70 }; 72 71 72 + static __devinitdata struct xiic_i2c_platform_data 73 + timberdale_xiic_platform_data = { 74 + .devices = timberdale_i2c_board_info, 75 + .num_devices = ARRAY_SIZE(timberdale_i2c_board_info) 76 + }; 77 + 73 78 static __devinitdata struct ocores_i2c_platform_data 74 79 timberdale_ocores_platform_data = { 75 80 .regstep = 4, 76 81 .clock_khz = 62500, 77 82 .devices = timberdale_i2c_board_info, 78 83 .num_devices = ARRAY_SIZE(timberdale_i2c_board_info) 84 + }; 85 + 86 + const static __devinitconst struct resource timberdale_xiic_resources[] = { 87 + { 88 + .start = XIICOFFSET, 89 + .end = XIICEND, 90 + .flags = IORESOURCE_MEM, 91 + }, 92 + { 93 + .start = IRQ_TIMBERDALE_I2C, 94 + .end = IRQ_TIMBERDALE_I2C, 95 + .flags = IORESOURCE_IRQ, 96 + }, 79 97 }; 80 98 81 99 const static __devinitconst struct resource timberdale_ocores_resources[] = { ··· 290 270 .resources = timberdale_uart_resources, 291 271 }, 292 272 { 273 + .name = "xiic-i2c", 274 + .num_resources = ARRAY_SIZE(timberdale_xiic_resources), 275 + .resources = timberdale_xiic_resources, 276 + .platform_data = &timberdale_xiic_platform_data, 277 + .data_size = sizeof(timberdale_xiic_platform_data), 278 + }, 279 + { 293 280 .name = "timb-gpio", 294 281 .num_resources = ARRAY_SIZE(timberdale_gpio_resources), 295 282 .resources = timberdale_gpio_resources, ··· 341 314 .resources = timberdale_uartlite_resources, 342 315 }, 343 316 { 317 + .name = "xiic-i2c", 318 + .num_resources = ARRAY_SIZE(timberdale_xiic_resources), 319 + .resources = timberdale_xiic_resources, 320 + .platform_data = &timberdale_xiic_platform_data, 321 + .data_size = sizeof(timberdale_xiic_platform_data), 322 + }, 323 + { 344 324 .name = "timb-gpio", 345 325 .num_resources = ARRAY_SIZE(timberdale_gpio_resources), 346 326 .resources = timberdale_gpio_resources, ··· 390 356 .name = "timb-uart", 391 357 .num_resources = ARRAY_SIZE(timberdale_uart_resources), 392 358 .resources = timberdale_uart_resources, 359 + }, 360 + { 361 + .name = "xiic-i2c", 362 + .num_resources = ARRAY_SIZE(timberdale_xiic_resources), 363 + .resources = timberdale_xiic_resources, 364 + .platform_data = &timberdale_xiic_platform_data, 365 + .data_size = sizeof(timberdale_xiic_platform_data), 393 366 }, 394 367 { 395 368 .name = "timb-gpio",