* [PATCH v4 0/2] Basic DT support for Lenovo Miix 630 @ 2019-04-23 16:05 ` Jeffrey Hugo 0 siblings, 0 replies; 16+ messages in thread From: Jeffrey Hugo @ 2019-04-23 16:05 UTC (permalink / raw) Cc: lee.jones, bjorn.andersson, dmitry.torokhov, robh+dt, mark.rutland, agross, david.brown, jikos, benjamin.tissoires, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel, Jeffrey Hugo The Lenovo Miix 630 is one of three ARM based (specifically Qualcomm MSM8998) laptops that comes with Windows, and seems to have a dedicated following of folks intrested to get Linux up and running on it. This series adds support for the basic functionality this is validated towork using devicetree. Although the laptops do feed ACPI to Windows, the existing MSM8998 support in mainline is DT based, so DT provides a quick path to functionality while ACPI support is investigated. The three devices are very similar, but do have differences in the set of peripherals supported, so the idea is that the vast majority of the support for all three can live in a common include, which should reduce overall duplication. Adding support for the other two devices as a follow on should involve minimal work. The bleeding edge work for these laptops and work in progress can be found at https://github.com/aarch64-laptops/prebuilt v4: -Changed the hid-quirks ELAN handling around per Benjamin Tissoires -Dropped new DT binding v3: -Changed "clam" to "clamshell" -Defined a dt binding for the combo Elan keyboard + touchpad device -Adjusted the HID quirk to be correct for dt boot -Removed extranious comment in board dts -Fixed board level compatible v2: -Changed "cls" to "clam" since feedback indicated "cls" is too opaque, but "clamshell" is a mouthfull. "clam" seems to be a happy medium. Jeffrey Hugo (3): dt-bindings: input: add Elan 400 combo keyboard/touchpad over i2c HID: quirks: Fix keyboard + touchpad on Lenovo Miix 630 for DT arm64: dts: qcom: Add Lenovo Miix 630 .../bindings/input/elan,combo400-i2c.txt | 11 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ drivers/hid/hid-quirks.c | 3 +- 5 files changed, 322 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/input/elan,combo400-i2c.txt create mode 100644 arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi create mode 100644 arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts -- 2.17.1 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v4 0/2] Basic DT support for Lenovo Miix 630 @ 2019-04-23 16:05 ` Jeffrey Hugo 0 siblings, 0 replies; 16+ messages in thread From: Jeffrey Hugo @ 2019-04-23 16:05 UTC (permalink / raw) Cc: lee.jones, bjorn.andersson, dmitry.torokhov, robh+dt, mark.rutland, agross, david.brown, jikos, benjamin.tissoires, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel, Jeffrey Hugo The Lenovo Miix 630 is one of three ARM based (specifically Qualcomm MSM8998) laptops that comes with Windows, and seems to have a dedicated following of folks intrested to get Linux up and running on it. This series adds support for the basic functionality this is validated towork using devicetree. Although the laptops do feed ACPI to Windows, the existing MSM8998 support in mainline is DT based, so DT provides a quick path to functionality while ACPI support is investigated. The three devices are very similar, but do have differences in the set of peripherals supported, so the idea is that the vast majority of the support for all three can live in a common include, which should reduce overall duplication. Adding support for the other two devices as a follow on should involve minimal work. The bleeding edge work for these laptops and work in progress can be found at https://github.com/aarch64-laptops/prebuilt v4: -Changed the hid-quirks ELAN handling around per Benjamin Tissoires -Dropped new DT binding v3: -Changed "clam" to "clamshell" -Defined a dt binding for the combo Elan keyboard + touchpad device -Adjusted the HID quirk to be correct for dt boot -Removed extranious comment in board dts -Fixed board level compatible v2: -Changed "cls" to "clam" since feedback indicated "cls" is too opaque, but "clamshell" is a mouthfull. "clam" seems to be a happy medium. Jeffrey Hugo (3): dt-bindings: input: add Elan 400 combo keyboard/touchpad over i2c HID: quirks: Fix keyboard + touchpad on Lenovo Miix 630 for DT arm64: dts: qcom: Add Lenovo Miix 630 .../bindings/input/elan,combo400-i2c.txt | 11 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ drivers/hid/hid-quirks.c | 3 +- 5 files changed, 322 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/input/elan,combo400-i2c.txt create mode 100644 arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi create mode 100644 arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts -- 2.17.1 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling 2019-04-23 16:05 ` Jeffrey Hugo (?) @ 2019-04-23 16:06 ` Jeffrey Hugo 2019-05-21 16:43 ` Bjorn Andersson 2019-06-06 5:20 ` Lee Jones -1 siblings, 2 replies; 16+ messages in thread From: Jeffrey Hugo @ 2019-04-23 16:06 UTC (permalink / raw) To: dmitry.torokhov, jikos, benjamin.tissoires Cc: lee.jones, bjorn.andersson, robh+dt, mark.rutland, agross, david.brown, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel, Jeffrey Hugo There needs to be coordination between hid-quirks and the elan_i2c driver about which devices are handled by what drivers. Currently, both use whitelists, which results in valid devices being unhandled by default, when they should not be rejected by hid-quirks. This is quickly becoming an issue. Since elan_i2c has a maintained whitelist of what devices it will handle, use that to implement a blacklist in hid-quirks so that only the devices that need to be handled by elan_i2c get rejected by hid-quirks, and everything else is handled by default. The downside is the whitelist and blacklist need to be kept in sync. Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> --- drivers/hid/hid-quirks.c | 64 ++++++++++++++++++++++++----- drivers/input/mouse/elan_i2c_core.c | 4 ++ 2 files changed, 58 insertions(+), 10 deletions(-) diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index 77ffba48cc73..656485e08eb7 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -987,17 +987,61 @@ bool hid_ignore(struct hid_device *hdev) break; case USB_VENDOR_ID_ELAN: /* - * Many Elan devices have a product id of 0x0401 and are handled - * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev - * is not (and cannot be) handled by that driver -> - * Ignore all 0x0401 devs except for the ELAN0800 dev. + * Blacklist of everything that gets handled by the elan_i2c + * input driver. This should be kept in sync with the whitelist + * that exists in that driver. This avoids disabling valid + * touchpads and other ELAN devices. */ - if (hdev->product == 0x0401 && - strncmp(hdev->name, "ELAN0800", 8) != 0) - return true; - /* Same with product id 0x0400 */ - if (hdev->product == 0x0400 && - strncmp(hdev->name, "QTEC0001", 8) != 0) + if ((hdev->product == 0x0401 || hdev->product == 0x0400) && + (strncmp(hdev->name, "ELAN0000", 8) == 0 || + strncmp(hdev->name, "ELAN0100", 8) == 0 || + strncmp(hdev->name, "ELAN0600", 8) == 0 || + strncmp(hdev->name, "ELAN0601", 8) == 0 || + strncmp(hdev->name, "ELAN0602", 8) == 0 || + strncmp(hdev->name, "ELAN0603", 8) == 0 || + strncmp(hdev->name, "ELAN0604", 8) == 0 || + strncmp(hdev->name, "ELAN0605", 8) == 0 || + strncmp(hdev->name, "ELAN0606", 8) == 0 || + strncmp(hdev->name, "ELAN0607", 8) == 0 || + strncmp(hdev->name, "ELAN0608", 8) == 0 || + strncmp(hdev->name, "ELAN0609", 8) == 0 || + strncmp(hdev->name, "ELAN060B", 8) == 0 || + strncmp(hdev->name, "ELAN060C", 8) == 0 || + strncmp(hdev->name, "ELAN060F", 8) == 0 || + strncmp(hdev->name, "ELAN0610", 8) == 0 || + strncmp(hdev->name, "ELAN0611", 8) == 0 || + strncmp(hdev->name, "ELAN0612", 8) == 0 || + strncmp(hdev->name, "ELAN0613", 8) == 0 || + strncmp(hdev->name, "ELAN0614", 8) == 0 || + strncmp(hdev->name, "ELAN0615", 8) == 0 || + strncmp(hdev->name, "ELAN0616", 8) == 0 || + strncmp(hdev->name, "ELAN0617", 8) == 0 || + strncmp(hdev->name, "ELAN0618", 8) == 0 || + strncmp(hdev->name, "ELAN0619", 8) == 0 || + strncmp(hdev->name, "ELAN061A", 8) == 0 || + strncmp(hdev->name, "ELAN061B", 8) == 0 || + strncmp(hdev->name, "ELAN061C", 8) == 0 || + strncmp(hdev->name, "ELAN061D", 8) == 0 || + strncmp(hdev->name, "ELAN061E", 8) == 0 || + strncmp(hdev->name, "ELAN061F", 8) == 0 || + strncmp(hdev->name, "ELAN0620", 8) == 0 || + strncmp(hdev->name, "ELAN0621", 8) == 0 || + strncmp(hdev->name, "ELAN0622", 8) == 0 || + strncmp(hdev->name, "ELAN0623", 8) == 0 || + strncmp(hdev->name, "ELAN0624", 8) == 0 || + strncmp(hdev->name, "ELAN0625", 8) == 0 || + strncmp(hdev->name, "ELAN0626", 8) == 0 || + strncmp(hdev->name, "ELAN0627", 8) == 0 || + strncmp(hdev->name, "ELAN0628", 8) == 0 || + strncmp(hdev->name, "ELAN0629", 8) == 0 || + strncmp(hdev->name, "ELAN062A", 8) == 0 || + strncmp(hdev->name, "ELAN062B", 8) == 0 || + strncmp(hdev->name, "ELAN062C", 8) == 0 || + strncmp(hdev->name, "ELAN062D", 8) == 0 || + strncmp(hdev->name, "ELAN0631", 8) == 0 || + strncmp(hdev->name, "ELAN0632", 8) == 0 || + strncmp(hdev->name, "ELAN1000", 8) == 0 || + strncmp(hdev->name, "elan,ekth3000", 13) == 0)) return true; break; } diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index f9525d6f0bfe..3ded19528cd4 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c @@ -1332,6 +1332,10 @@ static const struct i2c_device_id elan_id[] = { }; MODULE_DEVICE_TABLE(i2c, elan_id); +/* + * when these whtielists get updated, the corresponding blacklist in hid-quirks + * needs to be updated to match. + */ #ifdef CONFIG_ACPI static const struct acpi_device_id elan_acpi_id[] = { { "ELAN0000", 0 }, -- 2.17.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling 2019-04-23 16:06 ` [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling Jeffrey Hugo @ 2019-05-21 16:43 ` Bjorn Andersson 2019-06-05 23:25 ` Jeffrey Hugo 2019-06-06 5:20 ` Lee Jones 1 sibling, 1 reply; 16+ messages in thread From: Bjorn Andersson @ 2019-05-21 16:43 UTC (permalink / raw) To: Jeffrey Hugo Cc: dmitry.torokhov, jikos, benjamin.tissoires, lee.jones, robh+dt, mark.rutland, agross, david.brown, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel On Tue 23 Apr 09:06 PDT 2019, Jeffrey Hugo wrote: > There needs to be coordination between hid-quirks and the elan_i2c driver > about which devices are handled by what drivers. Currently, both use > whitelists, which results in valid devices being unhandled by default, > when they should not be rejected by hid-quirks. This is quickly becoming > an issue. > > Since elan_i2c has a maintained whitelist of what devices it will handle, > use that to implement a blacklist in hid-quirks so that only the devices > that need to be handled by elan_i2c get rejected by hid-quirks, and > everything else is handled by default. The downside is the whitelist and > blacklist need to be kept in sync. > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Jiri, the two patches in this series doesn't have a build time dependency, so if you take this one through your tree I'll take 2/2 through arm-soc. Regards, Bjorn > Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > --- > drivers/hid/hid-quirks.c | 64 ++++++++++++++++++++++++----- > drivers/input/mouse/elan_i2c_core.c | 4 ++ > 2 files changed, 58 insertions(+), 10 deletions(-) > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > index 77ffba48cc73..656485e08eb7 100644 > --- a/drivers/hid/hid-quirks.c > +++ b/drivers/hid/hid-quirks.c > @@ -987,17 +987,61 @@ bool hid_ignore(struct hid_device *hdev) > break; > case USB_VENDOR_ID_ELAN: > /* > - * Many Elan devices have a product id of 0x0401 and are handled > - * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev > - * is not (and cannot be) handled by that driver -> > - * Ignore all 0x0401 devs except for the ELAN0800 dev. > + * Blacklist of everything that gets handled by the elan_i2c > + * input driver. This should be kept in sync with the whitelist > + * that exists in that driver. This avoids disabling valid > + * touchpads and other ELAN devices. > */ > - if (hdev->product == 0x0401 && > - strncmp(hdev->name, "ELAN0800", 8) != 0) > - return true; > - /* Same with product id 0x0400 */ > - if (hdev->product == 0x0400 && > - strncmp(hdev->name, "QTEC0001", 8) != 0) > + if ((hdev->product == 0x0401 || hdev->product == 0x0400) && > + (strncmp(hdev->name, "ELAN0000", 8) == 0 || > + strncmp(hdev->name, "ELAN0100", 8) == 0 || > + strncmp(hdev->name, "ELAN0600", 8) == 0 || > + strncmp(hdev->name, "ELAN0601", 8) == 0 || > + strncmp(hdev->name, "ELAN0602", 8) == 0 || > + strncmp(hdev->name, "ELAN0603", 8) == 0 || > + strncmp(hdev->name, "ELAN0604", 8) == 0 || > + strncmp(hdev->name, "ELAN0605", 8) == 0 || > + strncmp(hdev->name, "ELAN0606", 8) == 0 || > + strncmp(hdev->name, "ELAN0607", 8) == 0 || > + strncmp(hdev->name, "ELAN0608", 8) == 0 || > + strncmp(hdev->name, "ELAN0609", 8) == 0 || > + strncmp(hdev->name, "ELAN060B", 8) == 0 || > + strncmp(hdev->name, "ELAN060C", 8) == 0 || > + strncmp(hdev->name, "ELAN060F", 8) == 0 || > + strncmp(hdev->name, "ELAN0610", 8) == 0 || > + strncmp(hdev->name, "ELAN0611", 8) == 0 || > + strncmp(hdev->name, "ELAN0612", 8) == 0 || > + strncmp(hdev->name, "ELAN0613", 8) == 0 || > + strncmp(hdev->name, "ELAN0614", 8) == 0 || > + strncmp(hdev->name, "ELAN0615", 8) == 0 || > + strncmp(hdev->name, "ELAN0616", 8) == 0 || > + strncmp(hdev->name, "ELAN0617", 8) == 0 || > + strncmp(hdev->name, "ELAN0618", 8) == 0 || > + strncmp(hdev->name, "ELAN0619", 8) == 0 || > + strncmp(hdev->name, "ELAN061A", 8) == 0 || > + strncmp(hdev->name, "ELAN061B", 8) == 0 || > + strncmp(hdev->name, "ELAN061C", 8) == 0 || > + strncmp(hdev->name, "ELAN061D", 8) == 0 || > + strncmp(hdev->name, "ELAN061E", 8) == 0 || > + strncmp(hdev->name, "ELAN061F", 8) == 0 || > + strncmp(hdev->name, "ELAN0620", 8) == 0 || > + strncmp(hdev->name, "ELAN0621", 8) == 0 || > + strncmp(hdev->name, "ELAN0622", 8) == 0 || > + strncmp(hdev->name, "ELAN0623", 8) == 0 || > + strncmp(hdev->name, "ELAN0624", 8) == 0 || > + strncmp(hdev->name, "ELAN0625", 8) == 0 || > + strncmp(hdev->name, "ELAN0626", 8) == 0 || > + strncmp(hdev->name, "ELAN0627", 8) == 0 || > + strncmp(hdev->name, "ELAN0628", 8) == 0 || > + strncmp(hdev->name, "ELAN0629", 8) == 0 || > + strncmp(hdev->name, "ELAN062A", 8) == 0 || > + strncmp(hdev->name, "ELAN062B", 8) == 0 || > + strncmp(hdev->name, "ELAN062C", 8) == 0 || > + strncmp(hdev->name, "ELAN062D", 8) == 0 || > + strncmp(hdev->name, "ELAN0631", 8) == 0 || > + strncmp(hdev->name, "ELAN0632", 8) == 0 || > + strncmp(hdev->name, "ELAN1000", 8) == 0 || > + strncmp(hdev->name, "elan,ekth3000", 13) == 0)) > return true; > break; > } > diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c > index f9525d6f0bfe..3ded19528cd4 100644 > --- a/drivers/input/mouse/elan_i2c_core.c > +++ b/drivers/input/mouse/elan_i2c_core.c > @@ -1332,6 +1332,10 @@ static const struct i2c_device_id elan_id[] = { > }; > MODULE_DEVICE_TABLE(i2c, elan_id); > > +/* > + * when these whtielists get updated, the corresponding blacklist in hid-quirks > + * needs to be updated to match. > + */ > #ifdef CONFIG_ACPI > static const struct acpi_device_id elan_acpi_id[] = { > { "ELAN0000", 0 }, > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling 2019-05-21 16:43 ` Bjorn Andersson @ 2019-06-05 23:25 ` Jeffrey Hugo 2019-06-06 7:06 ` Benjamin Tissoires 0 siblings, 1 reply; 16+ messages in thread From: Jeffrey Hugo @ 2019-06-05 23:25 UTC (permalink / raw) To: Bjorn Andersson Cc: Dmitry Torokhov, Jiri Kosina, Benjamin Tissoires, Lee Jones, Rob Herring, Mark Rutland, Andy Gross, David Brown, Hans de Goede, open list:HID CORE LAYER, devicetree, MSM, lkml On Tue, May 21, 2019 at 10:42 AM Bjorn Andersson <bjorn.andersson@linaro.org> wrote: > > On Tue 23 Apr 09:06 PDT 2019, Jeffrey Hugo wrote: > > > There needs to be coordination between hid-quirks and the elan_i2c driver > > about which devices are handled by what drivers. Currently, both use > > whitelists, which results in valid devices being unhandled by default, > > when they should not be rejected by hid-quirks. This is quickly becoming > > an issue. > > > > Since elan_i2c has a maintained whitelist of what devices it will handle, > > use that to implement a blacklist in hid-quirks so that only the devices > > that need to be handled by elan_i2c get rejected by hid-quirks, and > > everything else is handled by default. The downside is the whitelist and > > blacklist need to be kept in sync. > > > > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > > Jiri, the two patches in this series doesn't have a build time > dependency, so if you take this one through your tree I'll take 2/2 > through arm-soc. Ping? Is this good from the HID perspective? I would really like to see this queued for 5.3. > > Regards, > Bjorn > > > Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > > --- > > drivers/hid/hid-quirks.c | 64 ++++++++++++++++++++++++----- > > drivers/input/mouse/elan_i2c_core.c | 4 ++ > > 2 files changed, 58 insertions(+), 10 deletions(-) > > > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > > index 77ffba48cc73..656485e08eb7 100644 > > --- a/drivers/hid/hid-quirks.c > > +++ b/drivers/hid/hid-quirks.c > > @@ -987,17 +987,61 @@ bool hid_ignore(struct hid_device *hdev) > > break; > > case USB_VENDOR_ID_ELAN: > > /* > > - * Many Elan devices have a product id of 0x0401 and are handled > > - * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev > > - * is not (and cannot be) handled by that driver -> > > - * Ignore all 0x0401 devs except for the ELAN0800 dev. > > + * Blacklist of everything that gets handled by the elan_i2c > > + * input driver. This should be kept in sync with the whitelist > > + * that exists in that driver. This avoids disabling valid > > + * touchpads and other ELAN devices. > > */ > > - if (hdev->product == 0x0401 && > > - strncmp(hdev->name, "ELAN0800", 8) != 0) > > - return true; > > - /* Same with product id 0x0400 */ > > - if (hdev->product == 0x0400 && > > - strncmp(hdev->name, "QTEC0001", 8) != 0) > > + if ((hdev->product == 0x0401 || hdev->product == 0x0400) && > > + (strncmp(hdev->name, "ELAN0000", 8) == 0 || > > + strncmp(hdev->name, "ELAN0100", 8) == 0 || > > + strncmp(hdev->name, "ELAN0600", 8) == 0 || > > + strncmp(hdev->name, "ELAN0601", 8) == 0 || > > + strncmp(hdev->name, "ELAN0602", 8) == 0 || > > + strncmp(hdev->name, "ELAN0603", 8) == 0 || > > + strncmp(hdev->name, "ELAN0604", 8) == 0 || > > + strncmp(hdev->name, "ELAN0605", 8) == 0 || > > + strncmp(hdev->name, "ELAN0606", 8) == 0 || > > + strncmp(hdev->name, "ELAN0607", 8) == 0 || > > + strncmp(hdev->name, "ELAN0608", 8) == 0 || > > + strncmp(hdev->name, "ELAN0609", 8) == 0 || > > + strncmp(hdev->name, "ELAN060B", 8) == 0 || > > + strncmp(hdev->name, "ELAN060C", 8) == 0 || > > + strncmp(hdev->name, "ELAN060F", 8) == 0 || > > + strncmp(hdev->name, "ELAN0610", 8) == 0 || > > + strncmp(hdev->name, "ELAN0611", 8) == 0 || > > + strncmp(hdev->name, "ELAN0612", 8) == 0 || > > + strncmp(hdev->name, "ELAN0613", 8) == 0 || > > + strncmp(hdev->name, "ELAN0614", 8) == 0 || > > + strncmp(hdev->name, "ELAN0615", 8) == 0 || > > + strncmp(hdev->name, "ELAN0616", 8) == 0 || > > + strncmp(hdev->name, "ELAN0617", 8) == 0 || > > + strncmp(hdev->name, "ELAN0618", 8) == 0 || > > + strncmp(hdev->name, "ELAN0619", 8) == 0 || > > + strncmp(hdev->name, "ELAN061A", 8) == 0 || > > + strncmp(hdev->name, "ELAN061B", 8) == 0 || > > + strncmp(hdev->name, "ELAN061C", 8) == 0 || > > + strncmp(hdev->name, "ELAN061D", 8) == 0 || > > + strncmp(hdev->name, "ELAN061E", 8) == 0 || > > + strncmp(hdev->name, "ELAN061F", 8) == 0 || > > + strncmp(hdev->name, "ELAN0620", 8) == 0 || > > + strncmp(hdev->name, "ELAN0621", 8) == 0 || > > + strncmp(hdev->name, "ELAN0622", 8) == 0 || > > + strncmp(hdev->name, "ELAN0623", 8) == 0 || > > + strncmp(hdev->name, "ELAN0624", 8) == 0 || > > + strncmp(hdev->name, "ELAN0625", 8) == 0 || > > + strncmp(hdev->name, "ELAN0626", 8) == 0 || > > + strncmp(hdev->name, "ELAN0627", 8) == 0 || > > + strncmp(hdev->name, "ELAN0628", 8) == 0 || > > + strncmp(hdev->name, "ELAN0629", 8) == 0 || > > + strncmp(hdev->name, "ELAN062A", 8) == 0 || > > + strncmp(hdev->name, "ELAN062B", 8) == 0 || > > + strncmp(hdev->name, "ELAN062C", 8) == 0 || > > + strncmp(hdev->name, "ELAN062D", 8) == 0 || > > + strncmp(hdev->name, "ELAN0631", 8) == 0 || > > + strncmp(hdev->name, "ELAN0632", 8) == 0 || > > + strncmp(hdev->name, "ELAN1000", 8) == 0 || > > + strncmp(hdev->name, "elan,ekth3000", 13) == 0)) > > return true; > > break; > > } > > diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c > > index f9525d6f0bfe..3ded19528cd4 100644 > > --- a/drivers/input/mouse/elan_i2c_core.c > > +++ b/drivers/input/mouse/elan_i2c_core.c > > @@ -1332,6 +1332,10 @@ static const struct i2c_device_id elan_id[] = { > > }; > > MODULE_DEVICE_TABLE(i2c, elan_id); > > > > +/* > > + * when these whtielists get updated, the corresponding blacklist in hid-quirks > > + * needs to be updated to match. > > + */ > > #ifdef CONFIG_ACPI > > static const struct acpi_device_id elan_acpi_id[] = { > > { "ELAN0000", 0 }, > > -- > > 2.17.1 > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling 2019-06-05 23:25 ` Jeffrey Hugo @ 2019-06-06 7:06 ` Benjamin Tissoires 2019-06-06 14:30 ` Jeffrey Hugo 0 siblings, 1 reply; 16+ messages in thread From: Benjamin Tissoires @ 2019-06-06 7:06 UTC (permalink / raw) To: Jeffrey Hugo Cc: Bjorn Andersson, Dmitry Torokhov, Jiri Kosina, Lee Jones, Rob Herring, Mark Rutland, Andy Gross, David Brown, Hans de Goede, open list:HID CORE LAYER, devicetree, MSM, lkml On Thu, Jun 6, 2019 at 1:25 AM Jeffrey Hugo <jeffrey.l.hugo@gmail.com> wrote: > > On Tue, May 21, 2019 at 10:42 AM Bjorn Andersson > <bjorn.andersson@linaro.org> wrote: > > > > On Tue 23 Apr 09:06 PDT 2019, Jeffrey Hugo wrote: > > > > > There needs to be coordination between hid-quirks and the elan_i2c driver > > > about which devices are handled by what drivers. Currently, both use > > > whitelists, which results in valid devices being unhandled by default, > > > when they should not be rejected by hid-quirks. This is quickly becoming > > > an issue. > > > > > > Since elan_i2c has a maintained whitelist of what devices it will handle, > > > use that to implement a blacklist in hid-quirks so that only the devices > > > that need to be handled by elan_i2c get rejected by hid-quirks, and > > > everything else is handled by default. The downside is the whitelist and > > > blacklist need to be kept in sync. > > > > > > > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > > > > Jiri, the two patches in this series doesn't have a build time > > dependency, so if you take this one through your tree I'll take 2/2 > > through arm-soc. > > Ping? Is this good from the HID perspective? I would really like to > see this queued for 5.3. > Sorry, this felt through the cracks. I'm fine with the idea of the patch, but I just realized what bugged me: we should instead have a static array of the various ACPI matches, instead of duplicating the various strncmp. So IMO, we should: - merge patch 2/2 through Bjorn's tree (or with any changes he would request) - have a v5 for the HID/input part with: * a static array of the names to match against in hid-quirks.c * separate the elan_i2c trivial change in its separate patch as there are already a few changes committed in the input tree, which is different from the HID tree. I don't expect any conflicts though, so if Dmitry is fine, I can take the whole input/HID part through the HID tree, but a separate patch would be more obvious in case of a conflict. Cheers, Benjamin > > > > Regards, > > Bjorn > > > > > Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> > > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > > > --- > > > drivers/hid/hid-quirks.c | 64 ++++++++++++++++++++++++----- > > > drivers/input/mouse/elan_i2c_core.c | 4 ++ > > > 2 files changed, 58 insertions(+), 10 deletions(-) > > > > > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > > > index 77ffba48cc73..656485e08eb7 100644 > > > --- a/drivers/hid/hid-quirks.c > > > +++ b/drivers/hid/hid-quirks.c > > > @@ -987,17 +987,61 @@ bool hid_ignore(struct hid_device *hdev) > > > break; > > > case USB_VENDOR_ID_ELAN: > > > /* > > > - * Many Elan devices have a product id of 0x0401 and are handled > > > - * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev > > > - * is not (and cannot be) handled by that driver -> > > > - * Ignore all 0x0401 devs except for the ELAN0800 dev. > > > + * Blacklist of everything that gets handled by the elan_i2c > > > + * input driver. This should be kept in sync with the whitelist > > > + * that exists in that driver. This avoids disabling valid > > > + * touchpads and other ELAN devices. > > > */ > > > - if (hdev->product == 0x0401 && > > > - strncmp(hdev->name, "ELAN0800", 8) != 0) > > > - return true; > > > - /* Same with product id 0x0400 */ > > > - if (hdev->product == 0x0400 && > > > - strncmp(hdev->name, "QTEC0001", 8) != 0) > > > + if ((hdev->product == 0x0401 || hdev->product == 0x0400) && > > > + (strncmp(hdev->name, "ELAN0000", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0100", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0600", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0601", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0602", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0603", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0604", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0605", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0606", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0607", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0608", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0609", 8) == 0 || > > > + strncmp(hdev->name, "ELAN060B", 8) == 0 || > > > + strncmp(hdev->name, "ELAN060C", 8) == 0 || > > > + strncmp(hdev->name, "ELAN060F", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0610", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0611", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0612", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0613", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0614", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0615", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0616", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0617", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0618", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0619", 8) == 0 || > > > + strncmp(hdev->name, "ELAN061A", 8) == 0 || > > > + strncmp(hdev->name, "ELAN061B", 8) == 0 || > > > + strncmp(hdev->name, "ELAN061C", 8) == 0 || > > > + strncmp(hdev->name, "ELAN061D", 8) == 0 || > > > + strncmp(hdev->name, "ELAN061E", 8) == 0 || > > > + strncmp(hdev->name, "ELAN061F", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0620", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0621", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0622", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0623", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0624", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0625", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0626", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0627", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0628", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0629", 8) == 0 || > > > + strncmp(hdev->name, "ELAN062A", 8) == 0 || > > > + strncmp(hdev->name, "ELAN062B", 8) == 0 || > > > + strncmp(hdev->name, "ELAN062C", 8) == 0 || > > > + strncmp(hdev->name, "ELAN062D", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0631", 8) == 0 || > > > + strncmp(hdev->name, "ELAN0632", 8) == 0 || > > > + strncmp(hdev->name, "ELAN1000", 8) == 0 || > > > + strncmp(hdev->name, "elan,ekth3000", 13) == 0)) > > > return true; > > > break; > > > } > > > diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c > > > index f9525d6f0bfe..3ded19528cd4 100644 > > > --- a/drivers/input/mouse/elan_i2c_core.c > > > +++ b/drivers/input/mouse/elan_i2c_core.c > > > @@ -1332,6 +1332,10 @@ static const struct i2c_device_id elan_id[] = { > > > }; > > > MODULE_DEVICE_TABLE(i2c, elan_id); > > > > > > +/* > > > + * when these whtielists get updated, the corresponding blacklist in hid-quirks > > > + * needs to be updated to match. > > > + */ > > > #ifdef CONFIG_ACPI > > > static const struct acpi_device_id elan_acpi_id[] = { > > > { "ELAN0000", 0 }, > > > -- > > > 2.17.1 > > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling 2019-06-06 7:06 ` Benjamin Tissoires @ 2019-06-06 14:30 ` Jeffrey Hugo 0 siblings, 0 replies; 16+ messages in thread From: Jeffrey Hugo @ 2019-06-06 14:30 UTC (permalink / raw) To: Benjamin Tissoires Cc: Bjorn Andersson, Dmitry Torokhov, Jiri Kosina, Lee Jones, Rob Herring, Mark Rutland, Andy Gross, David Brown, Hans de Goede, open list:HID CORE LAYER, devicetree, MSM, lkml On Thu, Jun 6, 2019 at 1:07 AM Benjamin Tissoires <benjamin.tissoires@redhat.com> wrote: > > On Thu, Jun 6, 2019 at 1:25 AM Jeffrey Hugo <jeffrey.l.hugo@gmail.com> wrote: > > > > On Tue, May 21, 2019 at 10:42 AM Bjorn Andersson > > <bjorn.andersson@linaro.org> wrote: > > > > > > On Tue 23 Apr 09:06 PDT 2019, Jeffrey Hugo wrote: > > > > > > > There needs to be coordination between hid-quirks and the elan_i2c driver > > > > about which devices are handled by what drivers. Currently, both use > > > > whitelists, which results in valid devices being unhandled by default, > > > > when they should not be rejected by hid-quirks. This is quickly becoming > > > > an issue. > > > > > > > > Since elan_i2c has a maintained whitelist of what devices it will handle, > > > > use that to implement a blacklist in hid-quirks so that only the devices > > > > that need to be handled by elan_i2c get rejected by hid-quirks, and > > > > everything else is handled by default. The downside is the whitelist and > > > > blacklist need to be kept in sync. > > > > > > > > > > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > > > > > > Jiri, the two patches in this series doesn't have a build time > > > dependency, so if you take this one through your tree I'll take 2/2 > > > through arm-soc. > > > > Ping? Is this good from the HID perspective? I would really like to > > see this queued for 5.3. > > > > Sorry, this felt through the cracks. No problem. > > I'm fine with the idea of the patch, but I just realized what bugged me: > we should instead have a static array of the various ACPI matches, > instead of duplicating the various strncmp. > > So IMO, we should: > - merge patch 2/2 through Bjorn's tree (or with any changes he would request) > - have a v5 for the HID/input part with: > * a static array of the names to match against in hid-quirks.c > * separate the elan_i2c trivial change in its separate patch as > there are already a few changes committed in the input tree, which is > different from the HID tree. I don't expect any conflicts though, so > if Dmitry is fine, I can take the whole input/HID part through the HID > tree, but a separate patch would be more obvious in case of a > conflict. Ok. Will respin today. > > Cheers, > Benjamin > > > > > > > Regards, > > > Bjorn > > > > > > > Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> > > > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > > > > --- > > > > drivers/hid/hid-quirks.c | 64 ++++++++++++++++++++++++----- > > > > drivers/input/mouse/elan_i2c_core.c | 4 ++ > > > > 2 files changed, 58 insertions(+), 10 deletions(-) > > > > > > > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > > > > index 77ffba48cc73..656485e08eb7 100644 > > > > --- a/drivers/hid/hid-quirks.c > > > > +++ b/drivers/hid/hid-quirks.c > > > > @@ -987,17 +987,61 @@ bool hid_ignore(struct hid_device *hdev) > > > > break; > > > > case USB_VENDOR_ID_ELAN: > > > > /* > > > > - * Many Elan devices have a product id of 0x0401 and are handled > > > > - * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev > > > > - * is not (and cannot be) handled by that driver -> > > > > - * Ignore all 0x0401 devs except for the ELAN0800 dev. > > > > + * Blacklist of everything that gets handled by the elan_i2c > > > > + * input driver. This should be kept in sync with the whitelist > > > > + * that exists in that driver. This avoids disabling valid > > > > + * touchpads and other ELAN devices. > > > > */ > > > > - if (hdev->product == 0x0401 && > > > > - strncmp(hdev->name, "ELAN0800", 8) != 0) > > > > - return true; > > > > - /* Same with product id 0x0400 */ > > > > - if (hdev->product == 0x0400 && > > > > - strncmp(hdev->name, "QTEC0001", 8) != 0) > > > > + if ((hdev->product == 0x0401 || hdev->product == 0x0400) && > > > > + (strncmp(hdev->name, "ELAN0000", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0100", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0600", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0601", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0602", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0603", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0604", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0605", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0606", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0607", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0608", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0609", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN060B", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN060C", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN060F", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0610", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0611", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0612", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0613", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0614", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0615", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0616", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0617", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0618", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0619", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN061A", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN061B", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN061C", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN061D", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN061E", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN061F", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0620", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0621", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0622", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0623", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0624", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0625", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0626", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0627", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0628", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0629", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN062A", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN062B", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN062C", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN062D", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0631", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN0632", 8) == 0 || > > > > + strncmp(hdev->name, "ELAN1000", 8) == 0 || > > > > + strncmp(hdev->name, "elan,ekth3000", 13) == 0)) > > > > return true; > > > > break; > > > > } > > > > diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c > > > > index f9525d6f0bfe..3ded19528cd4 100644 > > > > --- a/drivers/input/mouse/elan_i2c_core.c > > > > +++ b/drivers/input/mouse/elan_i2c_core.c > > > > @@ -1332,6 +1332,10 @@ static const struct i2c_device_id elan_id[] = { > > > > }; > > > > MODULE_DEVICE_TABLE(i2c, elan_id); > > > > > > > > +/* > > > > + * when these whtielists get updated, the corresponding blacklist in hid-quirks > > > > + * needs to be updated to match. > > > > + */ > > > > #ifdef CONFIG_ACPI > > > > static const struct acpi_device_id elan_acpi_id[] = { > > > > { "ELAN0000", 0 }, > > > > -- > > > > 2.17.1 > > > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling 2019-04-23 16:06 ` [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling Jeffrey Hugo 2019-05-21 16:43 ` Bjorn Andersson @ 2019-06-06 5:20 ` Lee Jones 1 sibling, 0 replies; 16+ messages in thread From: Lee Jones @ 2019-06-06 5:20 UTC (permalink / raw) To: Jeffrey Hugo Cc: dmitry.torokhov, jikos, benjamin.tissoires, bjorn.andersson, robh+dt, mark.rutland, agross, david.brown, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel On Tue, 23 Apr 2019, Jeffrey Hugo wrote: > There needs to be coordination between hid-quirks and the elan_i2c driver > about which devices are handled by what drivers. Currently, both use > whitelists, which results in valid devices being unhandled by default, > when they should not be rejected by hid-quirks. This is quickly becoming > an issue. > > Since elan_i2c has a maintained whitelist of what devices it will handle, > use that to implement a blacklist in hid-quirks so that only the devices > that need to be handled by elan_i2c get rejected by hid-quirks, and > everything else is handled by default. The downside is the whitelist and > blacklist need to be kept in sync. > > Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > --- > drivers/hid/hid-quirks.c | 64 ++++++++++++++++++++++++----- > drivers/input/mouse/elan_i2c_core.c | 4 ++ > 2 files changed, 58 insertions(+), 10 deletions(-) Reviewed-by: Lee Jones <lee.jones@linaro.org> Tested-by: Lee Jones <lee.jones@linaro.org> -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-04-23 16:05 ` Jeffrey Hugo (?) (?) @ 2019-04-23 16:06 ` Jeffrey Hugo 2019-04-26 9:48 ` Noob 2019-06-06 5:50 ` Lee Jones -1 siblings, 2 replies; 16+ messages in thread From: Jeffrey Hugo @ 2019-04-23 16:06 UTC (permalink / raw) To: bjorn.andersson, robh+dt, mark.rutland, agross, david.brown Cc: lee.jones, dmitry.torokhov, jikos, benjamin.tissoires, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel, Jeffrey Hugo This adds the initial DT for the Lenovo Miix 630 laptop. Supported functionality includes USB (host), microSD-card, keyboard, and trackpad. Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ 3 files changed, 309 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi create mode 100644 arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 21d548f02d39..c3e4307bcbd4 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb +dtb-$(CONFIG_ARCH_QCOM) += msm8998-lenovo-miix-630.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb diff --git a/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi b/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi new file mode 100644 index 000000000000..1a341d4b1597 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi @@ -0,0 +1,278 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */ + +/* + * Common include for MSM8998 clamshell devices, ie the Lenovo Miix 630, + * Asus NovaGo TP370QL, and HP Envy x2. All three devices are basically the + * same, with differences in peripherals. + */ + +#include "msm8998.dtsi" +#include "pm8998.dtsi" +#include "pm8005.dtsi" + +/ { + chosen { + }; + + thermal-zones { + battery-thermal { + polling-delay-passive = <250>; + polling-delay = <1000>; + + thermal-sensors = <&tsens0 0>; + + trips { + battery_crit: trip0 { + temperature = <60000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + }; + + skin-thermal { + polling-delay-passive = <250>; + polling-delay = <1000>; + + thermal-sensors = <&tsens1 5>; + + trips { + skin_alert: trip0 { + temperature = <44000>; + hysteresis = <2000>; + type = "passive"; + }; + + skip_crit: trip1 { + temperature = <70000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + }; + }; + + vph_pwr: vph-pwr-regulator { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + regulator-always-on; + regulator-boot-on; + }; +}; + +&qusb2phy { + status = "okay"; + + vdda-pll-supply = <&vreg_l12a_1p8>; + vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; +}; + +&rpm_requests { + pm8998-regulators { + compatible = "qcom,rpm-pm8998-regulators"; + + vdd_s1-supply = <&vph_pwr>; + vdd_s2-supply = <&vph_pwr>; + vdd_s3-supply = <&vph_pwr>; + vdd_s4-supply = <&vph_pwr>; + vdd_s5-supply = <&vph_pwr>; + vdd_s6-supply = <&vph_pwr>; + vdd_s7-supply = <&vph_pwr>; + vdd_s8-supply = <&vph_pwr>; + vdd_s9-supply = <&vph_pwr>; + vdd_s10-supply = <&vph_pwr>; + vdd_s11-supply = <&vph_pwr>; + vdd_s12-supply = <&vph_pwr>; + vdd_s13-supply = <&vph_pwr>; + vdd_l1_l27-supply = <&vreg_s7a_1p025>; + vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>; + vdd_l3_l11-supply = <&vreg_s7a_1p025>; + vdd_l4_l5-supply = <&vreg_s7a_1p025>; + vdd_l6-supply = <&vreg_s5a_2p04>; + vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>; + vdd_l9-supply = <&vph_pwr>; + vdd_l10_l23_l25-supply = <&vph_pwr>; + vdd_l13_l19_l21-supply = <&vph_pwr>; + vdd_l16_l28-supply = <&vph_pwr>; + vdd_l18_l22-supply = <&vph_pwr>; + vdd_l20_l24-supply = <&vph_pwr>; + vdd_l26-supply = <&vreg_s3a_1p35>; + vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>; + + vreg_s3a_1p35: s3 { + regulator-min-microvolt = <1352000>; + regulator-max-microvolt = <1352000>; + }; + vreg_s4a_1p8: s4 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-allow-set-load; + }; + vreg_s5a_2p04: s5 { + regulator-min-microvolt = <1904000>; + regulator-max-microvolt = <2040000>; + }; + vreg_s7a_1p025: s7 { + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1028000>; + }; + vreg_l1a_0p875: l1 { + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <880000>; + regulator-allow-set-load; + }; + vreg_l2a_1p2: l2 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-allow-set-load; + }; + vreg_l3a_1p0: l3 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + vreg_l5a_0p8: l5 { + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + }; + vreg_l6a_1p8: l6 { + regulator-min-microvolt = <1808000>; + regulator-max-microvolt = <1808000>; + }; + vreg_l7a_1p8: l7 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + vreg_l8a_1p2: l8 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + vreg_l9a_1p8: l9 { + regulator-min-microvolt = <1808000>; + regulator-max-microvolt = <2960000>; + }; + vreg_l10a_1p8: l10 { + regulator-min-microvolt = <1808000>; + regulator-max-microvolt = <2960000>; + }; + vreg_l11a_1p0: l11 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + vreg_l12a_1p8: l12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + vreg_l13a_2p95: l13 { + regulator-min-microvolt = <1808000>; + regulator-max-microvolt = <2960000>; + }; + vreg_l14a_1p88: l14 { + regulator-min-microvolt = <1880000>; + regulator-max-microvolt = <1880000>; + }; + vreg_15a_1p8: l15 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + vreg_l16a_2p7: l16 { + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <2704000>; + }; + vreg_l17a_1p3: l17 { + regulator-min-microvolt = <1304000>; + regulator-max-microvolt = <1304000>; + }; + vreg_l18a_2p7: l18 { + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <2704000>; + }; + vreg_l19a_3p0: l19 { + regulator-min-microvolt = <3008000>; + regulator-max-microvolt = <3008000>; + }; + vreg_l20a_2p95: l20 { + regulator-min-microvolt = <2960000>; + regulator-max-microvolt = <2960000>; + regulator-allow-set-load; + }; + vreg_l21a_2p95: l21 { + regulator-min-microvolt = <2960000>; + regulator-max-microvolt = <2960000>; + regulator-allow-set-load; + regulator-system-load = <800000>; + }; + vreg_l22a_2p85: l22 { + regulator-min-microvolt = <2864000>; + regulator-max-microvolt = <2864000>; + }; + vreg_l23a_3p3: l23 { + regulator-min-microvolt = <3312000>; + regulator-max-microvolt = <3312000>; + }; + vreg_l24a_3p075: l24 { + regulator-min-microvolt = <3088000>; + regulator-max-microvolt = <3088000>; + }; + vreg_l25a_3p3: l25 { + regulator-min-microvolt = <3104000>; + regulator-max-microvolt = <3312000>; + }; + vreg_l26a_1p2: l26 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + vreg_l28_3p0: l28 { + regulator-min-microvolt = <3008000>; + regulator-max-microvolt = <3008000>; + }; + + vreg_lvs1a_1p8: lvs1 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + vreg_lvs2a_1p8: lvs2 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + }; +}; + +&tlmm { + gpio-reserved-ranges = <0 4>, <81 4>; + + touchpad: touchpad { + config { + pins = "gpio123"; + bias-pull-up; /* pull up */ + }; + }; +}; + +&sdhc2 { + status = "okay"; + + vmmc-supply = <&vreg_l21a_2p95>; + vqmmc-supply = <&vreg_l13a_2p95>; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; +}; + +&usb3 { + status = "okay"; +}; + +&usb3_dwc3 { + dr_mode = "host"; /* Force to host until we have Type-C hooked up */ +}; + +&usb3phy { + status = "okay"; + + vdda-phy-supply = <&vreg_l1a_0p875>; + vdda-pll-supply = <&vreg_l2a_1p2>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts b/arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts new file mode 100644 index 000000000000..407c6a32911c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */ + +/dts-v1/; + +#include "msm8998-clamshell.dtsi" + +/ { + model = "Lenovo Miix 630"; + compatible = "lenovo,miix-630", "qcom,msm8998"; +}; + +&blsp1_i2c6 { + status = "okay"; + + keyboard@3a { + compatible = "hid-over-i2c"; + interrupt-parent = <&tlmm>; + interrupts = <0x79 IRQ_TYPE_LEVEL_LOW>; + reg = <0x3a>; + hid-descr-addr = <0x0001>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchpad>; + }; +}; + +&sdhc2 { + cd-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>; +}; -- 2.17.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-04-23 16:06 ` [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 Jeffrey Hugo @ 2019-04-26 9:48 ` Noob 2019-06-06 5:50 ` Lee Jones 1 sibling, 0 replies; 16+ messages in thread From: Noob @ 2019-04-26 9:48 UTC (permalink / raw) To: Jeffrey Hugo; +Cc: Amit Kucheria, Bjorn Andersson, Andy Gross, MSM On 23/04/2019 18:06, Jeffrey Hugo wrote: > This adds the initial DT for the Lenovo Miix 630 laptop. Supported > functionality includes USB (host), microSD-card, keyboard, and trackpad. > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > --- > arch/arm64/boot/dts/qcom/Makefile | 1 + > .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ > .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ > 3 files changed, 309 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi > create mode 100644 arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > index 21d548f02d39..c3e4307bcbd4 100644 > --- a/arch/arm64/boot/dts/qcom/Makefile > +++ b/arch/arm64/boot/dts/qcom/Makefile > @@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb > +dtb-$(CONFIG_ARCH_QCOM) += msm8998-lenovo-miix-630.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb > diff --git a/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi b/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi > new file mode 100644 > index 000000000000..1a341d4b1597 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi > @@ -0,0 +1,278 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */ > + > +/* > + * Common include for MSM8998 clamshell devices, ie the Lenovo Miix 630, > + * Asus NovaGo TP370QL, and HP Envy x2. All three devices are basically the > + * same, with differences in peripherals. > + */ > + > +#include "msm8998.dtsi" > +#include "pm8998.dtsi" > +#include "pm8005.dtsi" > + > +/ { > + chosen { > + }; > + > + thermal-zones { > + battery-thermal { > + polling-delay-passive = <250>; > + polling-delay = <1000>; > + > + thermal-sensors = <&tsens0 0>; > + > + trips { > + battery_crit: trip0 { > + temperature = <60000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > + }; > + > + skin-thermal { > + polling-delay-passive = <250>; > + polling-delay = <1000>; > + > + thermal-sensors = <&tsens1 5>; > + > + trips { > + skin_alert: trip0 { > + temperature = <44000>; > + hysteresis = <2000>; > + type = "passive"; > + }; > + > + skip_crit: trip1 { > + temperature = <70000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > + }; > + }; Note that these thermal-zones are likely incorrect: https://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git/commit/?h=for-next&id=ad480e0149cfc10defe76e88354b977360adb7a1 Regards. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-04-23 16:06 ` [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 Jeffrey Hugo 2019-04-26 9:48 ` Noob @ 2019-06-06 5:50 ` Lee Jones 2019-06-06 7:26 ` Bjorn Andersson 1 sibling, 1 reply; 16+ messages in thread From: Lee Jones @ 2019-06-06 5:50 UTC (permalink / raw) To: Jeffrey Hugo Cc: bjorn.andersson, robh+dt, mark.rutland, agross, david.brown, dmitry.torokhov, jikos, benjamin.tissoires, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel On Tue, 23 Apr 2019, Jeffrey Hugo wrote: > This adds the initial DT for the Lenovo Miix 630 laptop. Supported > functionality includes USB (host), microSD-card, keyboard, and trackpad. > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > --- > arch/arm64/boot/dts/qcom/Makefile | 1 + > .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ > .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ What's happening with this patch? It's been on the list a while now. I'm waiting for it to be accepted, since there are patches I wish to submit which are based on it. Who is responsible for merging these? > 3 files changed, 309 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi > create mode 100644 arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > index 21d548f02d39..c3e4307bcbd4 100644 > --- a/arch/arm64/boot/dts/qcom/Makefile > +++ b/arch/arm64/boot/dts/qcom/Makefile > @@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb > +dtb-$(CONFIG_ARCH_QCOM) += msm8998-lenovo-miix-630.dtb > dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb > diff --git a/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi b/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi > new file mode 100644 > index 000000000000..1a341d4b1597 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi > @@ -0,0 +1,278 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */ > + > +/* > + * Common include for MSM8998 clamshell devices, ie the Lenovo Miix 630, > + * Asus NovaGo TP370QL, and HP Envy x2. All three devices are basically the > + * same, with differences in peripherals. > + */ > + > +#include "msm8998.dtsi" > +#include "pm8998.dtsi" > +#include "pm8005.dtsi" > + > +/ { > + chosen { > + }; > + > + thermal-zones { > + battery-thermal { > + polling-delay-passive = <250>; > + polling-delay = <1000>; > + > + thermal-sensors = <&tsens0 0>; > + > + trips { > + battery_crit: trip0 { > + temperature = <60000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > + }; > + > + skin-thermal { > + polling-delay-passive = <250>; > + polling-delay = <1000>; > + > + thermal-sensors = <&tsens1 5>; > + > + trips { > + skin_alert: trip0 { > + temperature = <44000>; > + hysteresis = <2000>; > + type = "passive"; > + }; > + > + skip_crit: trip1 { > + temperature = <70000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > + }; > + }; > + > + vph_pwr: vph-pwr-regulator { > + compatible = "regulator-fixed"; > + regulator-name = "vph_pwr"; > + regulator-always-on; > + regulator-boot-on; > + }; > +}; > + > +&qusb2phy { > + status = "okay"; > + > + vdda-pll-supply = <&vreg_l12a_1p8>; > + vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; > +}; > + > +&rpm_requests { > + pm8998-regulators { > + compatible = "qcom,rpm-pm8998-regulators"; > + > + vdd_s1-supply = <&vph_pwr>; > + vdd_s2-supply = <&vph_pwr>; > + vdd_s3-supply = <&vph_pwr>; > + vdd_s4-supply = <&vph_pwr>; > + vdd_s5-supply = <&vph_pwr>; > + vdd_s6-supply = <&vph_pwr>; > + vdd_s7-supply = <&vph_pwr>; > + vdd_s8-supply = <&vph_pwr>; > + vdd_s9-supply = <&vph_pwr>; > + vdd_s10-supply = <&vph_pwr>; > + vdd_s11-supply = <&vph_pwr>; > + vdd_s12-supply = <&vph_pwr>; > + vdd_s13-supply = <&vph_pwr>; > + vdd_l1_l27-supply = <&vreg_s7a_1p025>; > + vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>; > + vdd_l3_l11-supply = <&vreg_s7a_1p025>; > + vdd_l4_l5-supply = <&vreg_s7a_1p025>; > + vdd_l6-supply = <&vreg_s5a_2p04>; > + vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>; > + vdd_l9-supply = <&vph_pwr>; > + vdd_l10_l23_l25-supply = <&vph_pwr>; > + vdd_l13_l19_l21-supply = <&vph_pwr>; > + vdd_l16_l28-supply = <&vph_pwr>; > + vdd_l18_l22-supply = <&vph_pwr>; > + vdd_l20_l24-supply = <&vph_pwr>; > + vdd_l26-supply = <&vreg_s3a_1p35>; > + vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>; > + > + vreg_s3a_1p35: s3 { > + regulator-min-microvolt = <1352000>; > + regulator-max-microvolt = <1352000>; > + }; > + vreg_s4a_1p8: s4 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-allow-set-load; > + }; > + vreg_s5a_2p04: s5 { > + regulator-min-microvolt = <1904000>; > + regulator-max-microvolt = <2040000>; > + }; > + vreg_s7a_1p025: s7 { > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <1028000>; > + }; > + vreg_l1a_0p875: l1 { > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <880000>; > + regulator-allow-set-load; > + }; > + vreg_l2a_1p2: l2 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-allow-set-load; > + }; > + vreg_l3a_1p0: l3 { > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + }; > + vreg_l5a_0p8: l5 { > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <800000>; > + }; > + vreg_l6a_1p8: l6 { > + regulator-min-microvolt = <1808000>; > + regulator-max-microvolt = <1808000>; > + }; > + vreg_l7a_1p8: l7 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + vreg_l8a_1p2: l8 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + }; > + vreg_l9a_1p8: l9 { > + regulator-min-microvolt = <1808000>; > + regulator-max-microvolt = <2960000>; > + }; > + vreg_l10a_1p8: l10 { > + regulator-min-microvolt = <1808000>; > + regulator-max-microvolt = <2960000>; > + }; > + vreg_l11a_1p0: l11 { > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + }; > + vreg_l12a_1p8: l12 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + vreg_l13a_2p95: l13 { > + regulator-min-microvolt = <1808000>; > + regulator-max-microvolt = <2960000>; > + }; > + vreg_l14a_1p88: l14 { > + regulator-min-microvolt = <1880000>; > + regulator-max-microvolt = <1880000>; > + }; > + vreg_15a_1p8: l15 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + vreg_l16a_2p7: l16 { > + regulator-min-microvolt = <2704000>; > + regulator-max-microvolt = <2704000>; > + }; > + vreg_l17a_1p3: l17 { > + regulator-min-microvolt = <1304000>; > + regulator-max-microvolt = <1304000>; > + }; > + vreg_l18a_2p7: l18 { > + regulator-min-microvolt = <2704000>; > + regulator-max-microvolt = <2704000>; > + }; > + vreg_l19a_3p0: l19 { > + regulator-min-microvolt = <3008000>; > + regulator-max-microvolt = <3008000>; > + }; > + vreg_l20a_2p95: l20 { > + regulator-min-microvolt = <2960000>; > + regulator-max-microvolt = <2960000>; > + regulator-allow-set-load; > + }; > + vreg_l21a_2p95: l21 { > + regulator-min-microvolt = <2960000>; > + regulator-max-microvolt = <2960000>; > + regulator-allow-set-load; > + regulator-system-load = <800000>; > + }; > + vreg_l22a_2p85: l22 { > + regulator-min-microvolt = <2864000>; > + regulator-max-microvolt = <2864000>; > + }; > + vreg_l23a_3p3: l23 { > + regulator-min-microvolt = <3312000>; > + regulator-max-microvolt = <3312000>; > + }; > + vreg_l24a_3p075: l24 { > + regulator-min-microvolt = <3088000>; > + regulator-max-microvolt = <3088000>; > + }; > + vreg_l25a_3p3: l25 { > + regulator-min-microvolt = <3104000>; > + regulator-max-microvolt = <3312000>; > + }; > + vreg_l26a_1p2: l26 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + }; > + vreg_l28_3p0: l28 { > + regulator-min-microvolt = <3008000>; > + regulator-max-microvolt = <3008000>; > + }; > + > + vreg_lvs1a_1p8: lvs1 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + vreg_lvs2a_1p8: lvs2 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + }; > +}; > + > +&tlmm { > + gpio-reserved-ranges = <0 4>, <81 4>; > + > + touchpad: touchpad { > + config { > + pins = "gpio123"; > + bias-pull-up; /* pull up */ > + }; > + }; > +}; > + > +&sdhc2 { > + status = "okay"; > + > + vmmc-supply = <&vreg_l21a_2p95>; > + vqmmc-supply = <&vreg_l13a_2p95>; > + > + pinctrl-names = "default", "sleep"; > + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; > + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; > +}; > + > +&usb3 { > + status = "okay"; > +}; > + > +&usb3_dwc3 { > + dr_mode = "host"; /* Force to host until we have Type-C hooked up */ > +}; > + > +&usb3phy { > + status = "okay"; > + > + vdda-phy-supply = <&vreg_l1a_0p875>; > + vdda-pll-supply = <&vreg_l2a_1p2>; > +}; > diff --git a/arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts b/arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts > new file mode 100644 > index 000000000000..407c6a32911c > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts > @@ -0,0 +1,30 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */ > + > +/dts-v1/; > + > +#include "msm8998-clamshell.dtsi" > + > +/ { > + model = "Lenovo Miix 630"; > + compatible = "lenovo,miix-630", "qcom,msm8998"; > +}; > + > +&blsp1_i2c6 { > + status = "okay"; > + > + keyboard@3a { > + compatible = "hid-over-i2c"; > + interrupt-parent = <&tlmm>; > + interrupts = <0x79 IRQ_TYPE_LEVEL_LOW>; > + reg = <0x3a>; > + hid-descr-addr = <0x0001>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&touchpad>; > + }; > +}; > + > +&sdhc2 { > + cd-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>; > +}; -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-06-06 5:50 ` Lee Jones @ 2019-06-06 7:26 ` Bjorn Andersson 2019-06-06 8:13 ` Lee Jones 0 siblings, 1 reply; 16+ messages in thread From: Bjorn Andersson @ 2019-06-06 7:26 UTC (permalink / raw) To: Lee Jones Cc: Jeffrey Hugo, robh+dt, mark.rutland, agross, david.brown, dmitry.torokhov, jikos, benjamin.tissoires, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel On Wed 05 Jun 22:50 PDT 2019, Lee Jones wrote: > On Tue, 23 Apr 2019, Jeffrey Hugo wrote: > > > This adds the initial DT for the Lenovo Miix 630 laptop. Supported > > functionality includes USB (host), microSD-card, keyboard, and trackpad. > > > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > > --- > > arch/arm64/boot/dts/qcom/Makefile | 1 + > > .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ > > .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ > > What's happening with this patch? > The thermal-zones are wrong, but I'm okay with an incremental patch for that... > It's been on the list a while now. I'm waiting for it to be accepted, > since there are patches I wish to submit which are based on it. > > Who is responsible for merging these? > ...so I've just been waiting for a conclusion on the HID patch before I could pick this up. Regards, Bjorn ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-06-06 7:26 ` Bjorn Andersson @ 2019-06-06 8:13 ` Lee Jones 2019-06-06 8:40 ` Marc Gonzalez 2019-06-06 14:27 ` Jeffrey Hugo 0 siblings, 2 replies; 16+ messages in thread From: Lee Jones @ 2019-06-06 8:13 UTC (permalink / raw) To: Bjorn Andersson Cc: Jeffrey Hugo, robh+dt, mark.rutland, agross, david.brown, dmitry.torokhov, jikos, benjamin.tissoires, hdegoede, linux-input, devicetree, linux-arm-msm, linux-kernel On Thu, 06 Jun 2019, Bjorn Andersson wrote: > On Wed 05 Jun 22:50 PDT 2019, Lee Jones wrote: > > > On Tue, 23 Apr 2019, Jeffrey Hugo wrote: > > > > > This adds the initial DT for the Lenovo Miix 630 laptop. Supported > > > functionality includes USB (host), microSD-card, keyboard, and trackpad. > > > > > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > > > --- > > > arch/arm64/boot/dts/qcom/Makefile | 1 + > > > .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ > > > .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ > > > > What's happening with this patch? > > > > The thermal-zones are wrong, but I'm okay with an incremental patch for > that... I guess it would take you about 10 seconds to whip those out when merging? > > It's been on the list a while now. I'm waiting for it to be accepted, > > since there are patches I wish to submit which are based on it. > > > > Who is responsible for merging these? > > ...so I've just been waiting for a conclusion on the HID patch before I > could pick this up. Aren't they orthogonal? -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-06-06 8:13 ` Lee Jones @ 2019-06-06 8:40 ` Marc Gonzalez 2019-06-06 9:01 ` Lee Jones 2019-06-06 14:27 ` Jeffrey Hugo 1 sibling, 1 reply; 16+ messages in thread From: Marc Gonzalez @ 2019-06-06 8:40 UTC (permalink / raw) To: Lee Jones, Bjorn Andersson, Jeffrey Hugo; +Cc: MSM, LKML On 06/06/2019 10:13, Lee Jones wrote: > On Thu, 06 Jun 2019, Bjorn Andersson wrote: > >> On Wed 05 Jun 22:50 PDT 2019, Lee Jones wrote: >> >>> On Tue, 23 Apr 2019, Jeffrey Hugo wrote: >>> >>>> This adds the initial DT for the Lenovo Miix 630 laptop. Supported >>>> functionality includes USB (host), microSD-card, keyboard, and trackpad. >>>> >>>> Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> >>>> --- >>>> arch/arm64/boot/dts/qcom/Makefile | 1 + >>>> .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ >>>> .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ >>> >>> What's happening with this patch? >>> >> >> The thermal-zones are wrong, but I'm okay with an incremental patch for >> that... > > I guess it would take you about 10 seconds to whip those out when > merging? https://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git/commit/?h=for-next&id=ad480e0149cfc10defe76e88354b977360adb7a1 AFAIU, the fixup is to just drop the thermal-zones section altogether. Regards. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-06-06 8:40 ` Marc Gonzalez @ 2019-06-06 9:01 ` Lee Jones 0 siblings, 0 replies; 16+ messages in thread From: Lee Jones @ 2019-06-06 9:01 UTC (permalink / raw) To: Marc Gonzalez; +Cc: Bjorn Andersson, Jeffrey Hugo, MSM, LKML On Thu, 06 Jun 2019, Marc Gonzalez wrote: > On 06/06/2019 10:13, Lee Jones wrote: > > > On Thu, 06 Jun 2019, Bjorn Andersson wrote: > > > >> On Wed 05 Jun 22:50 PDT 2019, Lee Jones wrote: > >> > >>> On Tue, 23 Apr 2019, Jeffrey Hugo wrote: > >>> > >>>> This adds the initial DT for the Lenovo Miix 630 laptop. Supported > >>>> functionality includes USB (host), microSD-card, keyboard, and trackpad. > >>>> > >>>> Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > >>>> --- > >>>> arch/arm64/boot/dts/qcom/Makefile | 1 + > >>>> .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ > >>>> .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ > >>> > >>> What's happening with this patch? > >>> > >> > >> The thermal-zones are wrong, but I'm okay with an incremental patch for > >> that... > > > > I guess it would take you about 10 seconds to whip those out when > > merging? > > https://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git/commit/?h=for-next&id=ad480e0149cfc10defe76e88354b977360adb7a1 > > AFAIU, the fixup is to just drop the thermal-zones section altogether. Yes, exactly. A 10 second job. -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 2019-06-06 8:13 ` Lee Jones 2019-06-06 8:40 ` Marc Gonzalez @ 2019-06-06 14:27 ` Jeffrey Hugo 1 sibling, 0 replies; 16+ messages in thread From: Jeffrey Hugo @ 2019-06-06 14:27 UTC (permalink / raw) To: Lee Jones Cc: Bjorn Andersson, Rob Herring, Mark Rutland, Andy Gross, David Brown, Dmitry Torokhov, Jiri Kosina, Benjamin Tissoires, Hans de Goede, open list:HID CORE LAYER, devicetree, MSM, lkml On Thu, Jun 6, 2019 at 2:13 AM Lee Jones <lee.jones@linaro.org> wrote: > > On Thu, 06 Jun 2019, Bjorn Andersson wrote: > > > On Wed 05 Jun 22:50 PDT 2019, Lee Jones wrote: > > > > > On Tue, 23 Apr 2019, Jeffrey Hugo wrote: > > > > > > > This adds the initial DT for the Lenovo Miix 630 laptop. Supported > > > > functionality includes USB (host), microSD-card, keyboard, and trackpad. > > > > > > > > Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> > > > > --- > > > > arch/arm64/boot/dts/qcom/Makefile | 1 + > > > > .../boot/dts/qcom/msm8998-clamshell.dtsi | 278 ++++++++++++++++++ > > > > .../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 30 ++ > > > > > > What's happening with this patch? > > > > > > > The thermal-zones are wrong, but I'm okay with an incremental patch for > > that... > > I guess it would take you about 10 seconds to whip those out when > merging? > > > > It's been on the list a while now. I'm waiting for it to be accepted, > > > since there are patches I wish to submit which are based on it. > > > > > > Who is responsible for merging these? > > > > ...so I've just been waiting for a conclusion on the HID patch before I > > could pick this up. > > Aren't they orthogonal? Eh, if the HID stuff changes, we'll probably have to change the DT. Which isn't great. I guess we could also merge this, and fix it up as necessary if there is fall out from the HID stuff. ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2019-06-06 14:30 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-04-23 16:05 [PATCH v4 0/2] Basic DT support for Lenovo Miix 630 Jeffrey Hugo 2019-04-23 16:05 ` Jeffrey Hugo 2019-04-23 16:06 ` [PATCH v4 1/2] HID: quirks: Refactor ELAN 400 and 401 handling Jeffrey Hugo 2019-05-21 16:43 ` Bjorn Andersson 2019-06-05 23:25 ` Jeffrey Hugo 2019-06-06 7:06 ` Benjamin Tissoires 2019-06-06 14:30 ` Jeffrey Hugo 2019-06-06 5:20 ` Lee Jones 2019-04-23 16:06 ` [PATCH v4 2/2] arm64: dts: qcom: Add Lenovo Miix 630 Jeffrey Hugo 2019-04-26 9:48 ` Noob 2019-06-06 5:50 ` Lee Jones 2019-06-06 7:26 ` Bjorn Andersson 2019-06-06 8:13 ` Lee Jones 2019-06-06 8:40 ` Marc Gonzalez 2019-06-06 9:01 ` Lee Jones 2019-06-06 14:27 ` Jeffrey Hugo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.