From: Rob Herring <robh@kernel.org> To: Chen-Yu Tsai <wenst@chromium.org> Cc: Frank Rowand <frowand.list@gmail.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Hsin-Yi Wang <hsinyi@chromium.org>, Dmitry Torokhov <dmitry.torokhov@gmail.com>, andriy.shevchenko@linux.intel.com, Jiri Kosina <jikos@kernel.org>, linus.walleij@linaro.org, broonie@kernel.org, gregkh@linuxfoundation.org, hdegoede@redhat.com, james.clark@arm.com, james@equiv.tech, keescook@chromium.org, petr.tesarik.ext@huawei.com, rafael@kernel.org, tglx@linutronix.de, Jeff LaBundy <jeff@labundy.com>, linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Douglas Anderson <dianders@chromium.org>, Johan Hovold <johan@kernel.org> Subject: Re: [RFC PATCH v2 5/7] of: hw_prober: Support Chromebook SKU ID based component selection Date: Fri, 10 Nov 2023 15:07:16 -0600 [thread overview] Message-ID: <20231110210716.GB419831-robh@kernel.org> (raw) In-Reply-To: <20231109100606.1245545-6-wenst@chromium.org> On Thu, Nov 09, 2023 at 06:06:02PM +0800, Chen-Yu Tsai wrote: > In cases where the same Chromebook model is manufactured with different > components (MIPI DSI panels, MIPI CSI camera sensors, or trackpad / > touchscreens with conflicting addresses), a different SKU ID is > allocated to each specific combination. This SKU ID is exported by the > bootloader into the device tree, and can be used to "discover" which > combination is present on the current machine. > > This change adds a hardware prober that will match the SKU ID against > a provided table, and enable the component for the matched entry based > on the given compatible string. In the MIPI DSI panel and MIPI CSI > camera sensor cases which have OF graphs, it will also update the > remote endpoint to point to the enabled component. This assumes a single > endpoint only. > > This will provide a path to reducing the number of Chromebook device > trees. > > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> > --- > drivers/of/hw_prober.c | 160 +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 160 insertions(+) This certainly does not belong in drivers/of/. > diff --git a/drivers/of/hw_prober.c b/drivers/of/hw_prober.c > index 442da6eff896..4345e5aed6d8 100644 > --- a/drivers/of/hw_prober.c > +++ b/drivers/of/hw_prober.c > @@ -8,6 +8,7 @@ > #include <linux/array_size.h> > #include <linux/i2c.h> > #include <linux/of.h> > +#include <linux/of_graph.h> > #include <linux/platform_device.h> > > #define DRV_NAME "hw_prober" > @@ -108,9 +109,168 @@ static int i2c_component_prober(struct platform_device *pdev, const void *data) > return ret; > } > > +static int cros_get_coreboot_sku_id(struct device *dev, u32 *sku_id) > +{ > + struct device_node *node = NULL; > + int ret; > + > + node = of_find_node_by_path("/firmware/coreboot"); > + if (!node) > + return dev_err_probe(dev, -EINVAL, "Cannot find coreboot firmware node\n"); > + > + ret = of_property_read_u32(node, "sku-id", sku_id); Not documented. Rob
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org> To: Chen-Yu Tsai <wenst@chromium.org> Cc: Frank Rowand <frowand.list@gmail.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Hsin-Yi Wang <hsinyi@chromium.org>, Dmitry Torokhov <dmitry.torokhov@gmail.com>, andriy.shevchenko@linux.intel.com, Jiri Kosina <jikos@kernel.org>, linus.walleij@linaro.org, broonie@kernel.org, gregkh@linuxfoundation.org, hdegoede@redhat.com, james.clark@arm.com, james@equiv.tech, keescook@chromium.org, petr.tesarik.ext@huawei.com, rafael@kernel.org, tglx@linutronix.de, Jeff LaBundy <jeff@labundy.com>, linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Douglas Anderson <dianders@chromium.org>, Johan Hovold <johan@kernel.org> Subject: Re: [RFC PATCH v2 5/7] of: hw_prober: Support Chromebook SKU ID based component selection Date: Fri, 10 Nov 2023 15:07:16 -0600 [thread overview] Message-ID: <20231110210716.GB419831-robh@kernel.org> (raw) In-Reply-To: <20231109100606.1245545-6-wenst@chromium.org> On Thu, Nov 09, 2023 at 06:06:02PM +0800, Chen-Yu Tsai wrote: > In cases where the same Chromebook model is manufactured with different > components (MIPI DSI panels, MIPI CSI camera sensors, or trackpad / > touchscreens with conflicting addresses), a different SKU ID is > allocated to each specific combination. This SKU ID is exported by the > bootloader into the device tree, and can be used to "discover" which > combination is present on the current machine. > > This change adds a hardware prober that will match the SKU ID against > a provided table, and enable the component for the matched entry based > on the given compatible string. In the MIPI DSI panel and MIPI CSI > camera sensor cases which have OF graphs, it will also update the > remote endpoint to point to the enabled component. This assumes a single > endpoint only. > > This will provide a path to reducing the number of Chromebook device > trees. > > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> > --- > drivers/of/hw_prober.c | 160 +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 160 insertions(+) This certainly does not belong in drivers/of/. > diff --git a/drivers/of/hw_prober.c b/drivers/of/hw_prober.c > index 442da6eff896..4345e5aed6d8 100644 > --- a/drivers/of/hw_prober.c > +++ b/drivers/of/hw_prober.c > @@ -8,6 +8,7 @@ > #include <linux/array_size.h> > #include <linux/i2c.h> > #include <linux/of.h> > +#include <linux/of_graph.h> > #include <linux/platform_device.h> > > #define DRV_NAME "hw_prober" > @@ -108,9 +109,168 @@ static int i2c_component_prober(struct platform_device *pdev, const void *data) > return ret; > } > > +static int cros_get_coreboot_sku_id(struct device *dev, u32 *sku_id) > +{ > + struct device_node *node = NULL; > + int ret; > + > + node = of_find_node_by_path("/firmware/coreboot"); > + if (!node) > + return dev_err_probe(dev, -EINVAL, "Cannot find coreboot firmware node\n"); > + > + ret = of_property_read_u32(node, "sku-id", sku_id); Not documented. Rob _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-11-10 21:07 UTC|newest] Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-11-09 10:05 [RFC PATCH v2 0/7] of: Introduce hardware prober driver Chen-Yu Tsai 2023-11-09 10:05 ` Chen-Yu Tsai 2023-11-09 10:05 ` [RFC PATCH v2 1/7] of: base: Add of_device_is_fail Chen-Yu Tsai 2023-11-09 10:05 ` Chen-Yu Tsai 2023-11-09 10:05 ` [RFC PATCH v2 2/7] of: Introduce hardware prober driver Chen-Yu Tsai 2023-11-09 10:05 ` Chen-Yu Tsai 2023-11-09 15:13 ` Rob Herring 2023-11-09 15:13 ` Rob Herring 2023-11-14 8:30 ` Chen-Yu Tsai 2023-11-14 8:30 ` Chen-Yu Tsai 2023-11-09 17:54 ` Andy Shevchenko 2023-11-09 17:54 ` Andy Shevchenko 2023-11-14 8:26 ` Chen-Yu Tsai 2023-11-14 8:26 ` Chen-Yu Tsai 2023-11-09 10:06 ` [RFC PATCH v2 3/7] arm64: dts: mediatek: mt8173-elm-hana: Mark touchscreens and trackpads as fail Chen-Yu Tsai 2023-11-09 10:06 ` Chen-Yu Tsai 2023-11-09 10:06 ` [RFC PATCH v2 4/7] arm64: dts: mediatek: mt8173-elm-hana: Add G2touch G7500 touchscreen Chen-Yu Tsai 2023-11-09 10:06 ` Chen-Yu Tsai 2023-11-09 10:06 ` [RFC PATCH v2 5/7] of: hw_prober: Support Chromebook SKU ID based component selection Chen-Yu Tsai 2023-11-09 10:06 ` Chen-Yu Tsai 2023-11-10 21:07 ` Rob Herring [this message] 2023-11-10 21:07 ` Rob Herring 2023-11-09 10:06 ` [RFC PATCH v2 6/7] dt-bindings: arm: mediatek: Remove SKU specific compatibles for Google Krane Chen-Yu Tsai 2023-11-09 10:06 ` Chen-Yu Tsai 2023-11-10 21:04 ` Rob Herring 2023-11-10 21:04 ` Rob Herring 2023-11-11 0:29 ` Doug Anderson 2023-11-11 0:29 ` Doug Anderson 2023-11-09 10:06 ` [RFC PATCH v2 7/7] arm64: dts: mediatek: mt8183-kukui: Merge Krane device trees Chen-Yu Tsai 2023-11-09 10:06 ` Chen-Yu Tsai 2023-11-09 10:54 ` [RFC PATCH v2 0/7] of: Introduce hardware prober driver AngeloGioacchino Del Regno 2023-11-09 10:54 ` AngeloGioacchino Del Regno 2023-11-09 13:51 ` Rob Herring 2023-11-09 13:51 ` Rob Herring 2023-11-11 0:12 ` Doug Anderson 2023-11-11 0:12 ` Doug Anderson 2023-11-15 19:28 ` Rob Herring 2023-11-15 19:28 ` Rob Herring 2023-11-15 20:44 ` Doug Anderson 2023-11-15 20:44 ` Doug Anderson 2023-11-15 21:34 ` Rob Herring 2023-11-15 21:34 ` Rob Herring 2023-11-15 22:13 ` Doug Anderson 2023-11-15 22:13 ` Doug Anderson 2023-11-16 5:11 ` Chen-Yu Tsai 2023-11-16 5:11 ` Chen-Yu Tsai 2023-11-19 14:34 ` Rob Herring 2023-11-19 14:34 ` Rob Herring 2023-11-16 5:07 ` Chen-Yu Tsai 2023-11-16 5:07 ` Chen-Yu Tsai 2023-11-14 7:05 ` Chen-Yu Tsai 2023-11-14 7:05 ` Chen-Yu Tsai 2023-11-14 8:57 ` Chen-Yu Tsai 2023-11-14 8:57 ` Chen-Yu Tsai 2023-11-14 10:04 ` AngeloGioacchino Del Regno 2023-11-14 10:04 ` AngeloGioacchino Del Regno 2023-11-11 0:22 ` Doug Anderson 2023-11-11 0:22 ` Doug Anderson 2023-11-14 8:44 ` Chen-Yu Tsai 2023-11-14 8:44 ` Chen-Yu Tsai
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231110210716.GB419831-robh@kernel.org \ --to=robh@kernel.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=angelogioacchino.delregno@collabora.com \ --cc=broonie@kernel.org \ --cc=conor+dt@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=dianders@chromium.org \ --cc=dmitry.torokhov@gmail.com \ --cc=frowand.list@gmail.com \ --cc=gregkh@linuxfoundation.org \ --cc=hdegoede@redhat.com \ --cc=hsinyi@chromium.org \ --cc=james.clark@arm.com \ --cc=james@equiv.tech \ --cc=jeff@labundy.com \ --cc=jikos@kernel.org \ --cc=johan@kernel.org \ --cc=keescook@chromium.org \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-input@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=matthias.bgg@gmail.com \ --cc=petr.tesarik.ext@huawei.com \ --cc=rafael@kernel.org \ --cc=tglx@linutronix.de \ --cc=wenst@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.