From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2091C4338F for ; Sat, 7 Aug 2021 13:24:30 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2762A61058 for ; Sat, 7 Aug 2021 13:24:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2762A61058 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6253282E3F; Sat, 7 Aug 2021 15:24:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="A1Fc49Po"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 19E7982C47; Sat, 7 Aug 2021 15:24:23 +0200 (CEST) Received: from mail-ot1-x333.google.com (mail-ot1-x333.google.com [IPv6:2607:f8b0:4864:20::333]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9CE2982C47 for ; Sat, 7 Aug 2021 15:24:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-ot1-x333.google.com with SMTP id z6-20020a0568302906b02904f268d34f86so11997413otu.2 for ; Sat, 07 Aug 2021 06:24:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=+3bkJq54gu+Lsy2xG8od42f8c19S5l8ypFxv97Leq6I=; b=A1Fc49PoQxmiQAvTJmC5jSqXSd42wO4GbzMIrEjAHKsAlVz7xYI+8v50Ie+EUYjxFr P/o+lDWdD9/ZSu68LRp425f/b8QAJpe1kGjwUbQJHUiEH4+vzhCjrtx/GN7MbEXKwrSX zXfqOlgPc9pmEoNJLkPi0UeNogN4v+KgcawGc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=+3bkJq54gu+Lsy2xG8od42f8c19S5l8ypFxv97Leq6I=; b=Hkygj3UCB8SnvbPuN2ytgNp5+eJanNJSaEnSiX30CJLkdiObtqiVMdTQkvJagwF2aD 6mwjKAVx+9SjiD/4OWzvnWRYotX+PeaCpKrsMY6rRoeQUwOCX+HRCbtHYElJIs+3woRH Kuw0ofGCdlBncdRTiBysa1VU6/NlqSdqiPWZrdL4sYnIWjJGR172d4fMGCKDKz3a23GL XpwsuGwF4/4ow9eDUqgLd24sNZZNrmgsYQLxJs/Uh9AfHy6rF0UeOHeVgtoIid81uiYm 1x/3/yIGzp/U9WsanN7pUUjeIVYIjje1IB2x5PJp0lX15P1/ks/fhGAt8d/2Y0wVIPyw 48wQ== X-Gm-Message-State: AOAM532jTJtTD+a2ETXOIt70f1dtoKkhdqUO+2o6dNVYzMA3Q+xoVbOA KT/z+cvv/04Hdt1QYRXxJUS/rOxPnp0XMwZ5 X-Google-Smtp-Source: ABdhPJzQ+5+Al66ViDlyrhDRl+X+xHym0oR8QZskMHf1JNM1tsg2Vw6gsEzUt8T0WsdiVneXgQoN2A== X-Received: by 2002:a05:6830:2b0e:: with SMTP id l14mr10978085otv.332.1628342657530; Sat, 07 Aug 2021 06:24:17 -0700 (PDT) Received: from kiwi.bld.corp.google.com (c-67-190-101-114.hsd1.co.comcast.net. [67.190.101.114]) by smtp.gmail.com with ESMTPSA id x16sm1866417ooj.1.2021.08.07.06.24.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Aug 2021 06:24:17 -0700 (PDT) From: Simon Glass To: U-Boot Mailing List Cc: Tom Rini , Simon Glass , Jaehoon Chung , Jerry Van Baren , Macpaul Lin , Marek Vasut , Pavel Herrmann , Peng Fan Subject: [PATCH 00/12] dm: Expand of-platdata support to GPIOs and clean up Date: Sat, 7 Aug 2021 07:24:00 -0600 Message-Id: <20210807132413.3513724-1-sjg@chromium.org> X-Mailer: git-send-email 2.32.0.605.g8dce9f2422-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean The of-platdata feature allows driver model to be used in SPL without the overhead of a devicetree. The relevant parts of the devicetree are converted to C by the dtoc tool. So far of-platdata supports various drivers but not enough to support the am335x boards. This series adds GPIO support to of-platdata, via a gpio_request_by_phandle() function which looks up GPIOs from the of-platdata information. It also tidies up the existing clock support and finishes off irq support. Finally it includes a new OF_REAL symbol to control whether a devicetree is actually available at runtime. This allows some simplification of the #ifdef logic. For am335x, the cpsw driver uses several devicetree subnodes. For this to work with dtoc it needs to be converted to separate drivers for each subnode, each with a compatible string. Simon Glass (12): treewide: fdt: Move fdt_get_config_... to ofnode_conf_read... fdt: Create a new OF_REAL Kconfig treewide: Simply conditions with the new OF_REAL treewide: Use OF_REAL instead of !OF_PLATDATA mmc: nds32: ftsdc010: Convert to livetree treewide: Try to avoid the preprocessor with OF_REAL fdt: Update Makefile rules with the new OF_REAL Kconfig dm: Add comments to dt-structs contents clk: Rename clk_get_by_driver_info() dm: doc: Add a note about of-platdata header files irq: Tidy up of-platdata irq support dm: gpio: Add of-platdata support Makefile | 7 +- arch/arm/mach-rockchip/rk3188/rk3188.c | 4 +- arch/arm/mach-rockchip/rk3399/syscon_rk3399.c | 2 +- arch/arm/mach-rockchip/rk3568/syscon_rk3568.c | 2 +- arch/sandbox/dts/sandbox.dtsi | 21 +++++- arch/sandbox/dts/test.dts | 3 + arch/sandbox/include/asm/irq.h | 20 ++++++ arch/x86/cpu/apollolake/hostbridge.c | 4 +- arch/x86/cpu/apollolake/lpc.c | 2 +- arch/x86/cpu/apollolake/pch.c | 2 +- arch/x86/cpu/apollolake/pmc.c | 4 +- arch/x86/cpu/apollolake/uart.c | 2 +- arch/x86/cpu/coreboot/coreboot.c | 5 +- arch/x86/cpu/intel_common/itss.c | 2 +- arch/x86/cpu/intel_common/p2sb.c | 24 +++---- arch/x86/lib/lpc-uclass.c | 2 +- arch/x86/lib/tpl.c | 2 +- board/dhelectronics/dh_stm32mp1/board.c | 5 +- board/firefly/firefly-rk3288/firefly-rk3288.c | 4 +- board/google/chromebook_coral/coral.c | 2 +- board/sandbox/sandbox.c | 5 +- board/st/stm32mp1/stm32mp1.c | 5 +- common/autoboot.c | 8 +-- common/board_r.c | 4 +- common/cli.c | 7 +- common/spl/spl.c | 2 +- common/spl/spl_spi.c | 12 ++-- configs/sandbox_noinst_defconfig | 2 + configs/sandbox_spl_defconfig | 2 + disk/part_efi.c | 8 +-- doc/develop/driver-model/of-plat.rst | 32 +++++++-- doc/device-tree-bindings/config.txt | 4 +- drivers/clk/clk-uclass.c | 15 ++-- drivers/clk/clk_fixed_factor.c | 18 ++--- drivers/clk/clk_fixed_rate.c | 7 +- drivers/clk/rockchip/clk_px30.c | 4 +- drivers/clk/rockchip/clk_rk3188.c | 8 +-- drivers/clk/rockchip/clk_rk3288.c | 10 +-- drivers/clk/rockchip/clk_rk3308.c | 4 +- drivers/clk/rockchip/clk_rk3368.c | 10 +-- drivers/clk/rockchip/clk_rk3399.c | 20 +++--- drivers/core/device.c | 4 +- drivers/core/fdtaddr.c | 2 +- drivers/core/lists.c | 2 +- drivers/core/ofnode.c | 33 +++++++++ drivers/core/root.c | 4 +- drivers/core/simple-bus.c | 2 +- drivers/core/syscon-uclass.c | 2 +- drivers/core/uclass.c | 2 +- drivers/core/util.c | 2 +- drivers/firmware/firmware-uclass.c | 2 +- drivers/gpio/Makefile | 4 +- drivers/gpio/gpio-uclass.c | 28 +++++++- drivers/gpio/intel_gpio.c | 2 +- drivers/gpio/mxs_gpio.c | 4 +- drivers/gpio/omap_gpio.c | 4 +- drivers/gpio/sandbox.c | 14 ++-- drivers/gpio/sandbox_test.c | 21 ++++++ drivers/i2c/i2c-emul-uclass.c | 2 +- drivers/i2c/i2c-uclass.c | 10 +-- drivers/i2c/omap24xx_i2c.c | 4 +- drivers/misc/Makefile | 2 +- drivers/misc/cros_ec.c | 2 +- drivers/misc/irq-uclass.c | 10 ++- drivers/misc/irq_sandbox.c | 15 +--- drivers/misc/irq_sandbox_test.c | 22 ++++++ drivers/misc/misc-uclass.c | 2 +- drivers/misc/p2sb-uclass.c | 20 +++--- drivers/mmc/fsl_esdhc_imx.c | 17 ++--- drivers/mmc/ftsdc010_mci.c | 45 ++++++------ drivers/mmc/mxsmmc.c | 4 +- drivers/mmc/omap_hsmmc.c | 6 +- drivers/mmc/rockchip_dw_mmc.c | 8 ++- drivers/mmc/rockchip_sdhci.c | 14 ++-- drivers/pch/pch-uclass.c | 2 +- drivers/pinctrl/intel/pinctrl_apl.c | 4 +- drivers/pinctrl/nxp/pinctrl-mxs.c | 2 +- drivers/pinctrl/pinctrl-qe-io.c | 2 +- drivers/pinctrl/pinctrl-uclass.c | 2 +- drivers/pinctrl/rockchip/pinctrl-px30.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3036.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3128.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3188.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk322x.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3288.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3308.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3328.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3368.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3399.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rv1108.c | 2 +- drivers/power/domain/power-domain-uclass.c | 4 +- drivers/ram/rockchip/dmc-rk3368.c | 12 ++-- drivers/ram/rockchip/sdram_rk3188.c | 5 +- drivers/ram/rockchip/sdram_rk322x.c | 5 +- drivers/ram/rockchip/sdram_rk3288.c | 5 +- drivers/ram/rockchip/sdram_rk3328.c | 4 +- drivers/ram/rockchip/sdram_rk3399.c | 9 +-- drivers/rtc/rtc-uclass.c | 2 +- drivers/serial/ns16550.c | 8 +-- drivers/serial/sandbox.c | 2 +- drivers/serial/serial_mt7620.c | 4 +- drivers/serial/serial_omap.c | 6 +- drivers/spi/cf_spi.c | 4 +- drivers/spi/davinci_spi.c | 4 +- drivers/spi/fsl_espi.c | 4 +- drivers/spi/ich.c | 6 +- drivers/spi/mxs_spi.c | 4 +- drivers/spi/omap3_spi.c | 4 +- drivers/spi/pl022_spi.c | 4 +- drivers/spi/rk_spi.c | 38 +++++------ drivers/spi/spi-uclass.c | 14 ++-- drivers/sysreset/sysreset_sandbox.c | 2 +- drivers/timer/rockchip_timer.c | 16 ++--- drivers/timer/timer-uclass.c | 68 ++++++++++--------- drivers/timer/tsc_timer.c | 2 +- drivers/tpm/tpm-uclass.c | 2 +- drivers/video/cfb_console.c | 4 +- drivers/video/exynos/exynos_mipi_dsi.c | 4 +- drivers/watchdog/wdt-uclass.c | 2 +- dts/Kconfig | 29 +++++++- env/mmc.c | 5 +- include/asm-generic/gpio.h | 5 ++ include/clk.h | 35 ++++++++-- include/dm/device.h | 12 ++-- include/dm/ofnode.h | 37 ++++++++++ include/dt-structs.h | 27 ++++++++ include/fdtdec.h | 33 --------- include/irq.h | 29 ++++++++ include/power-domain.h | 6 +- lib/Makefile | 5 +- lib/fdtdec.c | 44 ------------ scripts/Makefile.spl | 9 +-- test/dm/of_platdata.c | 65 ++++++++++++++++-- test/dm/ofnode.c | 15 ++++ tools/dtoc/dtb_platdata.py | 1 + 135 files changed, 783 insertions(+), 477 deletions(-) create mode 100644 arch/sandbox/include/asm/irq.h create mode 100644 drivers/gpio/sandbox_test.c create mode 100644 drivers/misc/irq_sandbox_test.c -- 2.32.0.605.g8dce9f2422-goog