24 Dec, 2010

1 commit

  • If we are registering an i2c device that has a device tree node like
    this real-world example:

    rtc@68 {
    compatible = "dallas,ds1337";
    reg = ;
    };

    of_i2c_register_devices() will try to load a module called ds1337.ko.
    There is no such module, so it will fail. If we look in modules.alias
    we will find entries like these:

    .
    .
    .
    alias i2c:ds1339 rtc_ds1307
    alias i2c:ds1338 rtc_ds1307
    alias i2c:ds1337 rtc_ds1307
    alias i2c:ds1307 rtc_ds1307
    alias i2c:ds1374 rtc_ds1374
    .
    .
    .

    The module we want is really called rtc_ds1307.ko. If we request a
    module called "i2c:ds1337", the userspace module loader will do the
    right thing (unless it is busybox) and load rtc_ds1307.ko. So we add
    the I2C_MODULE_PREFIX to the request_module() string.

    Signed-off-by: David Daney
    Signed-off-by: Grant Likely

    David Daney
     

22 Oct, 2010

1 commit

  • The __init directives should go on the definitions of things, not the
    declaration, also __init is meaningless for inline functions, so
    remove it from prom.h. This allows us to get rid of a useless
    #include, but most of the rest of them are useless too, so kill them
    as well.

    If of_i2c.c needs irq definitions, it should include linux/irq.h
    directly, not assume indirect inclusion via asm/prom.h.

    Signed-off-by: David Daney
    Acked-by: Ralf Baechle
    Signed-off-by: Grant Likely

    David Daney
     

06 Jul, 2010

1 commit


19 May, 2010

2 commits

  • This patch eliminates the node pointer from struct of_device and the
    of_node (or prom_node) pointer from struct dev_archdata since the node
    pointer is now part of struct device proper when CONFIG_OF is set, and
    all users of the old pointer locations have already been converted over
    to use device->of_node.

    Also remove dev_archdata_{get,set}_node() as it is no longer used by
    anything.

    Signed-off-by: Grant Likely

    Grant Likely
     
  • The following structure elements duplicate the information in
    'struct device.of_node' and so are being eliminated. This patch
    makes all readers of these elements use device.of_node instead.

    (struct of_device *)->node
    (struct dev_archdata *)->prom_node (sparc)
    (struct dev_archdata *)->of_node (powerpc & microblaze)

    Signed-off-by: Grant Likely

    Grant Likely
     

29 Apr, 2010

1 commit

  • The struct device_node *of_node pointer is moving out of dev->archdata
    and into the struct device proper. of_i2c.c needs to set the of_node
    pointer before the device is registered. Since the i2c subsystem
    doesn't allow 2 stage allocation and registration of i2c devices, the
    of_node pointer needs to be passed via the i2c_board_info structure
    so that it is set prior to registration.

    This patch adds of_node to struct i2c_board_info (conditional on
    CONFIG_OF), sets of_node in i2c_new_device(), and modifies of_i2c.c
    to use the new parameter. The calling of dev_archdata_set_node()
    from of_i2c will be removed in a subsequent patch when of_node is
    removed from archdata and all users are converted over.

    Signed-off-by: Grant Likely

    Grant Likely
     

09 Feb, 2010

1 commit

  • Properties in the device tree are specified as big-endian. At present,
    the only platforms to support device trees are also big-endian, so we've
    been acessing the properties as raw values.

    We'd like to add device tree support to little-endian platforms too, so
    add endian conversion to the sites where we access property values in
    the common of code.

    Compiled on powerpc (ppc44x_defconfig & ppc64_defconfig) and arm (fdt
    support only for now).

    Signed-off-by: Jeremy Kerr
    Signed-off-by: Grant Likely

    Jeremy Kerr
     

10 Jan, 2009

1 commit

  • The of_find_i2c_device_by_node function allows you to follow a
    reference in the device tree to an i2c device node and then locate
    the linux device instantiated by the device tree. Example use: an I2S
    bus driver finding the i2c_device instance for a codec described by
    a device tree node.

    This was waiting for Anton's i2c patches that were just added.

    Signed-off-by: Jon Smirl
    Signed-off-by: Grant Likely

    Jon Smirl
     

03 Dec, 2008

1 commit


21 Oct, 2008

1 commit


26 Jul, 2008

1 commit


22 Jul, 2008

1 commit

  • If an I2C device node does not specify an interrupt, the .irq member of the
    board_info struct was set to -1. This caused crashes on following
    irq_dispose_mappings. Leave it NO_IRQ as returned from irq_of_parse_and_map.
    (Suggesting -1 as 'i2c-no-irq' used to be a bug in linux/i2c.h.)

    Signed-off-by: Wolfram Sang
    Acked-by: Sean MacLennan
    Signed-off-by: Grant Likely

    Wolfram Sang
     

13 Jul, 2008

1 commit


07 Jun, 2008

1 commit

  • Change the name of the device from "rtc-ds1374" to just "ds1374", to match
    what all other RTC drivers do. I seem to remember that this name was
    chosen to avoid possible confusion with an older ds1374 driver, but that
    driver was removed 3 months ago.

    Signed-off-by: Jean Delvare
    Signed-off-by: Alessandro Zummo
    Acked-by: Kumar Gala
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     

24 Apr, 2008

1 commit


20 Apr, 2008

1 commit

  • Fix build breakage introduced in commit "[POWERPC] i2c: OF helpers for
    the i2c API". If i2c-core is compiled as a module, the helper needs
    to be compiled as a module, as well. Rename i2c.c to of_i2c.c to
    avoid name space conflict.

    [paulus@samba.org: Changed dependency from OF to PPC_OF to avoid
    sparc{32,64} allmodconfig breakage.]

    Signed-off-by: Jochen Friedrich
    Signed-off-by: Paul Mackerras

    Jochen Friedrich