From patchwork Mon May 25 20:24:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anatolij Gustschin X-Patchwork-Id: 1297562 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=denx.de header.i=@denx.de header.a=rsa-sha256 header.s=phobos-20191101 header.b=M4QrvXQ5; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49W7qg5vxMz9sRK for ; Tue, 26 May 2020 06:24:45 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9E96C8168A; Mon, 25 May 2020 22:24:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1590438277; bh=Zv/cmmNA1pTN0MBUHqygTeBeKKgmyhZ+5f9yhpeDKFU=; h=From:To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=M4QrvXQ5ehdNENi4uc+bqKWuJymjVSVOgmOLjbvdbDfhLUtEyjNNHx51rWbc6r8h/ Rkum1FZtRLDWBaZb7hdfwIgHqx45Ig3fJ/uTVhLBx/0aVXk486gH19cOuef8ZRCURN mR2HIW9426W2MXggvVTQam37QBsvLcqqaYeVjTSTamyII3DG+D1cYpKYjR71ifWakX Gcv33/XA7qieMd1AdWfS1+G8tD7UPlKtkILhTZI3C6BLJYKsVSNU/ozy25wYBmGzFd 6Un50QZWtkFBCbzY8x4pWxJVTImCbVMZj3aYy0e/7lqGceKxsreG9bZc2Uqba6i0FU o7wGFPKxv6+Xg== Received: by phobos.denx.de (Postfix, from userid 109) id 94C938168D; Mon, 25 May 2020 22:24:35 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 8C433813C3 for ; Mon, 25 May 2020 22:24:32 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=agust@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 49W7qM4Dfdz1qs3v; Mon, 25 May 2020 22:24:31 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 49W7qM3bjRz1r3kj; Mon, 25 May 2020 22:24:31 +0200 (CEST) Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id EbanvN_q3PTl; Mon, 25 May 2020 22:24:30 +0200 (CEST) X-Auth-Info: 0voI1bDTlXx/f3FmvFe+twWzEI9yu2wNl6KEq7js/sM= Received: from crub.agik.hopto.org (pd95f11d0.dip0.t-ipconnect.de [217.95.17.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Mon, 25 May 2020 22:24:30 +0200 (CEST) From: Anatolij Gustschin To: u-boot@lists.denx.de Cc: Heiko Schocher , Peng Fan , Joe Hershberger , Lukasz Majewski , Marek Vasut , Stefano Babic Subject: [RFC PATCH] imx: skip unused compatible strings in drivers Date: Mon, 25 May 2020 22:24:29 +0200 Message-Id: <20200525202429.2146-1-agust@denx.de> X-Mailer: git-send-email 2.17.1 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean Converting to DM increases binary size and breaks building some boards (i.e. tbs2910, gcc 9.2). The approach to address this issue via cutting off unused properties/nodes in device tree via custom u-boot.dtsi was not welcome, even if the affected boards do not pass the built-in device tree to the kernel. Try to drop not required compatible strings in drivers when building for different iMX variants. This saves a few bytes when building for i.MX6, with current buildman default GCC 9.2: all -843.0 bss +8.0 data -40.0 rodata -547.0 text -264.0 Signed-off-by: Anatolij Gustschin Cc: Heiko Schocher Cc: Peng Fan Cc: Joe Hershberger Cc: Lukasz Majewski Cc: Marek Vasut Cc: Stefano Babic --- drivers/i2c/mxc_i2c.c | 3 +++ drivers/mmc/fsl_esdhc_imx.c | 18 ++++++++++++++++++ drivers/net/fec_mxc.c | 16 ++++++++++++++++ drivers/pinctrl/nxp/pinctrl-imx6.c | 14 ++++++++++++++ drivers/serial/serial_mxc.c | 10 ++++++++++ 5 files changed, 61 insertions(+) diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 3b0d27e6cd..abef9d888e 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -1058,7 +1058,10 @@ static const struct dm_i2c_ops mxc_i2c_ops = { static const struct udevice_id mxc_i2c_ids[] = { { .compatible = "fsl,imx21-i2c", }, +#if defined(CONFIG_VF610) || defined(CONFIG_FSL_LSCH2) || \ + defined(CONFIG_FSL_LSCH3) || defined(CONFIG_ARCH_LS1021A) { .compatible = "fsl,vf610-i2c", .data = I2C_QUIRK_FLAG, }, +#endif {} }; diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c index 588d6a9d76..6943e4867e 100644 --- a/drivers/mmc/fsl_esdhc_imx.c +++ b/drivers/mmc/fsl_esdhc_imx.c @@ -1601,31 +1601,49 @@ static const struct dm_mmc_ops fsl_esdhc_ops = { }; #endif +#if defined(CONFIG_ARCH_MX7) static struct esdhc_soc_data usdhc_imx7d_data = { .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200 | ESDHC_FLAG_HS400, }; +#endif +#if defined(CONFIG_ARCH_IMX8) || defined(CONFIG_ARCH_IMX8M) static struct esdhc_soc_data usdhc_imx8qm_data = { .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200 | ESDHC_FLAG_HS400 | ESDHC_FLAG_HS400_ES, }; +#endif static const struct udevice_id fsl_esdhc_ids[] = { +#ifdef CONFIG_ARCH_MX5 { .compatible = "fsl,imx53-esdhc", }, +#endif +#ifdef CONFIG_ARCH_MX6 { .compatible = "fsl,imx6ul-usdhc", }, { .compatible = "fsl,imx6sx-usdhc", }, { .compatible = "fsl,imx6sl-usdhc", }, { .compatible = "fsl,imx6q-usdhc", }, +#endif +#ifdef CONFIG_ARCH_MX7 { .compatible = "fsl,imx7d-usdhc", .data = (ulong)&usdhc_imx7d_data,}, +#endif +#ifdef CONFIG_ARCH_MX7ULP { .compatible = "fsl,imx7ulp-usdhc", }, +#endif +#ifdef CONFIG_ARCH_IMX8 { .compatible = "fsl,imx8qm-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, +#endif +#ifdef CONFIG_ARCH_IMX8M { .compatible = "fsl,imx8mm-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, { .compatible = "fsl,imx8mn-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, { .compatible = "fsl,imx8mq-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, +#endif +#ifdef CONFIG_ARCH_IMXRT { .compatible = "fsl,imxrt-usdhc", }, +#endif { .compatible = "fsl,esdhc", }, { /* sentinel */ } }; diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index 9ae2db033e..d829b5b5ba 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -1574,14 +1574,30 @@ static int fecmxc_ofdata_to_platdata(struct udevice *dev) } static const struct udevice_id fecmxc_ids[] = { +#ifdef CONFIG_ARCH_MX28 { .compatible = "fsl,imx28-fec" }, +#endif +#ifdef CONFIG_ARCH_MX6 { .compatible = "fsl,imx6q-fec" }, +#endif +#ifdef CONFIG_MX6SL { .compatible = "fsl,imx6sl-fec" }, +#endif +#ifdef CONFIG_MX6SX { .compatible = "fsl,imx6sx-fec" }, +#endif +#ifdef CONFIG_MX6UL { .compatible = "fsl,imx6ul-fec" }, +#endif +#ifdef CONFIG_ARCH_MX5 { .compatible = "fsl,imx53-fec" }, +#endif +#ifdef CONFIG_ARCH_MX7 { .compatible = "fsl,imx7d-fec" }, +#endif +#ifdef CONFIG_ARCH_VF610 { .compatible = "fsl,mvf600-fec" }, +#endif { } }; diff --git a/drivers/pinctrl/nxp/pinctrl-imx6.c b/drivers/pinctrl/nxp/pinctrl-imx6.c index aafa3057ad..dff4954344 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx6.c +++ b/drivers/pinctrl/nxp/pinctrl-imx6.c @@ -12,14 +12,18 @@ static struct imx_pinctrl_soc_info imx6_pinctrl_soc_info __section(".data"); +#ifdef CONFIG_MX6UL /* FIXME Before reloaction, BSS is overlapped with DT area */ static struct imx_pinctrl_soc_info imx6ul_pinctrl_soc_info = { .flags = ZERO_OFFSET_VALID, }; +#endif +#if defined(CONFIG_MX6SLL) || defined(CONFIG_MX6ULL) static struct imx_pinctrl_soc_info imx6_snvs_pinctrl_soc_info = { .flags = ZERO_OFFSET_VALID, }; +#endif static int imx6_pinctrl_probe(struct udevice *dev) { @@ -32,12 +36,22 @@ static int imx6_pinctrl_probe(struct udevice *dev) static const struct udevice_id imx6_pinctrl_match[] = { { .compatible = "fsl,imx6q-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info }, { .compatible = "fsl,imx6dl-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info }, +#ifdef CONFIG_MX6SL { .compatible = "fsl,imx6sl-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info }, +#endif +#ifdef CONFIG_MX6SLL { .compatible = "fsl,imx6sll-iomuxc-snvs", .data = (ulong)&imx6_snvs_pinctrl_soc_info }, { .compatible = "fsl,imx6sll-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info }, +#endif +#ifdef CONFIG_MX6SX { .compatible = "fsl,imx6sx-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info }, +#endif +#ifdef CONFIG_MX6UL { .compatible = "fsl,imx6ul-iomuxc", .data = (ulong)&imx6ul_pinctrl_soc_info }, +#endif +#ifdef CONFIG_MX6ULL { .compatible = "fsl,imx6ull-iomuxc-snvs", .data = (ulong)&imx6_snvs_pinctrl_soc_info }, +#endif { /* sentinel */ } }; diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c index 42abb96a26..f4a0d56e09 100644 --- a/drivers/serial/serial_mxc.c +++ b/drivers/serial/serial_mxc.c @@ -343,11 +343,21 @@ static int mxc_serial_ofdata_to_platdata(struct udevice *dev) static const struct udevice_id mxc_serial_ids[] = { { .compatible = "fsl,imx21-uart" }, +#ifdef CONFIG_ARCH_MX5 { .compatible = "fsl,imx53-uart" }, +#endif +#ifdef CONFIG_ARCH_MX6SX { .compatible = "fsl,imx6sx-uart" }, +#endif +#if defined(CONFIG_ARCH_MX6UL) || defined(CONFIG_ARCH_MX6ULL) { .compatible = "fsl,imx6ul-uart" }, +#endif +#ifdef CONFIG_ARCH_MX7 { .compatible = "fsl,imx7d-uart" }, +#endif +#if defined(CONFIG_ARCH_MX6) || defined(CONFIG_ARCH_MX6SL) || defined(CONFIG_ARCH_MX6SLL) { .compatible = "fsl,imx6q-uart" }, +#endif { } }; #endif