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

# Temporary for false positive in checkpatch
--ignore COMPLEX_MACRO

# For CONFIG_SYS_I2C_NOPROBES
--ignore MULTISTATEMENT_MACRO_USE_DO_WHILE

# For simple_strtoul
--ignore CONSIDER_KSTRTO

# For min/max
--ignore MINMAX

# enable more tests
--strict

# Not Linux, so we don't recommend usleep_range() over udelay()
--ignore USLEEP_RANGE

# Ignore networking block comment style
--ignore NETWORKING_BLOCK_COMMENT_STYLE

# Ignore "WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet
# addresses are __aligned(2)".
--ignore PREFER_ETHER_ADDR_COPY

# A bit shorter of a description is OK with us.
--min-conf-desc-length=2
