# Copyright 2023 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Not Linux, so don't expect a Linux tree.
--no-tree

# Ignore aspects we don't follow here.
--ignore SPLIT_STRING

--ignore GIT_COMMIT_ID

--ignore C99_COMMENT_TOLERANCE

--ignore VSPRINTF_POINTER_EXTENSION

# Shorter KConfig descriptions are OK.
--min-conf-desc-length=2

# Zephyr has a function named "printk" with different facilities than
# the printk in the Linux kernel this check is made for.
--ignore PRINTK_WITHOUT_KERN_LEVEL

# Zephyr coding style requires braces even when not explicitly
# required (unlike the Linux kernel).  In the interest of making code
# easier to upstream into the Zephyr tree, we should do the same.
# Tell checkpatch to ignore Linux style here.
--ignore BRACES

# TODO(b/231177519): Cros EC Lite only. Needed for macros defined in Cros EC.
--ignore TRAILING_SEMICOLON
--ignore COMPLEX_MACRO

# Cros EC Lite only. PSoC Creator uses a binary format for the schematic files.
--ignore NOT_UNIFIED_DIFF
