Merge branch 'dt/linus' into dt/next

Pull-in kunit kconfig fix
This commit is contained in:
Rob Herring (Arm) 2024-11-15 14:03:59 -06:00
commit 28b513b5a6
10 changed files with 107 additions and 8 deletions

View File

@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/elgin,jg10309-01.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Elgin JG10309-01 SPI-controlled display
maintainers:
- Fabio Estevam <festevam@gmail.com>
description: |
The Elgin JG10309-01 SPI-controlled display is used on the RV1108-Elgin-r1
board and is a custom display.
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
properties:
compatible:
const: elgin,jg10309-01
reg:
maxItems: 1
spi-max-frequency:
maximum: 24000000
spi-cpha: true
spi-cpol: true
required:
- compatible
- reg
- spi-cpha
- spi-cpol
additionalProperties: false
examples:
- |
spi {
#address-cells = <1>;
#size-cells = <0>;
display@0 {
compatible = "elgin,jg10309-01";
reg = <0>;
spi-max-frequency = <24000000>;
spi-cpha;
spi-cpol;
};
};

View File

@ -82,9 +82,6 @@ allOf:
enum: enum:
- fsl,ls1043a-extirq - fsl,ls1043a-extirq
- fsl,ls1046a-extirq - fsl,ls1046a-extirq
- fsl,ls1088a-extirq
- fsl,ls2080a-extirq
- fsl,lx2160a-extirq
then: then:
properties: properties:
interrupt-map: interrupt-map:
@ -95,6 +92,29 @@ allOf:
- const: 0xf - const: 0xf
- const: 0 - const: 0
- if:
properties:
compatible:
contains:
enum:
- fsl,ls1088a-extirq
- fsl,ls2080a-extirq
- fsl,lx2160a-extirq
# The driver(drivers/irqchip/irq-ls-extirq.c) have not use standard DT
# function to parser interrupt-map. So it doesn't consider '#address-size'
# in parent interrupt controller, such as GIC.
#
# When dt-binding verify interrupt-map, item data matrix is spitted at
# incorrect position. Remove interrupt-map restriction because it always
# wrong.
then:
properties:
interrupt-map-mask:
items:
- const: 0xf
- const: 0
additionalProperties: false additionalProperties: false
examples: examples:

View File

@ -113,7 +113,7 @@ properties:
msi-parent: msi-parent:
deprecated: true deprecated: true
$ref: /schemas/types.yaml#/definitions/phandle maxItems: 1
description: description:
Describes the MSI controller node handling message Describes the MSI controller node handling message
interrupts for the MC. When there is no translation interrupts for the MC. When there is no translation

View File

@ -101,8 +101,6 @@ properties:
- domintech,dmard09 - domintech,dmard09
# DMARD10: 3-axis Accelerometer # DMARD10: 3-axis Accelerometer
- domintech,dmard10 - domintech,dmard10
# Elgin SPI-controlled LCD
- elgin,jg10309-01
# MMA7660FC: 3-Axis Orientation/Motion Detection Sensor # MMA7660FC: 3-Axis Orientation/Motion Detection Sensor
- fsl,mma7660 - fsl,mma7660
# MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer # MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer

View File

@ -1,4 +1,5 @@
CONFIG_KUNIT=y CONFIG_KUNIT=y
CONFIG_OF=y CONFIG_OF=y
CONFIG_OF_KUNIT_TEST=y CONFIG_OF_KUNIT_TEST=y
CONFIG_OF_OVERLAY=y
CONFIG_OF_OVERLAY_KUNIT_TEST=y CONFIG_OF_OVERLAY_KUNIT_TEST=y

View File

@ -111,7 +111,7 @@ config OF_OVERLAY_KUNIT_TEST
tristate "Device Tree overlay KUnit tests" if !KUNIT_ALL_TESTS tristate "Device Tree overlay KUnit tests" if !KUNIT_ALL_TESTS
depends on KUNIT depends on KUNIT
default KUNIT_ALL_TESTS default KUNIT_ALL_TESTS
select OF_OVERLAY select DTC
help help
This option builds KUnit unit tests for the device tree overlay code. This option builds KUnit unit tests for the device tree overlay code.

View File

@ -10,6 +10,19 @@
#include <kunit/test.h> #include <kunit/test.h>
#include <kunit/resource.h> #include <kunit/resource.h>
#include "of_private.h"
/**
* of_root_kunit_skip() - Skip test if the root node isn't populated
* @test: test to skip if the root node isn't populated
*/
void of_root_kunit_skip(struct kunit *test)
{
if (IS_ENABLED(CONFIG_ARM64) && IS_ENABLED(CONFIG_ACPI) && !of_root)
kunit_skip(test, "arm64+acpi doesn't populate a root node");
}
EXPORT_SYMBOL_GPL(of_root_kunit_skip);
#if defined(CONFIG_OF_OVERLAY) && defined(CONFIG_OF_EARLY_FLATTREE) #if defined(CONFIG_OF_OVERLAY) && defined(CONFIG_OF_EARLY_FLATTREE)
static void of_overlay_fdt_apply_kunit_exit(void *ovcs_id) static void of_overlay_fdt_apply_kunit_exit(void *ovcs_id)
@ -36,6 +49,8 @@ int of_overlay_fdt_apply_kunit(struct kunit *test, void *overlay_fdt,
int ret; int ret;
int *copy_id; int *copy_id;
of_root_kunit_skip(test);
copy_id = kunit_kmalloc(test, sizeof(*copy_id), GFP_KERNEL); copy_id = kunit_kmalloc(test, sizeof(*copy_id), GFP_KERNEL);
if (!copy_id) if (!copy_id)
return -ENOMEM; return -ENOMEM;

View File

@ -43,6 +43,9 @@ extern raw_spinlock_t devtree_lock;
extern struct list_head aliases_lookup; extern struct list_head aliases_lookup;
extern struct kset *of_kset; extern struct kset *of_kset;
struct kunit;
extern void of_root_kunit_skip(struct kunit *test);
#if defined(CONFIG_OF_DYNAMIC) #if defined(CONFIG_OF_DYNAMIC)
extern int of_property_notify(int action, struct device_node *np, extern int of_property_notify(int action, struct device_node *np,
struct property *prop, struct property *old_prop); struct property *prop, struct property *old_prop);

View File

@ -7,6 +7,8 @@
#include <kunit/test.h> #include <kunit/test.h>
#include "of_private.h"
/* /*
* Test that the root node "/" can be found by path. * Test that the root node "/" can be found by path.
*/ */
@ -36,6 +38,7 @@ static struct kunit_case of_dtb_test_cases[] = {
static int of_dtb_test_init(struct kunit *test) static int of_dtb_test_init(struct kunit *test)
{ {
of_root_kunit_skip(test);
if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE)) if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE))
kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE"); kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE");

View File

@ -11,6 +11,8 @@
#include <kunit/of.h> #include <kunit/of.h>
#include <kunit/test.h> #include <kunit/test.h>
#include "of_private.h"
static const char * const kunit_node_name = "kunit-test"; static const char * const kunit_node_name = "kunit-test";
static const char * const kunit_compatible = "test,empty"; static const char * const kunit_compatible = "test,empty";
@ -62,6 +64,9 @@ static void of_overlay_apply_kunit_cleanup(struct kunit *test)
struct device *dev; struct device *dev;
struct device_node *np; struct device_node *np;
of_root_kunit_skip(test);
if (!IS_ENABLED(CONFIG_OF_OVERLAY))
kunit_skip(test, "requires CONFIG_OF_OVERLAY to apply overlay");
if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE)) if (!IS_ENABLED(CONFIG_OF_EARLY_FLATTREE))
kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE for root node"); kunit_skip(test, "requires CONFIG_OF_EARLY_FLATTREE for root node");
@ -73,7 +78,7 @@ static void of_overlay_apply_kunit_cleanup(struct kunit *test)
np = of_find_node_by_name(NULL, kunit_node_name); np = of_find_node_by_name(NULL, kunit_node_name);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, np); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, np);
of_node_put_kunit(test, np); of_node_put_kunit(&fake, np);
pdev = of_find_device_by_node(np); pdev = of_find_device_by_node(np);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pdev); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pdev);