mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 12:14:10 +08:00
Merge branch 'dt/linus' into dt/next
Pull-in kunit kconfig fix
This commit is contained in:
commit
28b513b5a6
@ -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;
|
||||||
|
};
|
||||||
|
};
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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");
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user