01 Feb, 2020

1 commit

  • [ Upstream commit e81b88932985c9134d410f4eaaaa9b81a3b4bd0c ]

    Intel Cherry Trail Whiskey Cove extcon driver connect USB data lines to
    PMIC at driver probing for further charger detection. This causes reset of
    USB data sessions and removing all devices from bus. If system was
    booted from Live CD or USB dongle, this makes system unusable.

    Check if USB ID pin is floating and re-route data lines in this case
    only, don't touch otherwise.

    Reviewed-by: Hans de Goede
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Yauhen Kharuzhy
    [cw00.choi: Clean-up the minor coding style]
    Signed-off-by: Chanwoo Choi
    Signed-off-by: Sasha Levin

    Yauhen Kharuzhy
     

31 Dec, 2019

1 commit

  • [ Upstream commit 6942635032cfd3e003e980d2dfa4e6323a3ce145 ]

    On some devices (e.g. Samsung Galaxy A5 (2015)), the bootloader
    seems to keep interrupts enabled for SM5502 when booting Linux.
    Changing the cable state (i.e. plugging in a cable) - until the driver
    is loaded - will therefore produce an interrupt that is never read.

    In this situation, the cable state will be stuck forever on the
    initial state because SM5502 stops sending interrupts.
    This can be avoided by clearing those pending interrupts after
    the driver has been loaded.

    One way to do this is to reset all registers to default state
    by writing to SM5502_REG_RESET. This ensures that we start from
    a clean state, with all interrupts disabled.

    Suggested-by: Chanwoo Choi
    Signed-off-by: Stephan Gerhold
    Signed-off-by: Chanwoo Choi
    Signed-off-by: Sasha Levin

    Stephan Gerhold
     

20 Sep, 2019

1 commit

  • …ernel/git/chrome-platform/linux

    Pull chrome platform updates from Benson Leung:
    "CrOS EC / MFD Migration:
    - Move cros_ec core driver from mfd into chrome platform.

    Wilco EC:
    - Add batt_ppid_info command to Wilco telemetry driver.

    CrOS EC:
    - cros_ec_rpmsg : Add support to inform EC of suspend/resume status
    - cros_ec_rpmsg : Fix race condition on probe failed
    - cros_ec_chardev : Add a poll handler to receive MKBP events

    Misc:
    - bugfixes in cros_usbpd_logger and cros_ec_ishtp"

    * tag 'tag-chrome-platform-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
    platform/chrome: cros_usbpd_logger: null check create_singlethread_workqueue
    platform/chrome: cros_ec_chardev: Add a poll handler to receive MKBP events
    platform/chrome: cros_ec_rpmsg: Fix race with host command when probe failed
    platform/chrome: chromeos_tbmc: Report wake events
    mfd: cros_ec: Use mfd_add_hotplug_devices() helper
    mfd: cros_ec: Add convenience struct to define autodetectable CrOS EC subdevices
    mfd: cros_ec: Add convenience struct to define dedicated CrOS EC MCUs
    mfd: cros_ec: Use kzalloc and cros_ec_cmd_xfer_status helper
    mfd / platform: cros_ec: Reorganize platform and mfd includes
    mfd / platform: cros_ec: Rename config to a better name
    mfd: cros_ec: Switch to use the new cros-ec-chardev driver
    mfd / platform: cros_ec: Miscellaneous character device to talk with the EC
    mfd / platform: cros_ec: Move cros-ec core driver out from MFD
    mfd / platform: cros_ec: Handle chained ECs as platform devices
    platform/chrome: cros_ec_rpmsg: Add host command AP sleep state support
    platform/chrome: chromeos_laptop: drop checks of NULL-safe functions
    platform/chrome: wilco_ec: Add batt_ppid_info command to telemetry driver

    Linus Torvalds
     

02 Sep, 2019

2 commits

  • There is a bit of mess between cros-ec mfd includes and platform
    includes. For example, we have a linux/mfd/cros_ec.h include that
    exports the interface implemented in platform/chrome/cros_ec_proto.c. Or
    we have a linux/mfd/cros_ec_commands.h file that is non related to the
    multifunction device (in the sense that is not exporting any function of
    the mfd device). This causes crossed includes between mfd and
    platform/chrome subsystems and makes the code difficult to read, apart
    from creating 'curious' situations where a platform/chrome driver includes
    a linux/mfd/cros_ec.h file just to get the exported functions that are
    implemented in another platform/chrome driver.

    In order to have a better separation on what the cros-ec multifunction
    driver does and what the cros-ec core provides move and rework the
    affected includes doing:

    - Move cros_ec_commands.h to include/linux/platform_data/cros_ec_commands.h
    - Get rid of the parts that are implemented in the platform/chrome/cros_ec_proto.c
    driver from include/linux/mfd/cros_ec.h to a new file
    include/linux/platform_data/cros_ec_proto.h
    - Update all the drivers with the new includes, so
    - Drivers that only need to know about the protocol include
    - linux/platform_data/cros_ec_proto.h
    - linux/platform_data/cros_ec_commands.h
    - Drivers that need to know about the cros-ec mfd device also include
    - linux/mfd/cros_ec.h

    Signed-off-by: Enric Balletbo i Serra
    Acked-by: Andy Shevchenko
    Acked-by: Mark Brown
    Acked-by: Wolfram Sang
    Acked-by: Neil Armstrong
    Acked-by: Alexandre Belloni
    Acked-by: Jonathan Cameron
    Acked-by: Benjamin Tissoires
    Acked-by: Dmitry Torokhov
    Acked-by: Sebastian Reichel
    Acked-by: Chanwoo Choi
    Reviewed-by: Gwendal Grignou
    Tested-by: Gwendal Grignou
    Series changes: 3
    - Fix dereferencing pointer to incomplete type 'struct cros_ec_dev' (lkp)
    Signed-off-by: Lee Jones

    Enric Balletbo i Serra
     
  • Now, the ChromeOS EC core driver has nothing related to an MFD device, so
    move that driver from the MFD subsystem to the platform/chrome subsystem.

    Signed-off-by: Enric Balletbo i Serra
    Acked-by: Andy Shevchenko
    Acked-by: Thierry Reding
    Acked-by: Mark Brown
    Acked-by: Wolfram Sang
    Acked-by: Neil Armstrong
    Acked-by: Alexandre Belloni
    Acked-by: Jonathan Cameron
    Acked-by: Benjamin Tissoires
    Acked-by: Dmitry Torokhov
    Acked-by: Sebastian Reichel
    Acked-by: Chanwoo Choi
    Reviewed-by: Gwendal Grignou
    Tested-by: Gwendal Grignou
    Signed-off-by: Lee Jones

    Enric Balletbo i Serra
     

31 Jul, 2019

1 commit


29 Jul, 2019

2 commits


24 Jul, 2019

5 commits


01 Jul, 2019

1 commit

  • …/chanwoo/extcon into char-misc-next

    Chanwoo writes:

    Update extcon for 5.3

    Detailed description for this pull request:
    1. Add new extcon-fsa9480 extcon provider driver
    - It is extcon provide driver for Fairchild Semiconductor
    FSA9480 microUSB switch and accessory detector chip which
    detects the kind of external connector like usb, charger,
    audio, video and so on.

    2.
    - Add the exception handling code for extcon-arizona.c
    when using the regmap interface.

    * tag 'extcon-next-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon:
    extcon: fsa9480: Fix Kconfig warning and build errors
    extcon: Add fsa9480 extcon driver
    dt-bindings: extcon: Add support for fsa9480 switch
    extcon: arizona: Correct error handling on regmap_update_bits_check

    Greg Kroah-Hartman
     

26 Jun, 2019

1 commit

  • Fix Kconfig dependency warning and subsequent build errors caused by
    the Kconfig entry for EXTCON-FSA9480. It should not select
    REGMAP_I2C unless I2C is already set/enabled.

    WARNING: unmet direct dependencies detected for REGMAP_I2C
    Depends on [n]: I2C [=n]
    Selected by [y]:
    - EXTCON_FSA9480 [=y] && EXTCON [=y] && INPUT [=y]

    Signed-off-by: Randy Dunlap
    [cw00.choi: adjust the patch title and remove the long warning messages]
    Signed-off-by: Chanwoo Choi

    Randy Dunlap
     

22 Jun, 2019

1 commit


19 Jun, 2019

2 commits

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this software is licensed under the terms of the gnu general public
    license version 2 as published by the free software foundation and
    may be copied distributed and modified under those terms

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 6 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190602204653.720704315@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this software is licensed under the terms of the gnu general public
    license version 2 as published by the free software foundation and
    may be copied distributed and modified under those terms this
    program is distributed in the hope that it will be useful but
    without any warranty without even the implied warranty of
    merchantability or fitness for a particular purpose see the gnu
    general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 285 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141900.642774971@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

31 May, 2019

3 commits

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 655 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

30 May, 2019

1 commit


21 May, 2019

1 commit


08 May, 2019

1 commit

  • …/git/gregkh/char-misc

    Pull char/misc update part 2 from Greg KH:
    "Here is the "real" big set of char/misc driver patches for 5.2-rc1

    Loads of different driver subsystem stuff in here, all over the places:
    - thunderbolt driver updates
    - habanalabs driver updates
    - nvmem driver updates
    - extcon driver updates
    - intel_th driver updates
    - mei driver updates
    - coresight driver updates
    - soundwire driver cleanups and updates
    - fastrpc driver updates
    - other minor driver updates
    - chardev minor fixups

    Feels like this tree is getting to be a dumping ground of "small
    driver subsystems" these days. Which is fine with me, if it makes
    things easier for those subsystem maintainers.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-5.2-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits)
    intel_th: msu: Add current window tracking
    intel_th: msu: Add a sysfs attribute to trigger window switch
    intel_th: msu: Correct the block wrap detection
    intel_th: Add switch triggering support
    intel_th: gth: Factor out trace start/stop
    intel_th: msu: Factor out pipeline draining
    intel_th: msu: Switch over to scatterlist
    intel_th: msu: Replace open-coded list_{first,last,next}_entry variants
    intel_th: Only report useful IRQs to subdevices
    intel_th: msu: Start handling IRQs
    intel_th: pci: Use MSI interrupt signalling
    intel_th: Communicate IRQ via resource
    intel_th: Add "rtit" source device
    intel_th: Skip subdevices if their MMIO is missing
    intel_th: Rework resource passing between glue layers and core
    intel_th: SPDX-ify the documentation
    intel_th: msu: Fix single mode with IOMMU
    coresight: funnel: Support static funnel
    dt-bindings: arm: coresight: Unify funnel DT binding
    coresight: replicator: Add new device id for static replicator
    ...

    Linus Torvalds
     

06 May, 2019

1 commit

  • * acpi-utils:
    gpio: merrifield: Fix build err without CONFIG_ACPI
    ACPI / utils: Remove deprecated function since no user left
    ASoC: Intel: cht_bsw_rt5672: Convert to use acpi_dev_get_first_match_dev()
    ASoC: Intel: cht_bsw_rt5645: Convert to use acpi_dev_get_first_match_dev()
    ASoC: Intel: bytcr_rt5651: Convert to use acpi_dev_get_first_match_dev()
    ASoC: Intel: bytcr_rt5640: Convert to use acpi_dev_get_first_match_dev()
    ASoC: Intel: bytcht_es8316: Convert to use acpi_dev_get_first_match_dev()
    ASoC: Intel: bytcht_da7213: Convert to use acpi_dev_get_first_match_dev()
    gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()
    extcon: axp288: Convert to use acpi_dev_get_first_match_dev()
    ACPI / utils: Introduce acpi_dev_get_first_match_dev() helper

    * acpi-video:
    ACPI: video: Use vendor backlight on Sony VPCEH3U1E

    * acpi-soc:
    ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for hibernate

    * acpi-button:
    ACPI: button: reinitialize button state upon resume

    Rafael J. Wysocki
     

12 Apr, 2019

2 commits

  • Microphone detection provides the button detection features on the
    Arizona CODECs as such it will be running if the jack is currently
    inserted. If the driver is unbound whilst the jack is still inserted
    this will cause warnings from the regulator framework as the MICVDD
    regulator is put but was never disabled.

    Correct this by disabling microphone detection on driver removal and if
    the microphone detection was running disable the regulator and put the
    runtime reference that was currently held.

    Signed-off-by: Charles Keepax
    Signed-off-by: Chanwoo Choi

    Charles Keepax
     
  • As Hans de Goede pointed, using this driver without ACPI
    makes little sense, so add ACPI dependency to Kconfig entry
    to fix a build error while CONFIG_ACPI is not set.

    drivers/extcon/extcon-axp288.c: In function 'axp288_extcon_probe':
    drivers/extcon/extcon-axp288.c:363:20: error: dereferencing pointer to incomplete type
    put_device(&adev->dev);

    Fixes: 0cf064db948a ("extcon: axp288: Convert to use acpi_dev_get_first_match_dev()")
    Reported-by: Hulk Robot
    Suggested-by: Hans de Goede
    Signed-off-by: YueHaibing
    Reviewed-by: Hans de Goede
    Reviewed-by: Mukesh Ojha
    Signed-off-by: Chanwoo Choi

    YueHaibing
     

05 Apr, 2019

6 commits

  • On Intel Merrifield the Basin Cove PMIC provides a feature to detect
    the USB connection type. This driver utilizes the feature in order
    to support the USB dual role detection.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Chanwoo Choi

    Andy Shevchenko
     
  • We are going to use some definitions in the other Intel extcon drivers,
    thus, split out them to a common header file.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Chanwoo Choi

    Andy Shevchenko
     
  • Give the line the asterisk it wanted to fix the build warning.

    [Build warning message]
    Building with W=1 reports:

    CC drivers/extcon/devres.o
    drivers/extcon/devres.c:208: warning: bad line:
    - Resource-managed extcon_unregister_notifier()

    Signed-off-by: Valdis Kletnieks
    [cw00.choi: Edit the patch subject and description]
    Signed-off-by: Chanwoo Choi

    Valdis Klētnieks
     
  • In some configuration external charger "#charge enable" signal is
    connected to PMIC. Enable it at device probing to allow charging.

    Save CHGRCTRL0 and CHGDISCTR registers at driver probing and restore
    them at driver unbind to re-enable hardware charging control if it was
    enabled before.

    Tested at Lenovo Yoga Book (YB1-X91L).

    Signed-off-by: Yauhen Kharuzhy
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Hans de Goede
    Tested-by: Hans de Goede
    Signed-off-by: Chanwoo Choi

    Yauhen Kharuzhy
     
  • Whiskey Cove Cherry Trail PMIC requires disabling OTG host mode before
    of charger detection procedure. Do this by manipulationg of CHGRCTRL1
    register.

    Source: APCI DSDT code of Lenovo Yoga Book YB1-X91L and open-sourced
    Intel's drivers.

    Signed-off-by: Yauhen Kharuzhy
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Hans de Goede
    Tested-by: Hans de Goede
    Signed-off-by: Chanwoo Choi

    Yauhen Kharuzhy
     
  • The PTN5150 dependencies look like they were meant to do the
    right thing, but they actually should not allow building without
    I2C for compile testing, as that results in a Kconfig warning
    and subsequent build failure:

    WARNING: unmet direct dependencies detected for REGMAP_I2C
    Depends on [m]: I2C [=m]
    Selected by [y]:
    - EXTCON_PTN5150 [=y] && EXTCON [=y] && (I2C [=m] && GPIOLIB [=y] || COMPILE_TEST [=y])
    Selected by [m]:
    - EEPROM_AT24 [=m] && I2C [=m] && SYSFS [=y]
    - KEYBOARD_CAP11XX [=m] && !UML && INPUT [=y] && INPUT_KEYBOARD [=y] && OF [=y] && I2C [=m]
    - INPUT_DRV260X_HAPTICS [=m] && !UML && INPUT_MISC [=y] && INPUT [=y] && I2C [=m] && (GPIOLIB [=y] || COMPILE_TEST [=y])
    - ... [many others]

    Add parentheses around the expression so we can compile-test
    without GPIOLIB but not without I2C.

    Fixes: 4ed754de2d66 ("extcon: Add support for ptn5150 extcon driver")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Chanwoo Choi

    Arnd Bergmann
     

01 Apr, 2019

1 commit


11 Feb, 2019

2 commits


14 Nov, 2018

1 commit

  • MAX8997 driver disables automatic path selection from MicroUSB connector
    and manually sets path to either UART or USB lines. However the code for
    setting USB path worked only for USB host mode (when ID pin is set
    to ground). When standard USB cable (USB device mode) is connected, path
    registers are not touched. This means that once the non-USB accessory is
    connected to MAX8997-operated micro USB port, the path is no longer set
    to USB and USB device mode doesn't work. This patch fixes it by setting
    USB path both for USB and USB host modes.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Chanwoo Choi

    Marek Szyprowski
     

12 Nov, 2018

2 commits

  • Driver unconditionally forces UART path during probe, probably to ensure
    that one can get kernel serial log as soon as possible.

    This approach causes some issues, especially when board is booted with
    non-UART cable connected to micro-USB port. For example, when USB cable is
    connected, UART TX/RX lines are unconditionally short-circuited to USB
    D+/D- lines. This is in turn recognized by a series of serial BREAK
    signals and some random characters when USB host tries to perform
    enumeration procedure.

    To solve the above issue and keep UART console operational as early as
    possible, set UART path only when USB ID reports UART capable cable.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Chanwoo Choi

    Marek Szyprowski
     
  • Driver unconditionally forces UART path during probe, probably to ensure
    that one can get kernel serial log as soon as possible.

    This approach causes some issues, especially when board is booted with
    non-UART cable connected to micro-USB port. For example, when USB cable is
    connected, UART TX/RX lines are unconditionally short-circuited to USB
    D+/D- lines. This is in turn recognized by a series of serial BREAK
    signals and some random characters when USB host tries to perform
    enumeration procedure.

    To solve the above issue and keep UART console operational as early as
    possible, set UART path only when USB ID reports UART capable cable.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Chanwoo Choi

    Marek Szyprowski