From patchwork Sat Apr 17 18:03:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wasim Khan X-Patchwork-Id: 1467524 X-Patchwork-Delegate: priyanka.jain@nxp.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=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=Omw/TD2W; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (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 4FN1DN2wNJz9vGP for ; Sun, 18 Apr 2021 04:04:04 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3B60081895; Sat, 17 Apr 2021 20:03:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Omw/TD2W"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 13C7E81B94; Sat, 17 Apr 2021 20:03:57 +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=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20630.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::630]) (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 ECD5781895 for ; Sat, 17 Apr 2021 20:03:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=wasim.khan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JJTtngqzDTRBcIrfaSRPIuHLwnUaZ3yJlNPE6SLvUf5k7+fiMqnRvxe/l4iI2JxtYd8gtJz2cw4H8a+0kwRlc8cg42gIP9ar50ax2yvH9Xir7NXzE6Q3+aG0ak2jpQm8pYtuuUreTldcU4A2FaZ/ptvLI7ImAxc/4x9oXo8/AkDoOeDVX7WC6/PFhgM6TzQVQRa66UUClSIrkipCuLJF8zCazGyRZtbYSDqzdahxQBlq4pqNFBBsnpSQny/hiR6jtfSz9/cG54WSeVmK1WXLTX18VTyoko1+ND0x/K8TzMgdMb+A8JpjGfh9wD4nj8mDrSJAVD0pGbRUvH764mC1MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pYMotRu452WVBPK9oCFhLAEOtJ4zNvNZVW5ZZdQEQ1A=; b=TGZIZ2r9cYvTuA4rkjDz3pw8XF9Cbv4PB9j1rgp/GNWGTWXM2k+nGHDqn+n2GQQOZ3Og+3KMwmQvX686O3fNJ2kPXbuk/QF1xmLFzO3YeHr8DW0N/pUnEsDNNXVqXjWZm7Llu+AcyfcJxJWDIq7ik5aAlrSIYpn7F8LJrzd1xMojdzqB/Ea7oRfkYNAYvOuJgAWUMCgNON8bK3mvlBFEzsQEvWVbpCLqHrlGejDOi5D7HMg3xm5BVejRRQFKKmrtM/C5U/MyGjyVIbaG1+Om+luv96+Z6gkKESYHDLfqvKpg9YZ1rKG3lrHDetTT74JOE0erDQV44vCZEnJ5A54Bmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pYMotRu452WVBPK9oCFhLAEOtJ4zNvNZVW5ZZdQEQ1A=; b=Omw/TD2Wvfdl07wTFSW3SsrudwYnDxWmy6eiLEUD97o6Fk6BcoZNha2XfeK6hlxpN5Fm1BKOm3hNas76Ddh3WmHG4HBeIrdaT2dFfu/B7j2JvA3NpZrEirpNq9h6BrqtOUh5+G+6QAPc0h0A5TP2OFAJyCr/ovu+jSS0cFfK3CE= Authentication-Results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=oss.nxp.com; Received: from VE1PR04MB6702.eurprd04.prod.outlook.com (2603:10a6:803:123::13) by VI1PR04MB5853.eurprd04.prod.outlook.com (2603:10a6:803:e3::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Sat, 17 Apr 2021 18:03:45 +0000 Received: from VE1PR04MB6702.eurprd04.prod.outlook.com ([fe80::b1a9:3c29:3fe3:ee40]) by VE1PR04MB6702.eurprd04.prod.outlook.com ([fe80::b1a9:3c29:3fe3:ee40%7]) with mapi id 15.20.4042.021; Sat, 17 Apr 2021 18:03:45 +0000 From: Wasim Khan To: priyanka.jain@nxp.com, v.sethi@nxp.com Cc: u-boot@lists.denx.de, Wasim Khan Subject: [PATCH] armv8: lx2160ardb: Add thermal node fixup for revc board Date: Sat, 17 Apr 2021 20:03:32 +0200 Message-Id: <20210417180332.1164345-1-wasim.khan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 X-Originating-IP: [92.121.36.4] X-ClientProxiedBy: AM0PR07CA0022.eurprd07.prod.outlook.com (2603:10a6:208:ac::35) To VE1PR04MB6702.eurprd04.prod.outlook.com (2603:10a6:803:123::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv05369.swis.nl-cdc01.nxp.com (92.121.36.4) by AM0PR07CA0022.eurprd07.prod.outlook.com (2603:10a6:208:ac::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.7 via Frontend Transport; Sat, 17 Apr 2021 18:03:45 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 79da1fb6-fe01-4559-0875-08d901cb2496 X-MS-TrafficTypeDiagnostic: VI1PR04MB5853: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:159; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CVdFHkp2Aok50HO8SwgdmmpU8DRJg71s+Z3GKrwnaAcEP2UahAJHJTw3w7wjLMe5RSMMkJ8shUdiGznpIVUhEE+PV0VMgswFl442e0JDg3fcWJeZR32I8CwCMrG7YU1/l1+uAoFy+T6+pq8gANHF7aV6UIf+fttatGO0MHxqxLyAEtNgUCmauFK5mKTlTI1hhgVcLCkoP9Uh/chSvhPaBeV/gVM4PNYxMQwbdgWQZeDXBs4DjxdyeAxRc3RhNg9/r17Jir7z6ZeROdQk8Am3UzBjcNX+smn5fqkLA7hgpk7dZ7pCQ5cQys6TdIWDSBXV3NklUdbKvEXSR0CpHyjA2Xntc81kXH2dx7FQ/tvirc+cXExRezRp1EIcAPKgZIECU4jId24I3IzYqXgb4jIl+T5C7vMHHGn2vzbuvbxGVGtKWFlYwWkU0JJ8G4Q8XmvFDz1IB2FgM32uo3MlDtiYEsGodnX52qOs3GQXIZMNe0ZjH1U+Fep83UziSuKlxMVc+ndHiLxChhJWVKzT3JC3PjbPxW0DSoKOaq+kTpM8bCP65ouR2CwuFXd1AsSAHa+UF0eoyF61HEgxce9i/4oH8lrZBWxsAEKPJGKphstuB6+zR17WnVFuzrkVkQ+d2c3xyUyfq9tCeEJCDFsiF+z2gsUAVhqsLGA2jzT6ZR7gOvg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6702.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(346002)(376002)(136003)(366004)(39860400002)(86362001)(316002)(1076003)(66556008)(4326008)(16526019)(66476007)(6486002)(6512007)(52116002)(6666004)(6506007)(66946007)(8676002)(38100700002)(5660300002)(38350700002)(44832011)(83380400001)(8936002)(26005)(186003)(2616005)(2906002)(956004)(478600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: GFXw66dRvYN2VaiSBkNJ7GcI76Ym1omx5R5Q353lIaoy3W8SWyguwRUifJjdoqNb6lkHfEvJZTKQSIL7MiObLcGNRH3YNdJJPVhZBMY9xzeEx2m2cT7sjV34HDwRQuiefuZoAYOaibJC4+VG80JcTC45qwhhfESQcpQA18oSJ7tlqXDMjY6faPIfa9jX0cjbqrqLHw9h6e6JRpfizm76TWELkAgJtiCsgZQfy+EhkmtOjR9HJQMLyvK5NhUYiiyeTwPjpYA1XQYJZ2vww65KaQx433uV2sTB8R5EcOMWR5bCozEztFhhYFNTTINktmon9j3joqiKtKaZ2jkadiR+wMItT82xLeCM4CMy9stQKOOJRNkk56PZ3K2b0hLqgSuCJEQCqDe4x0ZQO6lmEFs9Ni2yo9DpCoPd9xR445jeMNMD8POSulUGK8lDrA2ms3CCPRUeAmqBH5bDMP3Yrip2ZDg4NEvls6UALC+TgOQoI1MazEg04/rbZjwG7goXWcvL9OmkbA6hr6LYAcT3Mz30o6uzf5yAFVHyqwPVr9GPXAwCmV1EQ44oqiqWnrWGB215YSbYud6oC80/Y8exldhEOwyaUzdUy9Kcp77Dk6aGZt0h41kVO5gcM8IdvUc78e8/NYrcMvdnUhMWFIG7SrK9mwKV1xfKYcjOSn0f5LtjYPNnOSb6wrdx6ZyasTsu3oAEIOOjbcyv7GgTWutEUHP2t9WnC4v/6pjSXEsBZsszKxhq1tjGSY/WU+i47YZdhjRqob7PNLAJeBjPQmLm30uKqQ6moOpTiGYvEF4E/oDFJJ/IB/8D2x888cnseRzBti77WkMKzxqtvoRBwj3w2XHmS1NiP0tzpZIhbZM8e2ZfKwmnawwqkfAvBfVmc6dF7RgM4KWdgXmxTA11ZwHvcXTSsGpekj+LgUP9kDy65Z/pq+AmQD2qbjg2+s/pK98iWhuDuVR3DinhOb9Dw3s5BVB2zmvDbVwhynlvNvTIdDjs4bpNRzWiGVifAJC8EN0oG8lll4Hxkp8H7NSMHwyKV7PAFHzeMEC2VAJyf6eQoE4j5LCL05gpux+LFR47nquDhgbCpTBdpk+u+PrxXUG8l39jLOIKtmu+m1XHqF841iembt1BXLrZ8y0jrPUYy8URmPd72pMvwjlgzO2TUWlNgtfRq/5IpVW81EJnJHGZ0y4AbLD5J2id1czi1AfWajGXlwZw/BpqC5Dh2pCcr+OGLLcDgeVnpAavxqvzj+0yXVaC+xCFbohFjU1Fxo8hMYmF07PO7r3bYs/dUieSd1hsXAXQVBQtj8HDU+h8bcvVUvVupqCgOsRihxrziKmFERXUGNy+ X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79da1fb6-fe01-4559-0875-08d901cb2496 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6702.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2021 18:03:45.5535 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iKpcR1BMZFx0fcuCoo85vp4XwnxoP/hgNAlInAc8Nq9ev3BoHfjbnSuZ79GNIUkTgpG+vo401QLZduXOVU1C0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5853 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.102.4 at phobos.denx.de X-Virus-Status: Clean From: Wasim Khan lx2160ardb Rev-C board has i2c node for thermal monitors connected to different chip offset. Add device tree fixup to use lx2160ardb dts and apply thernal node fixups for lx2160ardb Rev-C board. Signed-off-by: Wasim Khan Reviewed-by: Priyanka Jain --- board/freescale/lx2160a/lx2160a.c | 119 +++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) diff --git a/board/freescale/lx2160a/lx2160a.c b/board/freescale/lx2160a/lx2160a.c index 47a7024f33..8f75b48f95 100644 --- a/board/freescale/lx2160a/lx2160a.c +++ b/board/freescale/lx2160a/lx2160a.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* - * Copyright 2018-2020 NXP + * Copyright 2018-2021 NXP */ #include @@ -726,6 +726,116 @@ void board_quiesce_devices(void) } #endif +#if CONFIG_IS_ENABLED(TARGET_LX2160ARDB) +int fdt_fixup_add_thermal(void *blob, int mux_node, int channel, int reg) +{ + int err; + int noff; + int offset; + char channel_node_name[50]; + char thermal_node_name[50]; + u32 phandle; + + snprintf(channel_node_name, sizeof(channel_node_name), + "i2c@%x", channel); + debug("channel_node_name = %s\n", channel_node_name); + + snprintf(thermal_node_name, sizeof(thermal_node_name), + "temperature-sensor@%x", reg); + debug("thermal_node_name = %s\n", thermal_node_name); + + err = fdt_increase_size(blob, 200); + if (err) { + printf("fdt_increase_size: err=%s\n", fdt_strerror(err)); + return err; + } + + noff = fdt_subnode_offset(blob, mux_node, (const char *) + channel_node_name); + if (noff < 0) { + /* channel node not found - create it */ + noff = fdt_add_subnode(blob, mux_node, channel_node_name); + if (noff < 0) { + printf("fdt_add_subnode: err=%s\n", fdt_strerror(err)); + return err; + } + fdt_setprop_u32 (blob, noff, "#address-cells", 1); + fdt_setprop_u32 (blob, noff, "#size-cells", 0); + fdt_setprop_u32 (blob, noff, "reg", channel); + } + + /* Create thermal node*/ + offset = fdt_add_subnode(blob, noff, thermal_node_name); + fdt_setprop(blob, offset, "compatible", "nxp,sa56004", + strlen("nxp,sa56004") + 1); + fdt_setprop_u32 (blob, offset, "reg", reg); + + /* fixup phandle*/ + noff = fdt_node_offset_by_compatible(blob, -1, "regulator-fixed"); + if (noff < 0) { + printf("%s : failed to get phandle\n", __func__); + return noff; + } + phandle = fdt_get_phandle(blob, noff); + fdt_setprop_u32 (blob, offset, "vcc-supply", phandle); + + return 0; +} + +void fdt_fixup_delete_thermal(void *blob, int mux_node, int channel, int reg) +{ + int node; + int value; + int err; + int subnode; + + fdt_for_each_subnode(subnode, blob, mux_node) { + value = fdtdec_get_uint(blob, subnode, "reg", -1); + if (value == channel) { + /* delete thermal node */ + fdt_for_each_subnode(node, blob, subnode) { + value = fdtdec_get_uint(blob, node, "reg", -1); + err = fdt_node_check_compatible(blob, node, + "nxp,sa56004"); + if (!err && value == reg) { + fdt_del_node(blob, node); + break; + } + } + } + } +} + +void fdt_fixup_i2c_thermal_node(void *blob) +{ + int i2coffset; + int mux_node; + int reg; + int err; + + i2coffset = fdt_node_offset_by_compat_reg(blob, "fsl,vf610-i2c", + 0x2000000); + if (i2coffset != -FDT_ERR_NOTFOUND) { + fdt_for_each_subnode(mux_node, blob, i2coffset) { + reg = fdtdec_get_uint(blob, mux_node, "reg", -1); + err = fdt_node_check_compatible(blob, mux_node, + "nxp,pca9547"); + if (!err && reg == 0x77) { + fdt_fixup_delete_thermal(blob, mux_node, + 0x3, 0x4d); + err = fdt_fixup_add_thermal(blob, mux_node, + 0x3, 0x48); + if (err) + printf("%s: Add thermal node failed\n", + __func__); + } + } + } else { + printf("%s: i2c node not found\n", __func__); + } +} +#endif + #ifdef CONFIG_OF_BOARD_SETUP int ft_board_setup(void *blob, struct bd_info *bd) { @@ -737,6 +847,7 @@ int ft_board_setup(void *blob, struct bd_info *bd) u64 mc_memory_base = 0; u64 mc_memory_size = 0; u16 total_memory_banks; + u8 board_rev; ft_cpu_setup(blob, bd); @@ -791,6 +902,12 @@ int ft_board_setup(void *blob, struct bd_info *bd) #endif fdt_fixup_icid(blob); +if (IS_ENABLED(CONFIG_TARGET_LX2160ARDB)) { + board_rev = (QIXIS_READ(arch) & 0xf) - 1 + 'A'; + if (board_rev == 'C') + fdt_fixup_i2c_thermal_node(blob); + } + return 0; } #endif