Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; Helpers for https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/fsl,imx6q-pinctrl.txt
- (setq lexical-binding t)
- (setq imx6q-pad-options '(
- (PAD_CTL_HYS (1 . 16))
- (PAD_CTL_PUS_100K_DOWN (0 . 14))
- (PAD_CTL_PUS_47K_UP (1 . 14))
- (PAD_CTL_PUS_100K_UP (2 . 14))
- (PAD_CTL_PUS_22K_UP (3 . 14))
- (PAD_CTL_PUE (1 . 13))
- (PAD_CTL_PKE (1 . 12))
- (PAD_CTL_ODE (1 . 11))
- (PAD_CTL_SPEED_LOW (1 . 6))
- (PAD_CTL_SPEED_MED (2 . 6))
- (PAD_CTL_SPEED_HIGH (3 . 6))
- (PAD_CTL_DSE_DISABLE (0 . 3))
- (PAD_CTL_DSE_240ohm (1 . 3))
- (PAD_CTL_DSE_120ohm (2 . 3))
- (PAD_CTL_DSE_80ohm (3 . 3))
- (PAD_CTL_DSE_60ohm (4 . 3))
- (PAD_CTL_DSE_48ohm (5 . 3))
- (PAD_CTL_DSE_40ohm (6 . 3))
- (PAD_CTL_DSE_34ohm (7 . 3))
- (PAD_CTL_SRE_FAST (1 . 0))
- (PAD_CTL_SRE_SLOW (0 . 0))
- ))
- (defun imx6q-get-option-bits (option)
- (let ((bits (car (car (cdr (assoc option imx6q-pad-options))))))
- (if bits
- bits
- (error "Can't find option %s" option))))
- (defun imx6q-get-option-shift (option)
- (let ((shift (cdr (car (cdr (assoc option imx6q-pad-options))))))
- (if shift
- shift
- (error "Can't find option %s" option))))
- (defun imx6q-get-option-value (option)
- (lsh (imx6q-get-option-bits option)
- (imx6q-get-option-shift option)))
- (defun imx6q-get-mask (&rest options)
- (let ((opt-list nil))
- (dolist (opt options)
- (push (imx6q-get-option-value opt) opt-list))
- (format "0x%x" (apply 'logior opt-list))))
- (provide 'imx6q-pads)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement