• Bartosz Golaszewski's avatar
    gpio: mockup: rework device probing · 8a39f597
    Bartosz Golaszewski authored
    We currently create a single platform device in init and then parse
    the configuration passed to us via module parameters in probe() before
    creating GPIO chips and registering them with the gpiolib framework.
    The relation between platform devices and mockup chips should be 1:1.
    Create a separate platform device for each mockup chip using convenient
    helpers (platform_device_register_resndata()). Pass a platform data
    structure to probe() in which the configuration (GPIO base, number of
    lines, chip index) extracted from the module params is stored. Make
    probe() create a single mockup chip for every platform device.
    This approach has several advantages:
    - we only parse the module parameters in init() and can bail out before
      attaching any device if the input is invalid (currently we would
      have to examine kernel logs),
    - we'll get notified by the device framework about errors in probe()
      for specific chips,
    - probe() gets simplified and only does what it's supposed to.
    Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>